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.
Begin and end an instance of an object, generic object functions
vfe_ShellPropBegin()
- create an instance of a ShellProp objectvfe_ShellPropEnd()
- destroy an instance of a ShellProp objectvfe_ShellPropError()
- return ShellProp object error flag
Specify material properties
vfe_ShellPropDef()
- define property typevfe_ShellPropInq()
- inquire property typevfe_ShellPropMatlFun()
- fill MatlFun objectvfe_ShellPropSetDensity()
- set preintegrated densitiesvfe_ShellPropSetIntegrate()
- set general integration point propertiesvfe_ShellPropSetLaminate()
- set laminate propertiesvfe_ShellPropSetMatlFun()
- set primitive material attribute objectvfe_ShellPropSetMatrix()
- set preintegrated matrixvfe_ShellPropSetMonocoque()
- set monocoque propertiesvfe_ShellPropSetParami()
- set shell property parametersvfe_ShellPropSetPShell()
- set NASTRAN PSHELL propertiesvfe_ShellPropSetRefTemp()
- set preintegrated reference temperaturevfe_ShellPropSetStressStrain()
- set stress recovery pointsvfe_ShellPropSetTemp()
- set temperature parametervfe_ShellPropSetThermExp()
- set preintegrated thermal expansion
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 usingvfe_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 | -- -- -- -- -- --
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
-
Vint vfe_ShellPropError(vfe_ShellProp *p)
return the current value of a ShellProp object error flag
-
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 defaultVFE_THERMALSTRAIN
is set toSYS_ON
.The source of the reference temperature used in thermal strain calculation is toggled by the
VFE_THERMALEXPREF
flag. IfVFE_THERMALEXPREF
is off then the reference temperature input withvfe_ShellPropSetRefTemp()
is used otherwise the reference temperature input byvfe_MatlFunProp()
with typeVFE_PROP_TEMPREF
is used, and the MatlFun object is the one referencing the ShellProp object. By defaultVFE_THERMALEXPREF
is set toSYS_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.
-
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 andvfe_ShellPropSetLaminate()
to input laminate properties andvfe_ShellPropSetPShell()
to input NASTRAN PSHELL properties andvfe_ShellPropSetMatrix()
to input general matrix properties. By default the shell material type isSHELLPROP_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
-
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 usingvfe_ShellPropSetMatlFun()
.The wall property array, prop, contains the following:
The pointers to all element property nodal scale factors are set in the element formulation modules Shell2D or Shell3D usingprop[0] = Thk prop[1] = Ks
vfe_Shell2DSetPropPtr()
orvfe_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()
orvfe_Shell3DSetPropPtr()
respectively. Possible property scale factors are the following;The thickness scale factor scales the Thk membrane thickness.VFE_PROP_THICKNESS
The material id array, matid, contains the following:
A MatlFun object must be associated with matid usingmatid[0] = NASTRAN MID1 matid[1] = NASTRAN MID2 matid[2] = NASTRAN MID3 matid[3] = NASTRAN MID4
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()
orvfe_Shell3DSetPropPtr()
respectively. Possible property scale factors are the following;The thickness scale factor scales the z integration point coordinates.VFE_PROP_THICKNESS VFE_PROP_KS
- 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()
orvfe_Shell3DSetPropPtr()
respectively. Possible property scale factors are the following;The thickness scale factor scales the t layer thickness values and the eccentricity property.VFE_PROP_THICKNESS
- 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 whenvfe_ShellPropDef()
has been called withSHELLPROP_MATRIX
orSHELLPROP_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
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.
Begin and end an instance of an object, generic object functions
vfe_BeamPropBegin()
- create an instance of a BeamProp objectvfe_BeamPropEnd()
- destroy an instance of a BeamProp objectvfe_BeamPropError()
- return BeamProp object error flag
Specify material properties
vfe_BeamPropDef()
- define property typevfe_BeamPropInq()
- inquire property typevfe_BeamPropMatlFun()
- fill MatlFun objectvfe_BeamPropSetDensity()
- set preintegrated densitiesvfe_BeamPropSetIntegrate()
- set general integration point propertiesvfe_BeamPropSetMatlFun()
- set primitive material attributevfe_BeamPropSetMatrix()
- set preintegrated matrixvfe_BeamPropSetSection()
- set general cross section area propertiesvfe_BeamPropSetParami()
- set beam property parametersvfe_BeamPropSetRefTemp()
- set preintegrated reference temperaturevfe_BeamPropSetStressStrain()
- set stress recovery pointsvfe_BeamPropSetTemp()
- set temperature parametervfe_BeamPropSetThermExp()
- set preintegrated thermal expansion
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 usingvfe_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 | -- -- -- -- -- --
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
-
Vint vfe_BeamPropError(vfe_BeamProp *p)
return the current value of a BeamProp object error flag
-
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 defaultVFE_THERMALSTRAIN
is set toSYS_ON
.The source of the reference temperature used in thermal strain calculation is toggled by the
VFE_THERMALEXPREF
flag. IfVFE_THERMALEXPREF
is off then the reference temperature input withvfe_LinMatSetRefTemp()
is used otherwise the reference temperature input byvfe_MatlFunProp()
with typeVFE_PROP_TEMPREF
is used, where the MatlFun object used is the one referencing the BeamProp object. By defaultVFE_THERMALEXPREF
is set toSYS_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 andvfe_BeamPropSetMatrix()
to input general matrix properties. By default the beam material type isBEAMPROP_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
-
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.
-
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:
The pointers to all element property nodal scale factors are set in the element formulation module Beam3D usingprop[0] = J prop[1] = Ksy prop[2] = Ksz prop[3] = Ksyz prop[4] = Dsy prop[5] = Dsz
vfe_Beam3DSetPropPtr()
. Possible property scale factors are the following;The thickness scale factors scale the y’ and z’ integration point coordinates respectively.VFE_PROP_THICKNESSY, VFE_PROP_THICKNESSY VFE_PROP_J VFE_PROP_KSY, VFE_PROP_KSZ, VFE_PROP_KSZ VFE_PROP_DSY, VFE_PROP_DSZ
- 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:
The pointers to all element property nodal scale factors are set in the element formulation module Beam3D usingprop[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
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 whenvfe_BeamPropDef()
has been called withBEAMPROP_MATRIX
orBEAMPROP_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
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.
Begin and end an instance of an object, generic object functions
vfe_InterPropBegin()
- create an instance of a InterProp objectvfe_InterPropEnd()
- destroy an instance of a InterProp objectvfe_InterPropError()
- return InterProp object error flag
Specify material properties
vfe_InterPropDef()
- define property typevfe_InterPropMatlFun()
- fill MatlFun objectvfe_InterPropSetNormBiLinear()
- set bilinear normal propertiesvfe_InterPropSetNormPWLinear()
- set piece wise linear normal propertiesvfe_InterPropSetEmissivity()
- set emissivityvfe_InterPropSetStefanBoltzmann()
- set Stefan Boltzmann constantvfe_InterPropSetFilmCoef()
- set film coefficientvfe_InterPropSetFriction()
- set friction propertiesvfe_InterPropSetTemp()
- set temperature parameter
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.
If a piecewise linear curve is specified using vfe_InterPropSetNormPWLinear()
the traction, Tx, versus relative displacement, dx, curve is illustrated
in Figure 11-3c.
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
-
Vint vfe_InterPropError(vfe_InterProp *p)
return the current value of an InterProp object error flag
-
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
. IfINTERPROP_FRICTION
is specified then the friction coefficients must be input usingvfe_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 tovfe_InterPropSetTemp()
is encountered, are defined.- Parameters:
p – Pointer to InterProp object.
temp – Current temperature of defined properties