Table of Contents

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.

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.

Table of Contents

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.

Table of Contents

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)

Table of Contents

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).

Table of Contents

9.4 Function Descriptions

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


Table of Contents , MatlFun

NAME

*vfe_MatlFunBegin - create an instance of a MatlFun object

C SPECIFICATION

vfe_MatlFun *vfe_MatlFunBegin ()

ARGUMENTS

None

FUNCTION RETURN VALUE

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

DESCRIPTION

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)


Table of Contents , MatlFun

NAME

vfe_MatlFunSet - set pointer to material model function

C SPECIFICATION

void vfe_MatlFunSet (vfe_MatlFun *matlfun,
                     Vint type,
                     void (*function)())

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
type         Function type being set
             =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

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_ENUM is generated if an improper type is input.

DESCRIPTION

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)())


Table of Contents , MatlFun

NAME

vfe_MatlFunSetObj - set pointer to auxiliary object

C SPECIFICATION

void vfe_MatlFunSetObj (vfe_MatlFun *matlfun,
                        Vobject *obj)

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
obj          Pointer to auxiliary object

OUTPUT ARGUMENTS

None

DESCRIPTION

Set pointer to material model function auxiliary object.

Get obj as an output argument using

     void vfe_MatlFunGetObj (vfe_MatlFun *matlfun,
                             Vobject **obj)


Table of Contents , MatlFun

NAME

vfe_MatlFunAPI - set built-in functions

C SPECIFICATION

void vfe_MatlFunAPI (vfe_MatlFun *matlfun,
                     Vint api)

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
api          Type of built-in material function to return.
             =MATLFUN_APIRETURN      Set return material functions

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_ENUM is generated if an improper api is input.

DESCRIPTION

Set built in material functions. The MATLFUN_APIRETURN drawing functions simply return.


Table of Contents , MatlFun

NAME

vfe_MatlFunElemIntPnt - specify element integration point

C SPECIFICATION

void vfe_MatlFunElemIntPnt (vfe_MatlFun *matlfun,
                            Vint elemintpnt,
                            Vdouble r[3],
                            Vdouble w,
                            Vdouble dj)

INPUT ARGUMENTS

matlfun      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

OUTPUT ARGUMENTS

None

DESCRIPTION

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.


Table of Contents , MatlFun

NAME

vfe_MatlFunNumHist - return number of material history variables

C SPECIFICATION

void vfe_MatlFunNumHist (vfe_MatlFun *matlfun,
                         Vint *numhist)

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.

OUTPUT ARGUMENTS

numhist      Number of material history variables.

DESCRIPTION

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.


Table of Contents , MatlFun

NAME

vfe_MatlFunHistPtr - set pointers to material history

C SPECIFICATION

void vfe_MatlFunHistPtr (vfe_MatlFun *matlfun,
                         Vdouble *oldhistptr,
                         Vdouble *newhistptr)

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
oldhistptr   Pointer to history at previous step
newhistptr   Pointer to history at current step

OUTPUT ARGUMENTS

None

DESCRIPTION

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:
    sizeof(Vdouble) * numhist
where numhist is returned by vfe_MatlFunNumHist.


Table of Contents , MatlFun

NAME

vfe_MatlFunInitHist - initialize entries in material history

C SPECIFICATION

void vfe_MatlFunInitHist (vfe_MatlFun *matlfun)

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.

OUTPUT ARGUMENTS

None

DESCRIPTION

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 using vfe_MatlFunHistPtr.


Table of Contents , MatlFun

NAME

vfe_MatlFunDInfo - get material stiffness matrix information

C SPECIFICATION

void vfe_MatlFunDInfo (vfe_MatlFun *matlfun,
                       Vint type,
                       Vint *info)

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
type         Type of material stiffness matrix information to return
             =VFE_MATLELEM             Specific element type supported
             =VFE_MATLFULL             Zero fill of matrix
             =VFE_STRAINTYPE           Strain capability

OUTPUT ARGUMENTS

info         Material stiffness matrix information
             =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

