11. Element Material Models - ShellProp, BeamProp, InterProp

Element materials are characterized by a material response which includes element geometry. These modules are used to define complex element geometry such as laminate constructions for shells and arbitrary cross sections for beams. An element material may combine one or more primitive materials with element type specific geometry. The ShellProp module is designed to provide an element material model for the Shell2D and Shell3D element formulation modules. The BeamProp module is designed to provide an element material model for the Beam3D element formulation module. The InterProp module is designed to provide an element material model for the Inter2D, Inter3D and Gap element modules.

11.1. Shell Element Properties - ShellProp

The ShellProp module is used to define an element material for shell element formulations using the Shell2D and Shell3D modules. The element material includes thicknesses, shear factors, etc. Options exist for modelling monocoque, general integrated and preintegrated (so-called ABD matrix) shell wall constructions. The methods associated with a ShellProp object are the following.

Instance a ShellProp object using vfe_ShellPropBegin(). Once a ShellProp object is instanced, define the element material type using vfe_ShellPropDef(). Options exist for monocoque, general integrated, NASTRAN PSHELL, laminated, and general matrix input. Use vfe_ShellPropSetMonocoque() to enter element properties for a monocoque, homogeneous, shell property type. Use vfe_ShellPropSetIntegrate() to enter element properties at each of a user specified number of integration points through the thickness of the shell. Use vfe_ShellPropSetLaminate() to enter laminate properties and use vfe_ShellPropSetPShell() to enter NASTRAN PSHELL properties.

Use vfe_ShellPropSetMatrix() to enter the ABD matrix of a general preintegrated matrix shell property type and vfe_ShellPropSetDensity() to set the associated densities. Use vfe_ShellPropSetRefTemp() and vfe_ShellPropSetThermExp() to set the preintegrated reference temperature and coefficients of thermal expansion. Preintegrated properties in ShellProp may be temperature dependent. The current temperature for which preintegrated properties are to be defined is set using vfe_ShellPropSetTemp(). All subsequently defined preintegrated properties are assumed to be at the current temperature.

Use vfe_ShellPropSetMatlFun() to attach a primitive material to each material id required.

Use vfe_ShellPropMatlFun() to fill a MatlFun object with function pointers which is then set in a shell element formulation object such as Shell3D using vfe_Shell3DSetObject(). Destroy an instance of a ShellProp object using vfe_ShellPropEnd().

11.2. Element Properties

The ShellProp module provides for three different types of shell properties, monocoque, general integrated and general matrix. Depending upon the shell property type the user may specify element properties such as thickness and effective shear factor. By default these properties are assumed to be constant over the shell surface. To achieve a variation of these properties over the shell surface the user may define an element property scale factor. The pointers to all element property nodal scale factors are set in the element formulation modules Shell2D or Shell3D using vfe_Shell2DSetPropPtr() or vfe_Shell3DSetPropPtr() respectively. The following notation and defined constants for shell wall properties are used:

Thk, VFE_PROP_THICKNESS, Thickness
Ks , VFE_PROP_KS       , Shear factor

The default value for the thickness, Thk, is unity and for the shear factor, Ks, is 5/6.

  • A monocoque shell is essentially a single layer homogeneous shell of possibly variable thickness. The element thickness and effective shear factor are specified as well as the integration rule and order, material orientation angle and material id. If the element thickness varies over the shell surface, element property nodal scale factors, VFE_PROP_THICKNESS, may be defined. The effective shear factor may also vary over the shell surface using the VFE_PROP_KS scale factors but in practice this is rarely necessary. Set monocoque properties using vfe_ShellPropSetMonocoque().

  • A general integrated shell allows the specification of any number of integration points through the thickness of the shell. The z’ location, contributary thickness, material orientation angle, and material id must be specified for each integration point. Set integration properties using vfe_ShellPropSetIntegrate().

  • A laminated shell is defined as a series of layers in which for each layer the thickness, material id, number of integration points and material orientation angle are specified for each layer. An overall eccentricity, Ecc, of the composite midsurface from the shell reference surface may be specified. If the laminate thickness varies over the shell surface, element property nodal scale factors, VFE_PROP_THICKNESS, may be defined. Set laminate properties using vfe_ShellPropSetLaminate().

  • A NASTRAN PSHELL type shell wall may be defined. If the laminate thickness varies over the shell surface, element property nodal scale factors, VFE_PROP_THICKNESS, may be defined. Set NASTRAN PSHELL properties using vfe_ShellPropSetPShell().

  • A general matrix may be specified characterizing the shell wall. The matrix is input as the lower triangles of the 6x6 ABD membrane-bending and 2x2 Q transverse shear matrices. Set matrix properties using vfe_ShellPropSetMatrix(). The matrices together define the element material stiffness matrix which relates the stress resultants (Nxx, Nyy, Nxy, Mxx, Myy, Mxy, Qxz, Qyz) to the midsurface strains and curvatures (exx, eyy, gxy, kxx, kyy, kxy, gxz, gyz) as follows: Set associated densities using vfe_ShellPropSetDensity().

    --   --   --                                            -- --   --
    | Nxx |   | D1                                           | | exx |
    | Nyy |   | D2    D3                                     | | eyy |
    | Nxy | = | D4    D5    D6                               | | gxy |
    | Mxx |   | D7    D8    D9    D10                        | | kxx |
    | Myy |   | D11   D12   D13   D14   D15                  | | kyy |
    | Mxy |   | D16   D17   D18   D19   D20   D21            | | kxy |
    | Qxz |   | 0.    0.    0.    0.    0.    0.    Q1       | | gxz |
    | Qyz |   | 0.    0.    0.    0.    0.    0.    Q2    Q3 | | gyz |
    --   --   --                                            -- --   --
    
