9. Material Model Functions - MatlFun
The material model function module implements an interface between the element formulation modules and the underlying material constitutive model. The material model may be one of two basic types, 1) primitive materials and 2) element materials which contain one or more primitive materials and to which element properties such as shell element thickness are added. An example of the former is a linear elastic isotropic material, an example of the latter is a layered composite which includes primitive materials and element properties such as thickness and offset.
A MatlFun object defines function pointers to the material subsystem. These function pointers are required by each element formulation object to compute quantities such as stress, heat flux, material stiffness and thermal conductivity matrices.
In addition to function pointers to the underlying material subsystem, each material model function object maintains an auxiliary object pointer which is passed as the first argument to each material function. This auxiliary object pointer may be assigned by a module or by the user. The user defined object may be used to hang any information required to implement the material functions for a particular material model. The MatlFun module contains the following functions.
Begin and end an instance of an object, generic object functions
vfe_MatlFunBegin()
- create an instance of a MatlFun objectvfe_MatlFunEnd()
- destroy an instance of a MatlFun objectvfe_MatlFunError()
- return MatlFun object error flagvfe_MatlFunCopy()
- make a copy of a MatlFun object
Set function pointers
vfe_MatlFunSet()
- set function pointersvfe_MatlFunGet()
- get function pointersvfe_MatlFunSetObj()
- set auxiliary objectvfe_MatlFunGetObj()
- get auxiliary objectvfe_MatlFunAPI()
- set built-in functions
The material model functions are implemented as inline methods using C preprocessor macros. This has been done to reduce procedure call overhead. The macros which implement the following functions appear in the file matlfun.h. The material model functions listed below define the interface to the material subsystem.
Integration methodology
vfe_MatlFunElemIntPnt()
- set element integration point informationvfe_MatlFunNumHist()
- return number of material history variablesvfe_MatlFunHistPtr()
- set pointers to material historyvfe_MatlFunInitHist()
- initialize entries in material history
Structural analysis material quantities
vfe_MatlFunDCond()
- set material matrix condensation rulevfe_MatlFunDInfo()
- get material matrix informationvfe_MatlFunDMatrix()
- compute material stiffness matrixvfe_MatlFunStress()
- compute stress given strain or deformationvfe_MatlFunStressDMatrix()
- compute stress and material stiffness matrixvfe_MatlFunStressStrain()
- compute 3D stress and strainvfe_MatlFunModulus()
- compute characteristic elastic modulusvfe_MatlFunNumStressStrain()
- get number of section output points
Thermal analysis material quantities
vfe_MatlFundKMatrixdT()
- compute d(conductivity matrix)/dTvfe_MatlFunKInfo()
- compute matrix informationvfe_MatlFunKMatrix()
- compute thermal conductivity matrixvfe_MatlFunHeatFlux()
- compute heat flux given temperature gradientvfe_MatlFunHeatFluxKMatrix()
- compute flux and conductivity matrix
Miscellaneous material quantities
vfe_MatlFunDensity()
- compute densityvfe_MatlFunSpecHeat()
- compute specific heat
Element properties
vfe_MatlFunProp()
- set value of interpolated element property
9.1. Integration Methodology
The material function interface supports the notions of a continuum material formulation and a preintegrated material formulation. Continuum material models are specialized for continuum element formulations such as solid elements. Preintegrated material formulations are designed to support element types such as shells and beams in which stresses are typically integrated over the thickness or cross section to yield stress resultants.
A continuum material formulation requires the evaluation of stress and material stiffness assuming a 3D stess tensor. The integration over the element volume is done entirely by the element formulation. A continuum material model is specialied to solid element types. The 3D stress components are ordered as (sxx, syy, szz, sxy, syz, szx).
By contrast a preintegrated material formulation requires the evaluation of stress and material stiffness assuming that the stress has been preintegrated through the thickness or over the cross section of the element yielding a so-called stress resultant. A preintegrated material formulation is specialized to a particular element type which dictates the number and type of stress resultant components. For shell elements the stress resultant components are ordered as (Nxx, Nyy, Nxy, Mxx, Myy, Mxy, Qxz, Qyz), for beam elements the stress resultants are ordered as (Nxx, Myy, Mzz, T, Qxy, Qzx).
If the material model includes inelastic or similar effects it may require
that a history of computed material quantities be available. The user is
responsible for allocating the memory for the history variables and passing
pointers to the history variables at the previous and current solution steps.
The function vfe_MatlFunNumHist()
is used to query for the number of history
variables required at an integration point. The function vfe_MatlFunHistPtr()
is used to pass the pointers to the history variables to the material model.
Linear elastic materials, for example, require no history variables, plastic
materials will require several.
Use vfe_MatlFunInitHist()
to initialize the material history parameters
at the initial undeformed configuration.
9.2. Structural Analysis Material Quantities
A number of finctions are used to specifically compute stress and material
stiffness and query for material characteristics which relate to structural
analysis. The function vfe_MatlFunDInfo()
is the general function for
querying for material characteristics such as whether a particular material
formulation is supported; the zero fill of the material stiffness matrix, etc.
The function vfe_MatlFunDCond()
is used to set stress condenstaion flags so
the the material model can be configured to handle various plane stress
conditions.
The computation functions vfe_MatlFunDMatrix()
, vfe_MatlFunStress()
,
vfe_MatlFunStressDMatrix()
, vfe_MatlFunStressStrain()
, and
vfe_MatlFunModulus()
are used to compute stress/resultants,
three-dimensional stress and strain at section points,
and material stiffness matrices given a small strain or large strain
deformation matrix.
Again, the function vfe_MatlFunDInfo()
is used to query for whether
the material model requires small or large strain.
For continuum material formulations the small strain components are ordered (exx, eyy, ezz, gxy, gyz, gzx). and the deformation gradient matrix components are ordered as:
(1.-u,x, u,y, u,z,
v,x, 1.-v,y, v,z,
w,x, w,y, 1.-w,z).
For shell formulations the small strain is entered as reference surface strains and curvatures (exx, eyy, gxy, kxx, kyy, kxy, gxz, gyz).
For beam formulations the small strain is entered as reference axis strains, curvatures, a twist and shear strains. (exx, kyy, kzz, twist, gxy, gzx)
9.3. Thermal Analysis Material Quantities
In a manner analogous to structural analysis,
a number of functions are used to specifically compute heat flux and
thermal conductivity
and query for material characteristics which relate to thermal
analysis. The function vfe_MatlFunKInfo()
is the general function for
querying for material characteristics such as whether a particular material
formulation is supported; the zero fill of the thermal conductivity matrix, etc.
Density and specific heat are returned using
vfe_MatlFunDensity()
and vfe_MatlFunSpecHeat()
respectively.
The computation functions vfe_MatlFunKMatrix()
, vfe_MatlFunHeatFlux()
and
vfe_MatlFunHeatFluxKMatrix()
are used to compute heat flux
and thermal conductivity matrices given a temperature gradient vector.
The components of the temperature gradient vector are ordered
(gtx, gty, gtz).
9.4. Function Descriptions
The currently available MatlFun functions are described in detail in this section.
-
vfe_MatlFun *vfe_MatlFunBegin(void)
create an instance of a MatlFun object
Create an instance of a MatlFun object. Memory is allocated for the object private data and the pointer to the data is returned. By default all function pointers are NULL.
Destroy an instance of a MatlFun object using
void vfe_MatlFunEnd (vfe_MatlFun *matlfun)
Return the current value of a MatlFun object error flag using
Vint vfe_MatlFunError (vfe_MatlFun *matlfun)
Make a copy of a MatlFun object. The private data from the frommatlfun object is copied to the MatlFun object. Any previous private data in MatlFun is lost.
void vfe_MatlFunCopy (vfe_MatlFun *matlfun, vfe_MatlFun *frommatlfun)
- Returns:
The function returns a pointer to the newly created MatlFun object. If the object creation fails, NULL is returned.
-
void vfe_MatlFunEnd(vfe_MatlFun *p)
destroy an instance of a MatlFun object
-
Vint vfe_MatlFunError(vfe_MatlFun *p)
return the current value of a MatlFun object error flag
-
void vfe_MatlFunCopy(vfe_MatlFun *p, vfe_MatlFun *fromp)
make a copy of a MatlFun object
-
void vfe_MatlFunSet(vfe_MatlFun *p, Vint type, Vfunc *function)
set pointer to material model function
Set pointers to material model functions. Note that the function pointer argument should be cast to match the documented prototype above, for example:
vfe_MatlFunSet (matlfun,MATLFUN_GETSTRESS,(void(*)())My_GetStress);
Get function as an output argument using
void vfe_MatlFunGet (vfe_MatlFun *matlfun, Vint type, void (**function)())
- Errors
SYS_ERROR_ENUM
is generated if an improper type is input.
- Parameters:
p – Pointer to MatlFun object.
type – Function type being set
x=MATLFUN_DINFO Set DInfo function =MATLFUN_DMATRIX Set DMatrix function =MATLFUN_STRESS Set Stress function =MATLFUN_STRESSDMATRIX Set StressDMatrix function =MATLFUN_STRESSSTRAIN Set StressStrain function =MATLFUN_DCOND Set DCond function =MATLFUN_MODULUS Set Modulus function =MATLFUN_NUMSTRESSSTRAIN Set NumStressStrain function =MATLFUN_DKMATRIXDT Set dKMatrixdT function =MATLFUN_KINFO Set KInfo function =MATLFUN_KMATRIX Set KMatrix function =MATLFUN_HEATFLUX Set HeatFlux function =MATLFUN_HEATFLUXKMATRIX Set HeatFluxKMatrix function =MATLFUN_DENSITY Set Density function =MATLFUN_SPECHEAT Set SpecHeat function =MATLFUN_ELEMINTPNT Set ElemIntPnt function =MATLFUN_NUMHIST Set NumHist function =MATLFUN_HISTPTR Set HistPtr function =MATLFUN_INITHIST Set InitHist function =MATLFUN_PROP Set Prop function
function – Pointer to material model function
-
void vfe_MatlFunSetErrorFunction(vfe_MatlFun *p, VfuncInt *function)
set pointer to error function
Set pointers to error functions.
- Parameters:
p – Pointer to MatlFun object.
function – Pointer to error function
-
void vfe_MatlFunGet(vfe_MatlFun *p, Vint type, Vfunc **function)
get pointer to material model function
See
vfe_MatlFunSet()
-
void vfe_MatlFunSetObj(vfe_MatlFun *p, Vobject *obj)
set pointer to auxiliary object
Set pointer to material model function auxiliary object.
Get obj as an output argument using
void vfe_MatlFunGetObj (vfe_MatlFun *matlfun, Vobject **obj)
- Parameters:
p – Pointer to MatlFun object.
obj – Pointer to auxiliary object
-
void vfe_MatlFunGetObj(vfe_MatlFun *p, Vobject **obj)
get pointer to auxiliary object
-
void vfe_MatlFunAPI(vfe_MatlFun *p, Vint api)
set built-in functions
Set built in material functions. The
MATLFUN_APIRETURN
drawing functions simply return.- Errors
SYS_ERROR_ENUM
is generated if an improper api is input.
- Parameters:
p – Pointer to MatlFun object.
api – Type of built-in material function to return.
x=MATLFUN_APIRETURN Set return material functions
-
void vfe_MatlFunDMatrix(vfe_MatlFun *p, Vdouble dm[])
compute material stiffness matrix
Return a material stiffness matrix, dm, for an element. The material stiffness matrix returned by this function is evaluated at zero strain. Use
vfe_MatlFunStressDMatrix()
to return tangent material stiffness matrices at a given strain. For continuum material formulations the material stiffness is assumed to have 6 rows. Shell element material stiffness matrices have 8 rows and beam element material stiffness matrices have 6 rows.For beams and shells the resultant tangent matrix is returned by this function. Otherwise, the three dimensional tangent matrix is returned.
- Parameters:
p – Pointer to MatlFun object.
dm – [out] Lower triangle of material stiffness matrix
-
void vfe_MatlFunDInfo(vfe_MatlFun *p, Vint type, Vint *info)
get material stiffness matrix information
Return an integer constant which reflects an attribute or parameter of the underlying material model.
VFE_MATLELEM
queries the material model for specific support for an element type. If the underlying material model is a primitive material, then the element type will beSYS_ELEM_UNDEFINED
. Element materials specific to shells or beams returnSYS_ELEM_SHELL
orSYS_ELEM_BEAM
respectively.VFE_MATLFULL
queries the non-zero pattern of the material stiffness matrix. This value is used to avoid zero arithmetic by the element formulation modules. A return value ofSYS_ON
indicates that the matrix is full, ie. has all possible non-zero entries. A value ofSYS_OFF
indicates a certain degree of sparsity.For 6 by 6 continuum material stiffnesses, full and sparse matrices have the following fill patterns:
For 8 by 8 shell material stiffnesses, full and sparse matrices have the following fill patterns:Full Sparse x x x x x x x x x 0 0 0 x x x x x x x x x 0 0 0 x x x x x x x x x 0 0 0 x x x x x x 0 0 0 x 0 0 x x x x x x 0 0 0 0 x 0 x x x x x x 0 0 0 0 0 x
Full Sparse x x x x x x 0 0 x x x 0 0 0 0 0 x x x x x x 0 0 x x x 0 0 0 0 0 x x x x x x 0 0 x x x 0 0 0 0 0 x x x x x x 0 0 0 0 0 x x x 0 0 x x x x x x 0 0 0 0 0 x x x 0 0 x x x x x x 0 0 0 0 0 x x x 0 0 0 0 0 0 0 0 x x 0 0 0 0 0 0 x x 0 0 0 0 0 0 x x 0 0 0 0 0 0 x x
For 6 by 6 beam material stiffnesses, full and sparse matrices have the following fill patterns:
Full Sparse x x x 0 0 0 x 0 0 0 0 0 x x x 0 0 0 0 x 0 0 0 0 x x x 0 0 0 0 0 x 0 0 0 0 0 0 x x x 0 0 0 x 0 0 0 0 0 x x x 0 0 0 0 x 0 0 0 0 x x x 0 0 0 0 0 x
VFE_STRAINTYPE
queries whether large strain,VFE_LARGESTRAIN
, or small strain,VFE_SMALLSTRAIN
, is supported. Large strains require a deformation gradient matrix to be passed to thevfe_MatlFunStress()
,vfe_MatlFunStressStrain()
, andvfe_MatlFunStressDMatrix()
functions. Small strains require a small strain tensor to be passed to thevfe_MatlFunStress()
,vfe_MatlFunStressStrain()
, andvfe_MatlFunStressDMatrix()
functions.- Parameters:
p – Pointer to MatlFun object.
type – Type of material stiffness matrix information to return
x=VFE_MATLELEM Specific element type supported =VFE_MATLFULL Zero fill of matrix =VFE_STRAINTYPE Strain capability
info – [out] Material stiffness matrix information
x=SYS_ON True =SYS_OFF False =SYS_ELEM_UNDEFINED Not element type specific =SYS_ELEM_SHELL Shell element material =SYS_ELEM_BEAM Beam element material =VFE_LARGESTRAIN Large strain capability =VFE_SMALLSTRAIN Small strain capability
-
void vfe_MatlFunStress(vfe_MatlFun *p, Vdouble dfrm[], Vdouble strs[])
compute stress/resultant given strain/curvature
Compute the Cauchy stresses, strs, for an element given a small strain or deformation gradient matrix, dfrm. The underlying material model must be queried using
vfe_MatlFunDInfo()
for support of small strain or large strain. If the material model supports small strain then dfrm contains a small strain tensor, if the material model supports large strain then dfrm contains a deformation gradient matrix.For shells and beams the resultant stresses are returned by this function. Otherwise, the 6 stress components are returned.
- Parameters:
p – Pointer to MatlFun object.
dfrm – Given small strain tensor or deformation gradient matrix
strs – [out] Computed Cauchy stresses
-
void vfe_MatlFunStressDMatrix(vfe_MatlFun *p, Vdouble dfrm[], Vint dflag, Vdouble strs[], Vdouble dm[])
compute stress and material stiffness matrix
Compute the Cauchy stresses, strs, and optional material stiffness matrix, dm, for an element given a small strain or deformation gradient matrix, dfrm. This function is specifically designed for use in nonlinear analysis to allow stress and tangent material stiffness to be computed together for computational efficiency. The underlying material model must be queried using
vfe_MatlFunDInfo()
for support of small strain or large strain. If the material model supports small strain then dfrm contains a small strain tensor, if the material model supports large strain then dfrm contains a deformation gradient matrix.For shells and beams the resultant stresses and tangent matrix are returned by this function. Otherwise, the three dimensional stress components and the resulting tangent are returned.
- Parameters:
p – Pointer to MatlFun object.
dfrm – Given small strain tensor or deformation gradient matrix
dflag – Optional computation of material stiffness matrix
strs – [out] Computed Cauchy stresses
dm – [out] Lower triangle of material stiffness matrix
-
void vfe_MatlFunModulus(vfe_MatlFun *p, Vdouble modulus[])
compute characteristic elastic modulus
Return characteristic elastic modulus or preintegrated elastic modulus. For continuum material formulations the elastic modulus is returned as a single characteristic value for Young’s modulus, E. For shell elements the elastic moduli is E*Thk**3/12 and for beam elements the elastic modulus is G*J.
- Parameters:
p – Pointer to MatlFun object.
modulus – [out] Elastic modulus
-
void vfe_MatlFunNumHist(vfe_MatlFun *p, Vint *numhist)
return number of material history variables
Return the number of history variables, numhist, used in the underlying element or primitive material model at an integration point. This number should be used to allocate memory to hold history variables to be passed to the underlying material model. A history variable is of type Vdouble. For example a linear material model does not require history variables and should return numhist = 0, whereas a path dependent plasticity model requires a stress history of some sort and would return a numhist > 0.
- Parameters:
p – Pointer to MatlFun object.
numhist – [out] Number of material history variables.
-
void vfe_MatlFunHistPtr(vfe_MatlFun *p, Vdouble *oldhistptr, Vdouble *newhistptr)
set pointers to material history
Set pointers to the material history at the previous step and the current step. The amount of allocated memory pointed to by each of the pointers, oldhistptr and newhistptr must be equal to:
where numhist is returned bysizeof(Vdouble) * numhist
vfe_MatlFunNumHist()
.- Parameters:
p – Pointer to MatlFun object.
oldhistptr – Pointer to history at previous step
newhistptr – Pointer to history at current step
-
void vfe_MatlFunInitHist(vfe_MatlFun *p)
initialize entries in material history
Initialize the values of the history variables used in the underlying element or primitive material model at an integration point. This operation should be performed to initialize the old history variables to reflect the condition of the initial configuration. This function needs to be called exactly once per integration point and only if the number of history variable returned by
vfe_MatlFunNumHist()
is non-zero. The pointers to the history variables must have been previously set usingvfe_MatlFunHistPtr()
.- Parameters:
p – Pointer to MatlFun object.
-
void vfe_MatlFunElemIntPnt(vfe_MatlFun *p, Vint elemintpnt, Vdouble r[3], Vdouble w, Vdouble dj)
specify element integration point
This function is strictly used to communicate element integration point information to the material model for the calculation of user defined output quantities which are not supported directly by the material function interface. For example the element volume can be easily computed by accumulating the product of the weight, w, and the determinant of the Jacobian, dj, for each integration point in an element.
- Parameters:
p – Pointer to MatlFun object.
elemintpnt – Element integration point number 1 <= elemintpnt
r – Natural coordinates of integration point
w – Weight of integration point
dj – Determinant of the Jacobian matrix at the integration point
-
void vfe_MatlFunKMatrix(vfe_MatlFun *p, Vdouble km[])
compute thermal conductivity matrix
Return a thermal conductivity matrix, km, for an element. The thermal conductivity matrix is assumed to have 3 rows.
- Parameters:
p – Pointer to MatlFun object.
km – [out] Lower triangle of thermal conductivity matrix
-
void vfe_MatlFunKInfo(vfe_MatlFun *p, Vint type, Vint *info)
get thermal conductivity matrix information
Return an integer constant which reflects an attribute or parameter of the underlying material model.
VFE_MATLELEM
queries the material model for specific support for an element type. If the underlying material model is a primitive material, then the element type will beSYS_ELEM_UNDEFINED
. This is currently the only option for thermal analysis.VFE_MATLFULL
queries the non-zero pattern of the thermal conductivity matrix. This value is used to avoid zero arithmetic by the element formulation modules. A return value ofSYS_ON
indicates that the matrix is full, ie. has all possible non-zero entries. A value ofSYS_OFF
indicates a certain degree of sparsity.Full Sparse x x x x 0 0 x x x 0 x 0 x x x 0 0 x
VFE_TEMPDEP
queries for temperature-dependent thermal conductivity. This value is used to determine whethervfe_MatlFundKMatrixdT()
should be called to add this dependency to a non-symmetric thermal conductivity matrix.- Parameters:
p – Pointer to MatlFun object.
type – Type of thermal conductivity matrix information to return
x=VFE_MATLELEM Specific element type supported =VFE_MATLFULL Zero fill of matrix =VFE_TEMPDEP Temperature-dependent conductivity
info – [out] Thermal conductivity matrix information
x=SYS_ON True =SYS_OFF False =SYS_ELEM_UNDEFINED Not element type specific
-
void vfe_MatlFunHeatFlux(vfe_MatlFun *p, Vdouble grad[], Vdouble flux[])
compute heat flux given temperature gradient
Compute the heat flux, flux, for an element given a temperature gradient vector, grad.
- Parameters:
p – Pointer to MatlFun object.
grad – Given temperature gradient vector
flux – [out] Computed heat flux vector
-
void vfe_MatlFunHeatFluxKMatrix(vfe_MatlFun *p, Vdouble tgrad[], Vint kflag, Vdouble flux[], Vdouble kl[])
compute flux and conductivity matrix
Compute the heat flux, flux, and option thermal conductivity matrix, kl, for an element given a temperature gradient vector, tgrad. This function is specifically designed for use in nonlinear analysis to allow heat flux and tangent thermal conductivity to be computed together for computational efficiency.
- Parameters:
p – Pointer to MatlFun object.
tgrad – Given temperature gradient vector
kflag – Optional computation of thermal conductivity matrix
flux – [out] Computed heat flux vector
kl – [out] Lower triangle of thermal conductivity matrix
-
void vfe_MatlFunDensity(vfe_MatlFun *p, Vdouble density[])
compute density
Return density or preintegrated densities. For continuum material formulations the density is returned as a single value. Shell element densities have 3 values; the density per unit area followed by the first and second moments of the density with respect to the thickness coordinate of the shell. Beam element densities have 6 values; 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. If the density or densities are not defined they are returned as zero.
- Parameters:
p – Pointer to MatlFun object.
density – [out] Density
-
void vfe_MatlFunSpecHeat(vfe_MatlFun *p, Vdouble specheat[])
compute specific heat
Return specific heat. If the specific heat is not defined it is returned as zero.
- Parameters:
p – Pointer to MatlFun object.
specheat – [out] Specific heat
-
void vfe_MatlFunProp(vfe_MatlFun *p, Vint ptype, Vdouble prop)
set value of interpolated element property
Set the value of an interpolated element property at an element integration point. This value will be in effect until changed by this function. Note that not all properties are supported by the underlying material properties.
- Parameters:
p – Pointer to MatlFun object.
ptype – Property type to set
x=VFE_PROP_TEMPERATURE Temperature =VFE_PROP_THICKNESS Thickness =VFE_PROP_OFFSET Offset
prop – [out] Element property.
-
void vfe_MatlFunDCond(vfe_MatlFun *p, Vint cond[])
set material matrix condensation rule
Set the condensation flags for each component (row) of stress. A non-zero flag in cond specifies that the associated stress component is zero. If the stress component is a shear stress then the associated shear strain is also assumed to be zero. For example a 2D plane stress solid element which requires a continuum material model would set cond[] = {0,0,1,0,1,1} . By default all condensation flags are assumed to be zero.
- Parameters:
p – Pointer to MatlFun object.
cond – Vector of condensation flags
-
void vfe_MatlFunNumStressStrain(vfe_MatlFun *p, Vint *numstressstrain)
get number of section output points
Return the number of section points in the underlying shell or beam cross section formulation.
- Parameters:
p – Pointer to MatlFun object.
numstressstrain – [out] Number of section output points
-
void vfe_MatlFunStressStrain(vfe_MatlFun *p, Vdouble dfrm[], Vdouble strs[], Vdouble stress[], Vdouble strains[])
compute 3D stress and strain given strain/curvature
Compute the stress resultants, strs, for an element given a small strain or deformation gradient matrix, dfrm. Also compute the three-dimensional stress and strain components, stress and strain at selected section points - if sections are available as in beams and shells. The underlying material model must be queried using
vfe_MatlFunDInfo()
for support of small strain or large strain. If the material model supports small strain then dfrm contains a small strain tensor, if the material model supports large strain then dfrm contains a deformation gradient matrix.For shells and beams the resultant stresses are returned by this function. This function is not available for elements other than shells and beams. The order for stress and strain data is all element nodal stresses and strains for the first section point, followed by all element nodal data for the second section point, etc.
- Parameters:
p – Pointer to MatlFun object.
dfrm – Given small strain tensor or deformation gradient matrix
strs – [out] Computed stress resultants
stress – [out] Computed Cauchy stresses at section points
strains – [out] Computed strains at section points
-
void vfe_MatlFundKMatrixdT(vfe_MatlFun *p, Vdouble dkmdt[])
compute d(conductivity matrix)/dT
Compute the derivative of the thermal conductivity matrix, dkmdt with respect to temperature This function is specifically designed for use in nonlinear analysis to allow non-symmetric dependencies in the thermal conductivity element matrix for computational efficiency.
- Parameters:
p – Pointer to MatlFun object.
dkmdt – [out] Computed derivative of Lower triangle of thermal conductivity matrix w.r.t. temperature