DESCRIPTION

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 be SYS_ELEM_UNDEFINED. Element materials specific to shells or beams return SYS_ELEM_SHELL or SYS_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 of SYS_ON indicates that the matrix is full, ie. has all possible non-zero entries. A value of SYS_OFF indicates a certain degree of sparsity.

For 6 by 6 continuum 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

For 8 by 8 shell material stiffnesses, full and sparse matrices have the following fill patterns:

   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 the vfe_MatlFunStress, vfe_MatlFunStressStrain, and vfe_MatlFunStressDMatrix functions. Small strains require a small strain tensor to be passed to the vfe_MatlFunStress, vfe_MatlFunStressStrain, and vfe_MatlFunStressDMatrix functions.


Table of Contents , MatlFun

NAME

vfe_MatlFunDMatrix - compute material stiffness matrix

C SPECIFICATION

void vfe_MatlFunDMatrix (vfe_MatlFun *matlfun,
                         Vdouble dm[])

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.

OUTPUT ARGUMENTS

dm           Lower triangle of material stiffness matrix

DESCRIPTION

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.


Table of Contents , MatlFun

NAME

vfe_MatlFunStress - compute stress/resultant given strain/curvature

C SPECIFICATION

void vfe_MatlFunStress (vfe_MatlFun *matlfun,
                        Vdouble dfrm[],
                        Vdouble strs[])

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
dfrm         Given small strain tensor or deformation gradient matrix

OUTPUT ARGUMENTS

strs         Computed Cauchy stresses

DESCRIPTION

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.


Table of Contents , MatlFun

NAME

vfe_MatlFunStressDMatrix - compute stress and material stiffness matrix

C SPECIFICATION

void vfe_MatlFunStressDMatrix (vfe_MatlFun *matlfun,
                               Vdouble dfrm[],
                               Vint dflag,
                               Vdouble strs[],
                               Vdouble dm[])

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
dfrm         Given small strain tensor or deformation gradient matrix
dflag        Optional computation of material stiffness matrix

OUTPUT ARGUMENTS

strs         Computed Cauchy stresses
dm           Lower triangle of material stiffness matrix

DESCRIPTION

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.


Table of Contents , MatlFun

NAME

vfe_MatlFunStressStrain - compute 3D stress and strain given strain/curvature

C SPECIFICATION

void vfe_MatlFunStressStrain (vfe_MatlFun *matlfun,
                              Vdouble dfrm[],
                              Vdouble strs[],
                              Vdouble stress[],
                              Vdouble strain[])

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
dfrm         Given small strain tensor or deformation gradient matrix

OUTPUT ARGUMENTS

strs         Computed stress resultants
stress       Computed Cauchy stresses at section points
strains      Computed strains at section points

DESCRIPTION

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.


Table of Contents , MatlFun

NAME

vfe_MatlFunDCond - set material matrix condensation rule

C SPECIFICATION

void vfe_MatlFunDCond (vfe_MatlFun *matlfun,
                       Vint cond[])

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
cond         Vector of condensation flags

OUTPUT ARGUMENTS

None

DESCRIPTION

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.


Table of Contents , MatlFun

NAME

vfe_MatlFunKInfo - get thermal conductivity matrix information

C SPECIFICATION

void vfe_MatlFunKInfo (vfe_MatlFun *matlfun,
                       Vint type,
                       Vint *info)

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
type         Type of thermal conductivity matrix information to return
             =VFE_MATLELEM             Specific element type supported
             =VFE_MATLFULL             Zero fill of matrix
             =VFE_TEMPDEP              Temperature-dependent conductivity

OUTPUT ARGUMENTS

info         Thermal conductivity matrix information
             =SYS_ON                   True
             =SYS_OFF                  False
             =SYS_ELEM_UNDEFINED       Not element type specific

DESCRIPTION

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 be SYS_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 of SYS_ON indicates that the matrix is full, ie. has all possible non-zero entries. A value of SYS_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 whether vfe_MatlFundKMatrixdT should be called to add this dependency to a non-symmetric thermal conductivity matrix.


Table of Contents , MatlFun

NAME

vfe_MatlFunKMatrix - compute thermal conductivity matrix

C SPECIFICATION