../../_images/vfetools-prop1.gif

Figure 11-1, Sign Conventions for Shell Stress Resultants

Note that if the right-hand rotations about the x, y, z axes are denoted by rx, ry, rz, then the curvatures, kxx, kyy, kxy, are given by:

kxx =  ry,x
kyy = -rx,y
kxy =  ry,y - rx,x

Given this definition, the components of curvature, (kxx, kyy, kxy), do not transform as a tensor.

Temperatures are used if the effects of thermal expansion are to be included.

A table summarizing proper combinations of material type with possible element property nodal scale factors appears below.

SetMonocoque    SetIntegrate   SetLaminate   SetPShell  SetMatrix
-----------------------------------------------------------------
Thk             Thk            Thk           Thk
Ks
-----------------------------------------------------------------

11.3. Function Descriptions

The currently available ShellProp functions are described in detail in this section.

vfe_ShellProp *vfe_ShellPropBegin(void)

create an instance of a ShellProp object

Create an instance of a ShellProp object. Memory is allocated for the object private data and the pointer to the object is returned. By default the element material model assumes a monocoque material of unit thickness and shear factor of 5/6, with a material orientation angle of zero, a 2 point Gaussian integration rule and material id of 1.

Destroy an instance of a ShellProp object using

void vfe_ShellPropEnd (vfe_ShellProp *shellprop)

Return the current value of a ShellProp object error flag using

Vint vfe_ShellPropError (vfe_ShellProp *shellprop)

Returns

The function returns a pointer to the newly created ShellProp object. If the object creation fails, NULL is returned.

void vfe_ShellPropEnd(vfe_ShellProp *p)

destroy an instance of a ShellProp object

See vfe_ShellPropBegin()

Vint vfe_ShellPropError(vfe_ShellProp *p)

return the current value of a ShellProp object error flag

See vfe_ShellPropBegin()

void vfe_ShellPropSetParami(vfe_ShellProp *p, Vint type, Vint iparam)

set shell property parameters

Set shell property parameters.

The parameter VFE_THERMALSTRAIN is used to toggle the calculation of thermal strains. By default VFE_THERMALSTRAIN is set to SYS_ON.

The source of the reference temperature used in thermal strain calculation is toggled by the VFE_THERMALEXPREF flag. If VFE_THERMALEXPREF is off then the reference temperature input with vfe_ShellPropSetRefTemp() is used otherwise the reference temperature input by vfe_MatlFunProp() with type VFE_PROP_TEMPREF is used, and the MatlFun object is the one referencing the ShellProp object. By default VFE_THERMALEXPREF is set to SYS_OFF.

Errors

  • SYS_ERROR_ENUM is generated if an improper type is specified.

  • SYS_ERROR_VALUE is generated if an improper iparam is specified.

Parameters
  • p – Pointer to ShellProp object.

  • type – Type of parameter to set

    x=VFE_THERMALSTRAIN      Toggle thermal strains
     =VFE_THERMALEXPREF      Toggle reference temperature source
    

  • iparam – Integer parameter value.

    x=SYS_OFF                Disable
     =SYS_ON                 Enable
    

void vfe_ShellPropSetMatlFun(vfe_ShellProp *p, Vint matid, vfe_MatlFun *matlfun)

set primitive material model

Set a primitive material associated with a material matid. There must be a call to this function to set the MatlFun object for each matid used in the shell property definition.

Errors

SYS_ERROR_VALUE is generated if an improper matid is specified.

Parameters
  • p – Pointer to ShellProp object.

  • matid – Material id of primitive material

  • matlfun – Pointer to MatlFun object of primitive material model

void vfe_ShellPropDef(vfe_ShellProp *p, Vint type)

define property type

Define the type of shell material to be specified. Use vfe_ShellPropSetMonocoque() to input monocoque properties, vfe_ShellPropSetIntegrate() to input integration properties and vfe_ShellPropSetLaminate() to input laminate properties and vfe_ShellPropSetPShell() to input NASTRAN PSHELL properties and vfe_ShellPropSetMatrix() to input general matrix properties. By default the shell material type is SHELLPROP_MONOCOQUE.

Inquire of a defined type as an output argument using

void vfe_ShellPropInq (vfe_ShellProp *shellprop,
                       Vint *type)

Errors

SYS_ERROR_ENUM is generated if an improper type is specified.

Parameters
  • p – Pointer to ShellProp object.

  • type – Shell material type

    x=SHELLPROP_MONOCOQUE       Monocoque shell
     =SHELLPROP_INTEGRATE       General integrated shell
     =SHELLPROP_LAMINATE        Laminated shell
     =SHELLPROP_MATRIX          General matrix shell
     =SHELLPROP_PSHELL          NASTRAN PSHELL
    

void vfe_ShellPropInq(vfe_ShellProp *p, Vint *type)

inquire of a defined type as an output argument

See vfe_ShellPropDef()

void vfe_ShellPropSetMonocoque(vfe_ShellProp *p, Vdouble prop[], Vint nips, Vint rule, Vdouble phi, Vint matid)

set monocoque properties

Set monocoque properties. By default, phi is zero, rule is SYS_RULE_GAUSS with nips set to 2 and matid set to 1. The Lobatto integration rule is included specifically because it locates integration points on the top and bottom surfaces of the shell as well as in the interior of the shell. The Simpson’s rule also locates integration points on the top and bottom surfaces of the shell and allow any odd number of points greater than 3. For the Gauss quadrature rule 1 <= nips <= 8, for the Lobatto rule 3 <= nips <= 8 and for the Simpson’s rule 3 <= nips. A MatlFun object must be associated with matid using vfe_ShellPropSetMatlFun().

The wall property array, prop, contains the following:

prop[0] = Thk
prop[1] = Ks
The pointers to all element property nodal scale factors are set in the element formulation modules Shell2D or Shell3D using vfe_Shell2DSetPropPtr() or vfe_Shell3DSetPropPtr() respectively. Possible property scale factors are the following;
 `VFE_PROP_THICKNESS`
 `VFE_PROP_KS`
Errors

  • SYS_ERROR_VALUE is generated if an improper nips or matid is specified.

  • SYS_ERROR_ENUM is generated if an improper rule is specified.

Parameters
  • p – Pointer to ShellProp object.

  • prop – Array of properties

  • nips – Number of integration points, nips > 0

  • rule – Integration rule

    x=SYS_RULE_GAUSS            Gauss quadrature rule
     =SYS_RULE_LOBATTO          Lobatto rule
     =SYS_RULE_SIMPSON          Simpson's rule
    

  • phi – Material orientation angle in degrees

  • matid – Material id, matid > 0.

void vfe_ShellPropSetPShell(vfe_ShellProp *p, Vdouble prop[], Vint matid[])

set NASTRAN PSHELL properties

Set NASTRAN PSHELL properties. This function is designed to specifically implement a shell wall as defined by the NASTRAN PSHELL bulk data entry.

The wall property array, prop, contains the following:

prop[0] = Thk, NASTRAN T
prop[1] = NASTRAN 12I/T3
prop[2] = NASTRAN TS/T

The pointers to all element property nodal scale factors are set in the element formulation modules Shell2D or Shell3D using vfe_Shell2DSetPropPtr() or vfe_Shell3DSetPropPtr() respectively. Possible property scale factors are the following;

 VFE_PROP_THICKNESS
The thickness scale factor scales the Thk membrane thickness.

The material id array, matid, contains the following:

matid[0] = NASTRAN MID1
matid[1] = NASTRAN MID2
matid[2] = NASTRAN MID3
matid[3] = NASTRAN MID4
A MatlFun object must be associated with matid using vfe_ShellPropSetMatlFun().

Errors

SYS_ERROR_VALUE is generated if an improper matid is specified.

Parameters
  • p – Pointer to ShellProp object.

  • prop – Array of properties

  • matid – Array of material ids

void vfe_ShellPropSetIntegrate(vfe_ShellProp *p, Vint nips, Vdouble z[], Vdouble t[], Vdouble phi[], Vint matid[])

set general integration point properties

Set integration properties for nips points through the thickness of the shell. The coordinates, z, are the distances of the integration points from the shell reference surface. The positive z direction is along the normal to the shell reference surface directed from the bottom to the top surface of the shell. The thicknesses, t, are the contributions of the integration points to the total thickness of the shell. The material orientations, phi, are right-hand rotations about the normal to the reference surface. A MatlFun object must be associated with each matid using vfe_ShellPropSetMatlFun().

The pointers to all element property nodal scale factors are set in the element formulation modules Shell2D or Shell3D using vfe_Shell2DSetPropPtr() or vfe_Shell3DSetPropPtr() respectively. Possible property scale factors are the following;

 VFE_PROP_THICKNESS
 VFE_PROP_KS
The thickness scale factor scales the z integration point coordinates.

Errors

  • SYS_ERROR_VALUE is generated if an improper nips or matid is specified.

  • SYS_ERROR_VALUE is generated if any member of t <= 0.

Parameters
  • p – Pointer to ShellProp object.

  • nips – Number of integration points, nips > 0.

  • z – Array of integration point coordinates relative to the shell reference surface.

  • t – Array of contributory thicknesses at each integration point.

  • phi – Array of material orientation angles in degrees

  • matid – Array of material id’s, matid > 0.

void vfe_ShellPropSetLaminate(vfe_ShellProp *p, Vint nlayers, Vdouble prop[], Vint rule, Vint nips[], Vdouble t[], Vdouble phi[], Vint matid[])

set laminate properties

Set laminate properties for nlayers layers through the thickness of the shell. The layers are entered in order from the shell bottom surface to the top surface. The material orientations, phi, are right-hand rotations about the normal to the reference surface. A MatlFun object must be associated with each matid using vfe_ShellPropSetMatlFun().

The wall property array, prop, contains the following:

prop[0] = Ecc

The pointers to all element property nodal scale factors are set in the element formulation modules Shell2D or Shell3D using vfe_Shell2DSetPropPtr() or vfe_Shell3DSetPropPtr() respectively. Possible property scale factors are the following;

 VFE_PROP_THICKNESS
The thickness scale factor scales the t layer thickness values and the eccentricity property.

Errors

  • SYS_ERROR_VALUE is generated if an improper nlayers is specified.

  • SYS_ERROR_VALUE is generated if an improper nips or matid is specified.

  • SYS_ERROR_VALUE is generated if any member of t <= 0.

Parameters
  • p – Pointer to ShellProp object.

  • nlayers – Number of layers, nlayers > 0

  • prop – Array of properties

  • rule – Integration rule

    x=SYS_RULE_GAUSS            Gauss quadrature rule
     =SYS_RULE_LOBATTO          Lobatto rule
     =SYS_RULE_SIMPSON          Simpson's rule
    

  • nips – Array of number of integration points per layer

  • t – Array of thicknesses per layer

  • phi – Array of material orientation angles in degrees

  • matid – Array of material ids, matid > 0.

void vfe_ShellPropSetMatrix(vfe_ShellProp *p, Vdouble abd[21], Vdouble q[3])

set general matrix