void vfe_MatlFunKMatrix (vfe_MatlFun *matlfun,
                         Vdouble km[])

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.

OUTPUT ARGUMENTS

km           Lower triangle of thermal conductivity matrix

DESCRIPTION

Return a thermal conductivity matrix, km, for an element. The thermal conductivity matrix is assumed to have 3 rows.


Table of Contents , MatlFun

NAME

vfe_MatlFunHeatFlux - compute heat flux given temperature gradient

C SPECIFICATION

void vfe_MatlFunHeatFlux (vfe_MatlFun *matlfun,
                          Vdouble grad[],
                          Vdouble flux[])

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
grad         Given temperature gradient vector

OUTPUT ARGUMENTS

flux         Computed heat flux vector

DESCRIPTION

Compute the heat flux, flux, for an element given a temperature gradient vector, grad.


Table of Contents , MatlFun

NAME

vfe_MatlFunHeatFluxKMatrix - compute flux and conductivity matrix

C SPECIFICATION

void vfe_MatlFunHeatFluxKMatrix (vfe_MatlFun *matlfun,
                                 Vdouble grad[],
                                 Vint kflag,
                                 Vdouble flux[],
                                 Vdouble km[])

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
grad         Given temperature gradient vector
kflag        Optional computation of thermal conductivity matrix

OUTPUT ARGUMENTS

flux         Computed heat flux vector
km           Lower triangle of thermal conductivity matrix

DESCRIPTION

Compute the heat flux, flux, and option thermal conductivity matrix, km, for an element given a temperature gradient vector, grad. 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.


Table of Contents , MatlFun

NAME

vfe_MatlFundKMatrixdT - compute d(conductivity matrix)/dT

C SPECIFICATION

void vfe_MatlFundKMatrixdT (vfe_MatlFun *matlfun,
                            Vdouble dkmdt[])

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.

OUTPUT ARGUMENTS

dkmdt        Computed derivative of Lower triangle of thermal conductivity matrix w.r.t. temperature

DESCRIPTION

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.


Table of Contents , MatlFun

NAME

vfe_MatlFunDensity - compute density

C SPECIFICATION

void vfe_MatlFunDensity (vfe_MatlFun *matlfun,
                         Vdouble density[])

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.

OUTPUT ARGUMENTS

density      Density

DESCRIPTION

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.


Table of Contents , MatlFun

NAME

vfe_MatlFunModulus - compute characteristic elastic modulus

C SPECIFICATION

void vfe_MatlFunModulus (vfe_MatlFun *matlfun,
                         Vdouble *modulus)

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.

OUTPUT ARGUMENTS

modulus      Elastic modulus

DESCRIPTION

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.


Table of Contents , MatlFun

NAME

vfe_MatlFunNumStressStrain - get number of section output points

C SPECIFICATION

void vfe_MatlFunNumStressStrain (vfe_MatlFun *matlfun,
                                 Vint *numstressstrain)

INPUT ARGUMENTS

matlfun         Pointer to MatlFun object.

OUTPUT ARGUMENTS

numstressstrain Number of section output points

DESCRIPTION

Return the number of section points in the underlying shell or beam cross section formulation.


Table of Contents , MatlFun

NAME

vfe_MatlFunSpecHeat - compute specific heat

C SPECIFICATION

void vfe_MatlFunSpecHeat (vfe_MatlFun *matlfun,
                          Vdouble *specheat)

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.

OUTPUT ARGUMENTS

specheat     Specific heat

DESCRIPTION

Return specific heat. If the specific heat is not defined it is returned as zero.


Table of Contents , MatlFun

NAME

vfe_MatlFunProp - set value of interpolated element property

C SPECIFICATION

void vfe_MatlFunProp (vfe_MatlFun *matlfun,
                      Vint ptype,
                      Vdouble prop)

INPUT ARGUMENTS

matlfun      Pointer to MatlFun object.
ptype        Property type to set
             =VFE_PROP_TEMPERATURE     Temperature
             =VFE_PROP_THICKNESS       Thickness
             =VFE_PROP_OFFSET          Offset

OUTPUT ARGUMENTS

prop         Element property.

DESCRIPTION

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.