Set general matrix. The general matrix relates the shell stress resultants to the midsurface strains and curvatures. Use vfe_ShellPropSetDensity() to set the preintegrated mass properties of the shell.

Parameters
  • p – Pointer to ShellProp object.

  • abd – Lower triangle of 6x6 membrane-bending matrix

  • q – Lower triangle of 2x2 transverse shear matrix

void vfe_ShellPropSetDensity(vfe_ShellProp *p, Vdouble density[])

set preintegrated densities

Set preintegrated densities associated with a general matrix shell property. The three densities are ordered as follows: the density per unit area followed by the first and second moments of the density with respect to the thickness coordinate of the shell. Use vfe_ShellPropSetMatrix() to set the preintegrated elastic properties of the shell.

Errors

SYS_ERROR_VALUE is generated if an improper matid is specified.

Parameters
  • p – Pointer to ShellProp object.

  • density – Array of preintegrated densities

void vfe_ShellPropSetRefTemp(vfe_ShellProp *p, Vdouble reftemp)

set preintegrated reference temperature

Set preintegrated reference temperature. Use vfe_ShellPropSetThermExp() to set the preintegrated coefficients of thermal expansion of the shell.

Parameters
  • p – Pointer to ShellProp object.

  • reftemp – Reference temperature

void vfe_ShellPropSetTemp(vfe_ShellProp *p, Vdouble temp)

set temperature parameter

Specify the current temperature for which all subsequent preintegrated element properties, until another call to vfe_ShellPropSetTemp() is encountered, are defined.

Parameters
  • p – Pointer to ShellProp object.

  • temp – Current temperature of defined preintegrated properties

void vfe_ShellPropSetThermExp(vfe_ShellProp *p, Vdouble alpha[])

set preintegrated thermal expansion

Set preintegrated coefficients of thermal expansion Use vfe_ShellPropSetRefTemp() to set the preintegrated reference temperature.

Parameters
  • p – Pointer to ShellProp object.

  • alpha – Vector of preintegrated coefficients of thermal expansion

void vfe_ShellPropSetStressStrain(vfe_ShellProp *p, Vint numrec, Vdouble rec[])

set stress recovery points

Set the list of stress recovery points to be used in vfe_MatlFunStressStrain() for the stress and strain output. This function is only valid when vfe_ShellPropDef() has been called with SHELLPROP_MATRIX or SHELLPROP_PSHELL. In all other cases the integration points through the thickness are used as the recovery points.

Parameters
  • p – Pointer to ShellProp object.

  • numrec – Number of recovery points

  • rec – Z location of recovery points

void vfe_ShellPropMatlFun(vfe_ShellProp *p, vfe_MatlFun *matlfun)

fill MatlFun object

Fill a MatlFun object with material model functions. Use the MatlFun object as an attribute object for any shell element formulation module, such as Shell3D.

Parameters
  • p – Pointer to ShellProp object.

  • matlfun – Pointer to MatlFun object to be filled with material functions

11.4. Beam Element Properties - BeamProp

The BeamProp module is used to define an element material for beam element formulations using the Beam3D module. The element material includes area properties, shear factors, etc. Options exist for modelling general section, general integrated and and general matrix beam section constructions. The methods associated with a BeamProp object are the following.

Instance a BeamProp object using vfe_BeamPropBegin(). Once a BeamProp object is instanced, define the element material type using vfe_BeamPropDef(). Options exist for general section area properties, general integration point, and general matrix input. Use vfe_BeamPropSetSection() to enter element area properties. Use vfe_BeamPropSetIntegrate() to enter element properties at each of a user specified number of integration points across the cross section of the beam.

Use vfe_BeamPropSetMatrix() to enter the preintegrated matrix of a general matrix beam property type and vfe_BeamPropSetDensity() to set the associated densities. Use vfe_BeamPropSetRefTemp() and vfe_BeamPropSetThermExp() to set the preintegrated reference temperature and coefficients of thermal expansion. Preintegrated properties in BeamProp may be temperature dependent. The current temperature for which preintegrated properties are to be defined is set using vfe_BeamPropSetTemp(). All subsequently defined preintegrated properties are assumed to be at the current temperature.

Use vfe_BeamPropSetMatlFun() to attach a primitive material to each material id required.

Use vfe_BeamPropMatlFun() to fill a MatlFun object with function pointers which is then set in a beam element formulation object such as Beam3D using vfe_Beam3DSetObject(). Destroy an instance of a BeamProp object using vfe_BeamPropEnd().

11.5. Element Properties

The BeamProp module provides for three different types of beam properties, general section, general integrated and general matrix. Depending upon the beam property type the user may specify element properties such as area, moments of inertia, effective shear factor, etc. By default these properties are assumed to be constant along the beam axis. To achieve a variation of these properties along the beam axis the user may define an element property scale factor. The pointers to all element property nodal scale factors are set in the element formulation module Beam3D using vfe_Beam3DSetPropPtr(). The following notation and defined constants for area properties are used:

A   , VFE_PROP_AREA, Area
A   , VFE_PROP_AREA, Area
Iyy , VFE_PROP_IYY , Moment of inertia about centroidal y axis
Izz , VFE_PROP_IZZ , Moment of inertia about centroidal z axis
Iyz , VFE_PROP_IYZ , Product of inertia with respect to centroidal axes
J   , VFE_PROP_J   , Torsional constant about centroid
Ksy , VFE_PROP_KSY , Shear factor along y axis
Ksz , VFE_PROP_KSZ , Shear factor along z axis
Ksyz, VFE_PROP_KSYZ, Coupling shear factor.
Dsy , VFE_PROP_DSY , Shear center offset from centroid along y axis
Dsz , VFE_PROP_DSZ , Shear center offset from centroid along z axis

Thky, VFE_PROP_THICKNESSY, Thickness along y axis
Thkz, VFE_PROP_THICKNESSZ, Thickness along z axis

The default value for all area properties is unity except for the shear factors, Ksy and Ksz, which default to 5/6 and the shear center offsets which default to zero.

  • A general section beam allows the specification of general area properties which include the total area, moments of inertia, torsional constant, shear factors and shear center offsets. If the area properties vary along the beam axis, element property nodal scale factors may be used to define the variation. Set general section properties using vfe_BeamPropSetSection().

  • A general integrated beam allows the specification of any number of integration points in the cross section of the beam. The y’,z’ location, contributory area, and material id must be specified for each integration point. The torsional constant, shear factors and shear center offsets are entered as element properties. The integration point locations may be varied along the beam axis using the VFE_PROP_THICKNESSY and VFE_PROP_THICKNESSZ element property scale factors. Set integration properties using vfe_BeamPropSetIntegrate().

  • A general matrix may be specified characterizing the beam section. The matrix is input as the lower triangle of the material stiffness matrix A. Set matrix properties using vfe_BeamPropSetMatrix(). The matrices together define the element material stiffness matrix which relates the stress resultants (Nxx, Myy, Mzz, T, Qxy, Qzx) to the reference axis strains, twists and curvatures (exx, kyy, kzz, twist, gxy, gzx) as follows: Set associated densities using vfe_BeamPropSetDensity().

    --   --   --                                 -- --     --
    | Nxx |   | A1                                | | exx   |
    | Myy |   | A2    A3                          | | kyy   |
    | Mzz |   | A4    A5    A6                    | | kzz   |
    | T   |   | A7    A8    A9    A10             | | twist |
    | Qxy |   | A11   A12   A13   A14   A15       | | gxy   |
    | Qzx |   | A16   A17   A18   A19   A20   A21 | | gzx   |
    --   --   --                                 -- --     --
    
../../_images/vfetools-prop2.gif

Figure 11-2, Sign Conventions for Beam Stress Resultants

The matrix quantities appear as follows for the case of zero shear center offset and axial-bending coupling where E is the elastic modulus and G is the shear modulus:

A1  = E * A
A3  = E * Iyy
A5  = E * Iyz
A6  = E * Izz
A10 = G * J
A15 = G * Ksy  * A
A20 = G * Ksyz * A
A21 = G * Ksz  * A

Note that if the right-hand rotations about the x, y, z axes are denoted by rx, ry, rz, then the twist, twist and curvatures, kyy, kzz are given by:

twist =  rx,x
kyy   =  ry,x
kzz   = -rz,x

Temperatures are used if the effects of thermal expansion are to be included.

A table summarizing proper combinations of element formulation and material type with possible element property nodal scale factors appears below.

SetSection     SetIntegrate    SetMatrix
-------------------------------------------------------------
A
Iyy,Izz,Iyz
               Thky,Thkz
J              J
Ksy,Ksz,Ksyz   Ksy,Ksz,Ksyz
Dsy,Dsz        Dsy,Dsz
-------------------------------------------------------------

11.6. Function Descriptions

The currently available BeamProp functions are described in detail in this section.

vfe_BeamProp *vfe_BeamPropBegin(void)

create an instance of a BeamProp object

Create an instance of a BeamProp object. Memory is allocated for the object private data and the pointer to the object is returned. By default the element material model assumes a general section material with unit area, moments of inertia and torsional constant, zero shear center offsets, and shear factors of 5/6 with a material id of 1.

Destroy an instance of a BeamProp object using

void vfe_BeamPropEnd (vfe_BeamProp *beamprop)

Return the current value of a BeamProp object error flag using

Vint vfe_BeamPropError (vfe_BeamProp *beamprop)

Returns

The function returns a pointer to the newly created BeamProp object. If the object creation fails, NULL is returned.

void vfe_BeamPropEnd(vfe_BeamProp *p)

destroy an instance of a BeamProp object

See vfe_BeamPropBegin()

Vint vfe_BeamPropError(vfe_BeamProp *p)

return the current value of a BeamProp object error flag

See vfe_BeamPropBegin()

void vfe_BeamPropSetParami(vfe_BeamProp *p, Vint type, Vint iparam)

set beam property parameters

Set beam property parameters.

The parameter VFE_THERMALSTRAIN is used to toggle the calculation of thermal strains. By default VFE_THERMALSTRAIN is set to SYS_ON.

The source of the reference temperature used in thermal strain calculation is toggled by the VFE_THERMALEXPREF flag. If VFE_THERMALEXPREF is off then the reference temperature input with vfe_LinMatSetRefTemp() is used otherwise the reference temperature input by vfe_MatlFunProp() with type VFE_PROP_TEMPREF is used, where the MatlFun object used is the one referencing the BeamProp object. By default VFE_THERMALEXPREF is set to SYS_OFF.

Errors

  • SYS_ERROR_ENUM is generated if an improper type is specified.

  • SYS_ERROR_VALUE is generated if an improper iparam is specified.

Parameters
  • p – Pointer to BeamProp object.

  • type – Type of parameter to set

    x=VFE_THERMALSTRAIN      Toggle thermal strains
     =VFE_THERMALEXPREF      Toggle reference temperature source
    

  • iparam – Integer parameter value.

    x=SYS_OFF                Disable
     =SYS_ON                 Enable
    

void vfe_BeamPropDef(vfe_BeamProp *p, Vint type)

define property type

Define the type of beam material to be specified. Use vfe_BeamPropSetIntegrate() to input integration point properties, vfe_BeamPropSetSection() to input section properties and vfe_BeamPropSetMatrix() to input general matrix properties. By default the beam material type is BEAMPROP_SECTION.

Inquire of a defined type as an output argument using

void vfe_BeamPropInq (vfe_BeamProp *beamprop,
                      Vint *type)

Errors

SYS_ERROR_ENUM is generated if an improper type is specified.

Parameters
  • p – Pointer to BeamProp object.

  • type – Beam material type

    x=BEAMPROP_INTEGRATE       General integrated beam property
     =BEAMPROP_SECTION         General section beam property
     =BEAMPROP_MATRIX          General matrix beam property
    

void vfe_BeamPropInq(vfe_BeamProp *p, Vint *type)

inquire of a defined type as an output argument

See vfe_BeamPropDef()

void vfe_BeamPropSetMatlFun(vfe_BeamProp *p, Vint matid, vfe_MatlFun *matlfun)

set primitive material model

Set a primitive material associated with a material matid. There must be a call to this function to set the MatlFun object for each matid used in the beam property definition.

Errors

SYS_ERROR_VALUE is generated if an improper matid is specified.

Parameters
  • p – Pointer to BeamProp object.

  • matid – Material id of primitive material

  • matlfun – Pointer to MatlFun object of primitive material model

void vfe_BeamPropSetIntegrate(vfe_BeamProp *p, Vdouble prop[], Vint nips, Vdouble yz[][2], Vdouble area[], Vint matid)

set general integration point properties

Set section properties, prop and integration properties for nips points in the cross section of the beam. The coordinates, yz, are the coordinates of the integration points in the element coordinate system with its origin at the beam reference axis. The areas, area, are the contributions of the integration points to the total area of the beam cross section. A MatlFun object must be associated with matid using vfe_BeamPropSetMatlFun().

The section property array, prop, contains the following:

prop[0] = J
prop[1] = Ksy
prop[2] = Ksz
prop[3] = Ksyz
prop[4] = Dsy
prop[5] = Dsz
The pointers to all element property nodal scale factors are set in the element formulation module Beam3D using vfe_Beam3DSetPropPtr(). Possible property scale factors are the following;
 VFE_PROP_THICKNESSY, VFE_PROP_THICKNESSY
 VFE_PROP_J
 VFE_PROP_KSY, VFE_PROP_KSZ, VFE_PROP_KSZ
 VFE_PROP_DSY, VFE_PROP_DSZ
The thickness scale factors scale the y’ and z’ integration point coordinates respectively.

Errors

  • SYS_ERROR_VALUE is generated if an improper nips or matid is specified.

  • SYS_ERROR_VALUE is generated if any member of area <= 0.

Parameters
  • p – Pointer to BeamProp object.

  • prop – Array of properties

  • nips – Number of integration points, nips > 0.

  • yz – Array of integration point coordinates.

  • area – Array of contributory areas at each integration point.

  • matid – Material id, matid > 0.

void vfe_BeamPropSetMatrix(vfe_BeamProp *p, Vdouble dmat[21])

set general matrix

Set general matrix. The general matrix relates the beam stress resultants to the centroidal strains, twists and curvatures. Use vfe_BeamPropSetDensity() to set the preintegrated mass properties of the beam.

Parameters
  • p – Pointer to BeamProp object.

  • dmat – Lower triangle of 6x6 material stiffness matrix

void vfe_BeamPropSetSection(vfe_BeamProp *p, Vdouble prop[], Vint matid)

set general cross section area properties

Set section properties, prop and general cross section area properties.

The section property array, prop, contains the following:

prop[0] = A
prop[1] = Iyy
prop[2] = Izz
prop[3] = Iyz
prop[4] = J
prop[5] = Ksy
prop[6] = Ksz
prop[7] = Ksyz
prop[8] = Dsy
prop[9] = Dsz
The pointers to all element property nodal scale factors are set in the element formulation module Beam3D using vfe_Beam3DSetPropPtr(). Possible property scale factors are the following;
 VFE_PROP_AREA
 VFE_PROP_IYY, VFE_PROP_IZZ, VFE_PROP_IYZ
 VFE_PROP_J
 VFE_PROP_KSY, VFE_PROP_KSZ, VFE_PROP_KSZ
 VFE_PROP_DSY, VFE_PROP_DSZ

Parameters
  • p – Pointer to BeamProp object.

  • prop – Array of properties

  • matid – Material id

void vfe_BeamPropSetDensity(vfe_BeamProp *p, Vdouble density[])

set preintegrated densities

Set preintegrated densities associated with a general matrix beam property. The six densities are ordered as follows: the density per unit length followed by the first and second moments of the density with respect to the beam section y coordinates followed by the first and second moments of the density with respect to the beam section z coordinates followed by the yz moment. Use vfe_BeamPropSetMatrix() to set the preintegrated elastic properties of the beam.

Parameters
  • p – Pointer to BeamProp object.

  • density – Array of preintegrated densities

void vfe_BeamPropSetRefTemp(vfe_BeamProp *p, Vdouble reftemp)

set preintegrated reference temperature

Set preintegrated reference temperature. Use vfe_BeamPropSetThermExp() to set the preintegrated coefficients of thermal expansion of the beam.

Parameters
  • p – Pointer to BeamProp object.

  • reftemp – Reference temperature

void vfe_BeamPropSetTemp(vfe_BeamProp *p, Vdouble temp)

set temperature parameter

Specify the current temperature for which all subsequent preintegrated element properties, until another call to vfe_BeamPropSetTemp() is encountered, are defined.

Parameters
  • p – Pointer to BeamProp object.

  • temp – Current temperature of defined preintegrated properties

void vfe_BeamPropSetThermExp(vfe_BeamProp *p, Vdouble alpha[])

set preintegrated thermal expansion

Set preintegrated coefficients of thermal expansion Use vfe_BeamPropSetRefTemp() to set the preintegrated reference temperature.

Parameters
  • p – Pointer to BeamProp object.

  • alpha – Vector of preintegrated coefficients of thermal expansion

void vfe_BeamPropSetStressStrain(vfe_BeamProp *p, Vint numrec, Vdouble rec[][2])

set beam recovery points

Set the list of stress recovery points to be used in vfe_MatlFunStressStrain() for the stress and strain output. This function is only valid when vfe_BeamPropDef() has been called with BEAMPROP_MATRIX or BEAMPROP_SECTION. In all other cases the integration points through the cross section are used as the recovery points.

Parameters
  • p – Pointer to BeamProp object.

  • numrec – Number of recovery points

  • rec – Y-Z location of recovery points

void vfe_BeamPropMatlFun(vfe_BeamProp *p, vfe_MatlFun *matlfun)

fill MatlFun object

Fill a MatlFun object with material model functions. Use the MatlFun object as an attribute object for any beam element formulation module, such as Beam3D.

Parameters
  • p – Pointer to BeamProp object.

  • matlfun – Pointer to MatlFun object to be filled with material functions

11.7. Interface and Gap Element Properties - InterProp

The InterProp module is used to define an element material for interface and gap element formulations using the Inter2D, Inter3D and Gap modules. The element material includes film coefficients and traction-relative displacement relationships. Current options exist for contact with and without friction in structural analysis and heat flux as a direct function of temperature difference in thermal analysis. The methods associated with a InterProp object are the following.

Instance a InterProp object using vfe_InterPropBegin(). Once a InterProp object is instanced, define the element material type using vfe_InterPropDef(). Options exist for contact with and without friction and sticking contact. The interface properties normal to the surface are input as some type of traction versus relative displacement curve. The structural contact types are as follows.

  • INTERPROP_SLIP contact without friction. If contact occurs then any relative displacement tangential to the normal contact direction is frictionless. The tangential tractions are always zero.

  • INTERPROP_NOSLIP contact with infinite friction. If contact occurs then any tangential relative displacement is restrained with the same stiffness penalty as the normal relative displacement.

  • INTERPROP_STICK contact with infinite friction with no release. If contact occurs then any tangential relative displacement is restrained with the same stiffness penalty as the normal relative displacement and the normal stiffness penalty is never reduced. In this case a stress history must be maintained.

  • INTERPROP_FRICTION contact with friction. If contact occurs any relative displacement tangential to the normal contact direction is contrained using the tangential stiffness penalty until the tangential friction force is exceeded and slippage occurs. In this case a stress history must be maintained.

There are three functions for inputting the curve relating normal traction to normal relative displacement: vfe_InterPropSetNormPWLinear() or vfe_InterPropSetNormBiLinear() If a bilinear curve is specified using vfe_InterPropSetNormBiLinear() the input arguments generate a traction, Tx, versus relative displacement, dx, as illustrated in Figure 11-3a.

../../_images/vfetools-prop3a.gif

Figure 11-3a, Bilinear Traction versus Relative Displacment Curve

If a piecewise linear curve is specified using vfe_InterPropSetNormPWLinear() the traction, Tx, versus relative displacement, dx, curve is illustrated in Figure 11-3c.

../../_images/vfetools-prop3c.gif

Figure 11-3c, Piecewise Linear Traction versus Relative Displacment Curve

If friction is present, the coefficients of static and kinetic friction in each of the principal tangential directions are input using vfe_InterPropSetFriction(). Note that a stress history must be maintained for either contact with sticking or contact with friction. Use the material function, vfe_MatlFunNumHist(), to query the number of history variables used at a point.

The thermal analysis types are as follows.

  • INTERPROP_CONVECTION thermal convection.
    A film coefficient must be defined.

  • INTERPROP_RADIATION thermal radiation.
    The Stefan Boltzmann contant and emissivity must be defined.

Use vfe_InterPropSetFilmCoef() to enter film coefficients for thermal analysis. Use vfe_InterPropSetEmissivity() and vfe_InterPropSetStefanBoltzmann() to set emissivity and the Stefan-Boltzmann contant for radiation effects. The current temperature for which properties are to be defined is set using vfe_InterPropSetTemp(). All subsequently defined film coefficient properties are assumed to be at the current temperature.

Use vfe_InterPropMatlFun() to fill a MatlFun object with function pointers which is then set in an interface or gap element formulation object such as Inter3D using vfe_Inter3DSetObject(). Destroy an instance of a InterProp object using vfe_InterPropEnd().

11.8. Element Properties

The pointers to all element properties are set in the element formulation modules Inter2D, Inter3D or Gap using vfe_Inter2DSetPropPtr(), vfe_Inter3DSetPropPtr() or vfe_GapSetPropPtr() respectively. The only element property required is the temperature for temperature dependent material effects.

T, VFE_PROP_TEMPERATURE, Temperature

The default value for the temperature, T, is 0.

For structural analysis the InterProp module relates a vector of tractions, (Tx, Ty, Tz) to a vector of relative displacements (dx, dy, dz)

--  --   --              -- --  --
| Tx |   | A1             | | dx |
| Ty |   | A2    A3       | | dy |
| Tz | = | A4    A5    A6 | | dz |
--  --   --              -- --  --

A surface normal interface properties relate Tx directly to dx through the traction-relative displacement curve.

For thermal analysis, the InterProp module relates a scalar heat flux, (q) to a scalar generalized temperature difference (dt)

q = h*dt

Where h is the film coefficient.

11.9. Function Descriptions

The currently available InterProp functions are described in detail in this section.

vfe_InterProp *vfe_InterPropBegin(void)

create an instance of an InterProp object

Create an instance of a InterProp object. Memory is allocated for the object private data and the pointer to the object is returned. By default the element material model assumes a slip material.

Destroy an instance of a InterProp object using

void vfe_InterPropEnd (vfe_InterProp *interprop)

Return the current value of a InterProp object error flag using

Vint vfe_InterPropError (vfe_InterProp *interprop)

Returns

The function returns a pointer to the newly created InterProp object. If the object creation fails, NULL is returned.

void vfe_InterPropEnd(vfe_InterProp *p)

destroy an instance of an InterProp object

See vfe_InterPropBegin()

Vint vfe_InterPropError(vfe_InterProp *p)

return the current value of an InterProp object error flag

See vfe_InterPropBegin()

void vfe_InterPropDef(vfe_InterProp *p, Vint type)

define property type

Define the type of interface material to be specified. By default the interface material type is INTERPROP_SLIP. If INTERPROP_FRICTION is specified then the friction coefficients must be input using vfe_InterPropSetFriction().

If the stick or noslip options are specified then, during contact, infinite friction is indicated. In this case the tangential stiffness is set equal to the normal stiffness computed using the normal surface properties. If the stick option is specified then once contact occurs the surfaces are not allowed to separate even if a tensile normal traction develops.

Errors

SYS_ERROR_ENUM is generated if an improper type is specified.

Parameters
  • p – Pointer to InterProp object.

  • type – Interface material type

    x=INTERPROP_CONVECTION      Thermal convection
     =INTERPROP_RADIATION       Thermal radiation
     =INTERPROP_SLIP            Contact without friction
     =INTERPROP_NOSLIP          Contact with infinite friction
     =INTERPROP_STICK           Contact without release
     =INTERPROP_FRICTION        Contact with friction
    

void vfe_InterPropSetNormPWLinear(vfe_InterProp *p, Vint npts, Vdouble d[], Vdouble t[])

set piecewise linear normal properties

Set values defining a piecewise linear traction-relative displacement curve with npts points.

Errors

SYS_ERROR_VALUE is generated if an improper npts is specified.

Parameters
  • p – Pointer to InterProp object.

  • npts – Number of points in traction-relative displacement curve

  • d – Set of npts relative displacement values

  • t – Set of npts traction values

void vfe_InterPropSetNormBiLinear(vfe_InterProp *p, Vdouble kn, Vdouble ka, Vdouble d0, Vdouble t0)

set bilinear normal properties

Define a bilinear traction-relative displacement relationship by specifing two slopes, the stiffnesses kn and ka of the closed and open gap, and the initial gap, d0, and associated preload, t0.

Errors

SYS_ERROR_VALUE is generated if an improper npts is specified.

Parameters
  • p – Pointer to InterProp object.

  • kn – Normal stiffness for closed gap

  • ka – Ambient stiffness for open gap

  • d0 – Initial gap opening

  • t0 – Gap preload

void vfe_InterPropSetFriction(vfe_InterProp *p, Vdouble kt, Vdouble mustat[2], Vdouble mukine[2])

set friction properties

Set tangential stiffness factor, kt, and coefficients of static and kinetic friction, mustat and mukine. The coefficients of friction can not be negative, in addition the coefficients of static friction can not be less than the associated coefficients of kinetic friction.

Errors

SYS_ERROR_VALUE is generated if an improper mustat or mukine is specified.

Parameters
  • p – Pointer to InterProp object.

  • kt – Transverse stiffness

  • mustat – Coefficients of static friction in y’ and z’ directions

  • mukine – Coefficients of kinetic friction in y’ and z’ directions

void vfe_InterPropSetFilmCoef(vfe_InterProp *p, Vdouble filmcoef)

set film coefficient

Set film coefficient relating heat flux to generalized temperature difference. The film coefficient can not be negative.

Errors

SYS_ERROR_VALUE is generated if an improper filmcoef is specified.

Parameters
  • p – Pointer to InterProp object.

  • filmcoef – Film coefficient.

void vfe_InterPropSetEmissivity(vfe_InterProp *p, Vdouble emis)

set emissivity

Set emissivity relating heat flux to generalized temperature difference for radiation effects. The emissivity can not be negative.

Errors

SYS_ERROR_VALUE is generated if an improper emis is specified.

Parameters
  • p – Pointer to InterProp object.

  • emis – Emissivity

void vfe_InterPropSetStefanBoltzmann(vfe_InterProp *p, Vdouble sb)

set Stefan Boltzmann constant

Set Stefan Boltzmann constant for radiation effects.

Parameters
  • p – Pointer to InterProp object.

  • sb – Stefan Boltzmann constant

void vfe_InterPropSetTemp(vfe_InterProp *p, Vdouble temp)

set temperature parameter

Specify the current temperature for which all subsequent element film coefficient properties set using vfe_InterPropSetFilmCoef(), until another call to vfe_InterPropSetTemp() is encountered, are defined.

Parameters
  • p – Pointer to InterProp object.

  • temp – Current temperature of defined properties

void vfe_InterPropMatlFun(vfe_InterProp *p, vfe_MatlFun *matlfun)

fill MatlFun object

Fill a MatlFun object with material model functions. Use the MatlFun object as an attribute object for any interface or gap element formulation module, such as Inter3D.

Parameters
  • p – Pointer to InterProp object.

  • matlfun – Pointer to MatlFun object to be filled with material functions