Table of Contents

10. Primitive Material Models - LinMat,PlasMat,HyperMat

Primitive materials are characterized by a material response which excludes any element geometry. The LinMat module can be used to model linear material response for structural and thermal analysis. The PlasMat module models either small strain or large strain elasto-plasticity for structural analysis. The HyperMat module models large strain hyperelastic material response for structural analysis.

Table of Contents

10.1 Linear Materials - LinMat

The LinMat module is used to define linear material behavior for structural and thermal analysis. Linear material properties may be isotropic, orthotropic or fully anisotropic. Material properties include elastic moduli, thermal conductivities, coefficients of thermal expansion, reference temperature, density and specific heat.

The methods associated with a LinMat object are the following.

Instance a LinMat object using vfe_LinMatBegin. Once a LinMat is instanced, define the material type using vfe_LinMatDef. Possible material types are isotropic, orthotropic and anisotropic. The linear material properties may then be entered. For example elastic moduli which relate stress and strain are entered using vfe_LinMatSetElasProp. The density for mass calculations is entered using vfe_LinMatSetDensity. The elastic moduli, thermal conductivities and coefficients of thermal expansion depend upon the defined isotropy of the material - note that the defined isotropy of the material applies equally to all these properties.

Material properties in LinMat may be temperature dependent. The current temperature for which material properties are to be defined is set using vfe_LinMatSetTemp. All subsequently defined properties are assumed to be at the current temperature. If material properties have been defined for more than one temperature, all material computations for material stiffness, thermal conductivity, etc. become temperature dependent. The material properties are evaluted at the temperture set by vfe_MatlFunProp with type VFE_PROP_TEMPERATURE. Material property evaluations are performed as a piecewise linear function of the input temperature dependent properties. Any material property evaluation at a temperature outside of the range of temperatures for which the properties have been defined are clamped to the appropriate extreme property value.

Use vfe_LinMatMatlFun to fill a MatlFun object with function pointers which can then be set as an attribute object for any element formulation module, such as Solid2D, or any element material model module, such as ShellProp, which accepts primitive material models. Destroy an instance of a LinMat object using vfe_LinMatEnd.

Table of Contents

10.2 Elastic Moduli

Elastic properties must be defined for all structural analysis. The simplest form of linear elasticity is isotropic. In this case only Young's modulus, E, and Poisson's ratio, Nu, need be defined. The shear modulus, G, is computed from E and Nu as follows:
     G = E/(2*(1+Nu))

For the case of linear orthotropic elastic materials the material is defined by entering the Young's moduli, Ex, Ey, Ez, Poisson's ratios, Nuxy, Nuyz, Nuxz, and the shear moduli, Gxy, Gyz, Gxz. These elastic moduli together define the material compliance matrix which relates the engineering strain (exx,eyy,ezz,gxy,gyz,gzx) to the stress tensor (sxx,syy,szz,sxy,syz,szx) as follows:

 --   --   --                                               -- --   --
 | exx |   |  1./Ex   -Nuyx/Ey -Nuzx/Ez  0.     0.     0.    | | sxx |
 | eyy |   | -Nuxy/Ex  1./Ey   -Nuzy/Ez  0.     0.     0.    | | syy |
 | ezz | = | -Nuxz/Ex -Nuyz/Ey  1./Ez    0.     0.     0.    | | szz |
 | gxy |   |  0.       0.       0.      1./Gxy  0.     0.    | | sxy |
 | gyz |   |  0.       0.       0.       0.    1./Gyz  0.    | | syz |
 | gzx |   |  0.       0.       0.       0.     0.    1./Gxz | | szx |
 --   --   --                                               -- --   --
Note the relationship:
     Nuxy/Ex = Nuyx/Ey
     Nuyz/Ey = Nuzy/Ez
     Nuxz/Ex = Nuzx/Ez
Also note that the engineering shear strain components, (gxy,gyz,gzx) are equal to twice the corresponding tensor strain components (exy,eyz,ezx).

For the case of linear anisotropic elastic materials the lower triangle of the symmetric material stiffness matrix is entered. The lower triangle consists of 21 constants which relate stress to strain as follows:

 --   --   --                                      -- --   --
 | sxx |   | D1                                     | | exx |
 | syy |   | D2     D3                              | | eyy |
 | szz | = | D4     D5     D6                       | | ezz |
 | sxy |   | D7     D8     D9     D10               | | gxy |
 | syz |   | D11    D12    D13    D14    D15        | | gyz |
 | szx |   | D16    D17    D18    D19    D20    D21 | | gzx |
 --   --   --                                      -- --   --

Table of Contents

10.3 Thermal Conductivity

Thermal conductivities must be defined for all thermal analysis. For the case of isotropic conductivity only the conductivity, K need be defined.

For the case of orthotropic materials the material is defined by entering the three conductivities, Kxx, Kyy, Kzz. These conductivities together define the conductivity matrix which relates the heat flux (qx,qy,qz) to the temperature gradient (gtx,gty,gtz) as follows:

 --  --     --             -- --   --
 | qx |     | Kxx  0.   0.  | | gtx |
 | qy | = - | 0.   Kyy  0.  | | gty |
 | qz |     | 0.   0.   Kzz | | gtz |
 --  --     --             -- --   --

For the case of anisotropic materials the lower triangle of the symmetric conductivity matrix is entered. The lower triangle consists of 6 constants which relate heat flux to temperature gradient as follows:

 --  --     --          -- --   --
 | qx |     | K1         | | gtx |
 | qy | = - | K2  K3     | | gty |
 | qz |     | K4  K5  K6 | | gtz |
 --  --     --          -- --   --

Table of Contents

10.4 Thermal Expansions and Reference Temperature

The coefficients of thermal expansion and associated reference temperature are required if the effects of thermal strain in structural analysis are desired. The thermal strains are directly proportional to the difference between the given temperature, T, and the reference temperature, TRef. The proportionality factor is the coefficient of thermal expansion.

In the case of an isotropic material only a single coefficient of thermal expansion, alpha, is required.

For the case of orthotropic materials the three coefficients of thermal expansion, alphax, alphay, alphaz, are entered. These coefficients and the given temperature and reference temperature relate to the thermal strain as follows:

 --   --              --      --
 | exx |              | alphax |
 | eyy |              | alphax |
 | ezz | = (T - TRef) | alphax |
 | gxy |              | 0.     |
 | gyz |              | 0.     |
 | gzx |              | 0.     |
 --   --              --      --
For the case of anisotropic materials 6 coefficients of thermal expansion are entered. These coefficients and the given temperature and reference temperature relate to the thermal strain as follows:
 --   --              --      --
 | exx |              | alpha1 |
 | eyy |              | alpha2 |
 | ezz | = (T - TRef) | alpha3 |
 | gxy |              | alpha4 |
 | gyz |              | alpha5 |
 | gzx |              | alpha6 |
 --   --              --      --

Table of Contents

10.5 Density and Specific Heat

The density is required for the calculation of mass in structural analysis. Both the density and specific heat are required for the calculation of capacitance in thermal analysis.

Table of Contents

10.6 Function Descriptions

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


Table of Contents , LinMat

NAME

*vfe_LinMatBegin - create an instance of a LinMat object

C SPECIFICATION

vfe_LinMat *vfe_LinMatBegin ()

ARGUMENTS

None

FUNCTION RETURN VALUE

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

DESCRIPTION

Create an instance of a LinMat object. Memory is allocated for the object private data and the pointer to the object is returned. By default the material model assumes isotropic materials.

Destroy an instance of a LinMat object using

     void vfe_LinMatEnd (vfe_LinMat *linmat )

Return the current value of a LinMat object error flag using

     Vint vfe_LinMatError (vfe_LinMat *linmat )


Table of Contents , LinMat

NAME

vfe_LinMatDef - define property type

C SPECIFICATION

void vfe_LinMatDef (vfe_LinMat *linmat,
                    Vint type)

INPUT ARGUMENTS

linmat       Pointer to LinMat object.
type         Linear material type
             =SYS_MAT_ISOTROPIC         Isotropic material
             =SYS_MAT_ORTHOTROPIC       Orthotropic material
             =SYS_MAT_ANISOTROPIC       Anisotropic material

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_ENUM is generated if an improper type is specified.

DESCRIPTION

Define the type of linear material to be specified. By default the material type is SYS_MAT_ISOTROPIC.

Inquire of a defined type as an output argument using

     void vfe_LinMatInq (vfe_LinMat *linmat,
                         Vint *type)


Table of Contents , LinMat

NAME

vfe_LinMatMatlFun - fill MatlFun object

C SPECIFICATION

void vfe_LinMatMatlFun (vfe_LinMat *linmat,
                        vfe_MatlFun *matlfun)

INPUT ARGUMENTS

linmat       Pointer to LinMat object.
matlfun      Pointer to MatlFun object to be filled with material
             functions

OUTPUT ARGUMENTS

None

DESCRIPTION

Fill a MatlFun object with material model functions. Use the MatlFun object as an attribute object for any element formulation module, such as Solid2D, or any element material model module which accepts primitive material models.


Table of Contents , LinMat

NAME

vfe_LinMatSetDensity - set density

C SPECIFICATION

void vfe_LinMatSetDensity (vfe_LinMat *linmat,
                           Vdouble density)

INPUT ARGUMENTS

linmat       Pointer to LinMat object.
density      Density

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if an improper density is specified.

DESCRIPTION

Define density where density >= 0.


Table of Contents , LinMat

NAME

vfe_LinMatSetElasProp - set elastic moduli

C SPECIFICATION

void vfe_LinMatSetElasProp (vfe_LinMat *linmat,
                            Vdouble prop[])

INPUT ARGUMENTS

linmat       Pointer to LinMat object.
prop         Array of elastic moduli.

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if an improper prop is specified.

DESCRIPTION

Define elastic moduli. The number and type of elastic moduli input in the prop array depend upon the material isotropy. For isotropic materials input 2 values, E and Nu where E > 0. and -1. < Nu < .5 . For orthotropic materials input 9 values, Ex, Ey, Ez, Nuxy, Nuyz, Nuxz, Gxy, Gyz, Gxz. For anisotropic materials input 21 values, D1, D2, ... , D21.


Table of Contents , LinMat

NAME

vfe_LinMatSetParami - set material model parameters

C SPECIFICATION

void vfe_LinMatSetParami (vfe_LinMat *linmat,
                          Vint type,
                          Vint iparam)

INPUT ARGUMENTS

linmat       Pointer to LinMat object.
type         Type of parameter to set
             =VFE_THERMALSTRAIN      Toggle thermal strains
             =VFE_THERMALEXPREF      Toggle reference temperature source
iparam       Integer parameter value.
             =SYS_OFF                Disable
             =SYS_ON                 Enable

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_ENUM is generated if an improper type is specified. SYS_ERROR_VALUE is generated if an improper iparam is specified.

DESCRIPTION

Set material model parameters. The computation of thermal strains during stress calculation is activated with the VFE_THERMALSTRAIN flag. By default VFE_THERMALSTRAIN is set to SYS_OFF.

The source of the reference temperature used in thermal strain calculation is toggled by the VFE_THERMALEXPREF flag. If VFE_THERMALEXPREF is off then the reference temperature input with vfe_LinMatSetRefTemp is used otherwise the reference temperature input by vfe_MatlFunProp with type VFE_PROP_TEMPREF is used. By default VFE_THERMALEXPREF is set to SYS_OFF.


Table of Contents , LinMat

NAME

vfe_LinMatSetRefTemp - set reference temperature

C SPECIFICATION

void vfe_LinMatSetRefTemp (vfe_LinMat *linmat,
                           Vdouble reftemp)

INPUT ARGUMENTS

linmat       Pointer to LinMat object.
reftemp      Reference temperature

OUTPUT ARGUMENTS

None

DESCRIPTION

Define reference temperature.


Table of Contents , LinMat

NAME

vfe_LinMatSetSpecHeat - set specific heat

C SPECIFICATION

void vfe_LinMatSetSpecHeat (vfe_LinMat *linmat,
                           Vdouble specheat)

INPUT ARGUMENTS

linmat       Pointer to LinMat object.
specheat     Specific heat

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if an improper specheat is specified.

DESCRIPTION

Define specific heat where specheat >= 0.


Table of Contents , LinMat

NAME

vfe_LinMatSetTemp - set temperature parameter

C SPECIFICATION

void vfe_LinMatSetTemp (vfe_LinMat *linmat,
                        Vdouble temp)

INPUT ARGUMENTS

linmat       Pointer to LinMat object.
temp         Current temperature of defined material properties

OUTPUT ARGUMENTS

None

DESCRIPTION

Specify the current temperature for which all subsequent material properties, until another call to vfe_LinMatSetTemp is encountered, are defined. By default the current temperature is zero.


Table of Contents , LinMat

NAME

vfe_LinMatSetThermCond - set thermal conductivities

C SPECIFICATION

void vfe_LinMatSetThermCond (vfe_LinMat *linmat,
                             Vdouble cond[])

INPUT ARGUMENTS

linmat       Pointer to LinMat object.
cond         Array of thermal conductivities

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if an improper cond is specified.

DESCRIPTION

Define thermal conductivities. The number and type of conductivities input in the cond array depend upon the material isotropy. For isotropic materials input 1 value, K, where K > 0. For orthotropic materials input 3 values, Kxx, Kyy, Kzz. For anisotropic materials input 6 values, K1, K2, ... , K6.


Table of Contents , LinMat

NAME

vfe_LinMatSetThermExp - set coefficients of thermal expansion

C SPECIFICATION

void vfe_LinMatSetThermExp (vfe_LinMat *linmat,
                            Vdouble alpha[])

INPUT ARGUMENTS

linmat       Pointer to LinMat object.
alpha        Array of coefficients of thermal expansion

OUTPUT ARGUMENTS

None

DESCRIPTION

Define coefficients of thermal expansion. The number and type of coefficients input in the alpha array depend upon the material isotropy. For isotropic materials input 1 value, alpha. For orthotropic materials input 3 values, alphax, alphay, alphaz. For anisotropic materials input 6 values, alpha1, alpha2, ... , alpha6.


Table of Contents

10.7 Elasto-Plastic Materials - PlasMat

The PlasMat module is used to model small strain or large strain elasto-plastic materials for structural analysis. The finite strain J2 plasticity formulation is based upon a multiplicative decomposition of the deformation gradient and hyperelastic constitutive equations.

The methods associated with a PlasMat object are the following.

Instance a PlasMat object using vfe_PlasMatBegin. Once a PlasMat is instanced, the basic type of hardening law must be defined using vfe_PlasMatDef. The PlasMat module currently uses an isotropic hardening rule. The available hardening laws are piecewise linear, power and exponential. The isotropic linear elastic properties are entered using vfe_PlasMatSetElasProp. If the hardening law is piecewise linear, the hardening curve is input using vfe_PlasMatSetPiecewise; if it is a power law use vfe_PlasMatSetPower; and if it is an exponential law use vfe_PlasMatSetExponent. The density for mass calculations is entered using vfe_PlasMatSetDensity. The reference temperature and coefficient of thermal expansion are entered using vfe_PlasMatSetRefTemp and vfe_PlasMatSetThermExp respectively. Certain parameters which modify certain aspects of the material model may be set using vfe_PlasMatSetParami. For example the user may toggle small or large strain plasticity, toggle the calculation of thermal strain, etc.

Use vfe_PlasMatMatlFun to fill a MatlFun object with function pointers which can then be set as an attribute object for any element formulation module, such as Solid2D, or any element material model module, such as ShellProp, which accepts primitive material models. Destroy an instance of a PlasMat object using vfe_PlasMatEnd.

Table of Contents

10.8 Elastic Moduli and Hardening Laws

Isotropic elastic properties must be defined for all hardening laws. The Young's modulus, E, and Poisson's ratio, Nu, must be defined using vfe_PlasMatSetElasProp. The hardening law is defined as an initial yield stress and a hardening curve. The hardening curve represents the relationship between the uniaxial stress minus the initial yield, Sy, and the equivalent plastic strain, Ep.

Assuming elastic strains are very small, which is the case for metals, the plastic strain is defined as the logarithmic strain (which is equivalent to the infinitesimal strain for small deformations) minus the elastic strain. The elastic strain is defined as the total Cauchy stress/E.

The hardening curve may be represented in one of three ways termed hardening laws. The three hardening laws currently available are piecewise linear, power, and exponential.

Table of Contents

10.9 Thermal Expansions and Reference Temperature

The coefficients of thermal expansion and associated reference temperature are required if the effects of thermal strain in structural analysis are desired. The thermal strains are directly proportional to the difference between the given temperature, T, and the reference temperature, TRef. The proportionality factor is the coefficient of thermal expansion.

In the case of an isotropic material only a single coefficient of thermal expansion, alpha, is required.

Table of Contents

10.10 Function Descriptions

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


Table of Contents , PlasMat

NAME

*vfe_PlasMatBegin - create an instance of a PlasMat object

C SPECIFICATION

vfe_PlasMat *vfe_PlasMatBegin ()

ARGUMENTS

None

FUNCTION RETURN VALUE

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

DESCRIPTION

Create an instance of a PlasMat object. Memory is allocated for the object private data and the pointer to the object is returned. By default the material model assumes isotropic materials.

Destroy an instance of a PlasMat object using

     void vfe_PlasMatEnd (vfe_PlasMat *plasmat)

Return the current value of a PlasMat object error flag using

     Vint vfe_PlasMatError (vfe_PlasMat *plasmat)


Table of Contents , PlasMat

NAME

vfe_PlasMatMatlFun - fill MatlFun object

C SPECIFICATION

void vfe_PlasMatMatlFun (vfe_PlasMat *plasmat,
                         vfe_MatlFun *matlfun)

INPUT ARGUMENTS

plasmat      Pointer to PlasMat object.
matlfun      Pointer to MatlFun object to be filled with material
             functions

OUTPUT ARGUMENTS

None

DESCRIPTION

Fill a MatlFun object with material model functions. Use the MatlFun object as an attribute object for any element formulation module, such as Solid2D, or any element material model module which accepts primitive material models.


Table of Contents , PlasMat

NAME

vfe_PlasMatDef - define type of hardening law

C SPECIFICATION

void vfe_PlasMatDef (vfe_PlasMat *plasmat,
                     Vint type)

INPUT ARGUMENTS

plasmat      Pointer to PlasMat object.
type         Plastic material hardening law
             =PLASMAT_PIECEWISE         Piecewise linear curve
             =PLASMAT_POWER             Power law
             =PLASMAT_EXPONENT          Exponential law

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_ENUM is generated if an improper type is specified.

DESCRIPTION

Define the type of plastic hardening law to be specified. Use vfe_PlasMatSetPiecewise to input piecewise linear properties, vfe_PlasMatSetPower to input power law properties and vfe_PlasMatSetExponent to input exponential law properties. By default the material type is PLASMAT_PIECEWISE.

Inquire of a defined type as an output argument using

     void vfe_PlasMatInq (vfe_PlasMat *plasmat,
                          Vint *type)


Table of Contents , PlasMat

NAME

vfe_PlasMatSetDensity - set density

C SPECIFICATION

void vfe_PlasMatSetDensity (vfe_PlasMat *plasmat,
                            Vdouble density)

INPUT ARGUMENTS

plasmat      Pointer to PlasMat object.
density      Density

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if an improper density is specified.

DESCRIPTION

Define density where density >= 0.


Table of Contents , PlasMat

NAME

vfe_PlasMatSetElasProp - set elastic moduli

C SPECIFICATION

void vfe_PlasMatSetElasProp (vfe_PlasMat *plasmat,
                            Vdouble prop[])

INPUT ARGUMENTS

plasmat      Pointer to PlasMat object.
prop         Array of elastic properties.

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if an improper prop is specified.

DESCRIPTION

Define isotropic elastic Young's modulus, prop[0]=E, and Poisson's ratio, prop[1]=Nu, where E > 0. and -1. < Nu < .5 .


Table of Contents , PlasMat

NAME

vfe_PlasMatSetExponent - set exponential law stress-strain relationship

C SPECIFICATION

void vfe_PlasMatSetExponent (vfe_PlasMat *plasmat,
                             Vdouble yield,
                             Vdouble hardmod,
                             Vdouble hardexp)

INPUT ARGUMENTS

plasmat      Pointer to PlasMat object.
yield        Yield stress
hardmod      Hardening modulus
hardexp      Hardening exponent

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if yield, hardmod or hardexp are not strictly positive.

DESCRIPTION

Set exponential law stress-strain relationship. The hardening curve is given by:
  Sy = hardmod * (1. - exp(-hardexp*Ep))


Table of Contents , PlasMat

NAME

vfe_PlasMatSetParami - set material model parameters

C SPECIFICATION

void vfe_PlasMatSetParami (vfe_PlasMat *plasmat,
                           Vint type,
                           Vint iparam)

INPUT ARGUMENTS

plasmat      Pointer to PlasMat object.
type         Type of parameter to set
             =VFE_THERMALSTRAIN      Toggle thermal strains
             =VFE_THERMALEXPREF      Toggle reference temperature source
             =VFE_STRAINTYPE         Set small or large strain plasticity
iparam       Integer parameter value.
             =SYS_OFF                Disable
             =SYS_ON                 Enable
             =VFE_LARGESTRAIN        Large strain capability
             =VFE_SMALLSTRAIN        Small strain capability

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_ENUM is generated if an improper type is specified. SYS_ERROR_VALUE is generated if an improper iparam is specified.

DESCRIPTION

Set plastic material parameters.

The parameter VFE_STRAINTYPE is used to select a small or large strain plasticity model. By default VFE_STRAINTYPE is set to VFE_SMALLSTRAIN.

The computation of thermal strains during stress calculation is activated with the VFE_THERMALSTRAIN flag. By default VFE_THERMALSTRAIN is set to SYS_OFF.

The source of the reference temperature used in thermal strain calculation is toggled by the VFE_THERMALEXPREF flag. If VFE_THERMALEXPREF is off then the reference temperature input with vfe_PlasMatSetRefTemp is used otherwise the reference temperature input by vfe_MatlFunProp with type VFE_PROP_TEMPREF is used. By default VFE_THERMALEXPREF is set to SYS_OFF.


Table of Contents , PlasMat

NAME

vfe_PlasMatSetPiecewise - set piecewise linear stress-strain law

C SPECIFICATION

void vfe_PlasMatSetPiecewise (vfe_PlasMat *plasmat,
                              Vdouble yield,
                              Vint npts,
                              Vdouble hard[][2])

INPUT ARGUMENTS

plasmat      Pointer to PlasMat object.
yield        Yield stress
npts         Number of points in stress-strain curve
hard         Hardening curve

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if an improper npts is specified.

DESCRIPTION

Set piecewise linear stress-strain relationship. The hardening curve, hard, consists of npts pairs of equivalent plastic strain and corresponding incremental yield stress.


Table of Contents , PlasMat

NAME

vfe_PlasMatSetPower - set power law stress-strain relationship

C SPECIFICATION

void vfe_PlasMatSetPower (vfe_PlasMat *plasmat,
                          Vdouble yield,
                          Vdouble hardmod,
                          Vdouble hardexp)

INPUT ARGUMENTS

plasmat      Pointer to PlasMat object.
yield        Yield stress
hardmod      Hardening modulus
hardexp      Hardening exponent

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if yield, hardmod or hardexp are not strictly positive.

DESCRIPTION

Set power law stress-strain relationship. The hardening curve is given by:
  Sy = hardmod * Ep**hardexp


Table of Contents , PlasMat

NAME

vfe_PlasMatSetRefTemp - set reference temperature

C SPECIFICATION

void vfe_PlasMatSetRefTemp (vfe_PlasMat *plasmat,
                            Vdouble reftemp)

INPUT ARGUMENTS

plasmat      Pointer to PlasMat object.
reftemp      Reference temperature

OUTPUT ARGUMENTS

None

DESCRIPTION

Define reference temperature, reftemp. Use vfe_PlasMatSetThermExp to set the coefficient of thermal expansion


Table of Contents , PlasMat

NAME

vfe_PlasMatSetThermExp - set coefficient of thermal expansion

C SPECIFICATION

void vfe_PlasMatSetThermExp (vfe_PlasMat *plasmat,
                             Vdouble alpha)

INPUT ARGUMENTS

plasmat      Pointer to PlasMat object.
alpha        Coefficient of thermal expansion

OUTPUT ARGUMENTS

None

DESCRIPTION

Define the coefficient of thermal expansion, alpha. Use vfe_PlasMatSetRefTemp to set the reference temperature.


Table of Contents

10.11 Hyperelastic Materials - HyperMat

The HyperMat module is used to model the behavior of materials in structural analysis that respond elastically at large strains. The stress-strain relations of an isotropic hyperelastic material are derived from a strain energy per unit volume which is a function of either the principal invariants of the Cauchy-Green strain or a symmetric function of the principal stretches.

The methods associated with a HyperMat object are the following.

Instance a HyperMat object using vfe_HyperMatBegin. Once a HyperMat is instanced, the basic type of hyperelastic model must be defined using vfe_HyperMatDef. The available models are Mooney-Rivlin, Neo-Hookean and Ogden.

If the hyperelastic model is Mooney-Rivlin, the material parameters are entered using vfe_HyperMatSetMooney; if it is Neo-Hookean use vfe_HyperMatSetNeoHookean; and if it is Ogden use vfe_HyperMatSetOgden.

The density for mass calculations is entered using vfe_HyperMatSetDensity. The reference temperature and coefficient of thermal expansion are entered using vfe_HyperMatSetRefTemp and vfe_HyperMatSetThermExp respectively. Certain parameters which modify certain aspects of the material model may be set using vfe_HyperMatSetParami.

Material properties in HyperMat may be temperature dependent. The current temperature for which material properties are to be defined is set using vfe_HyperMatSetTemp. All subsequently defined properties are assumed to be at the current temperature. If material properties have been defined for more than one temperature, all material computations for material stiffness, etc. become temperature dependent. The material properties are evaluted at the temperture set by vfe_MatlFunProp with type VFE_PROP_TEMPERATURE. Material property evaluations are performed as a piecewise linear function of the input temperature dependent properties. Any material property evaluation at a temperature outside of the range of temperatures for which the properties have been defined are clamped to the appropriate extreme property value.

Use vfe_HyperMatMatlFun to fill a MatlFun object with function pointers which can then be set as an attribute object for any element formulation module, such as Solid2D, or any element material model module, such as ShellProp, which accepts primitive material models. Destroy an instance of a HyperMat object using vfe_HyperMatEnd.

Table of Contents

10.12 Hyperelastic Models

Currently three hyperelastic models are implemented, Heo-Hookean, Mooney-Rivlin and Ogden. Each model is designed to efficiently model hyperelastic material response depending upon the magnitude of the expected strain.

Table of Contents

10.13 Thermal Expansions and Reference Temperature

The coefficients of thermal expansion and associated reference temperature are required if the effects of thermal strain in structural analysis are desired. The thermal strains are directly proportional to the difference between the given temperature, T, and the reference temperature, TRef. The proportionality factor is the coefficient of thermal expansion.

In the case of an isotropic material only a single coefficient of thermal expansion, alpha, is required.

Table of Contents

10.14 Function Descriptions

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


Table of Contents , HyperMat

NAME

*vfe_HyperMatBegin - create an instance of a HyperMat object

C SPECIFICATION

vfe_HyperMat *vfe_HyperMatBegin ()

ARGUMENTS

None

FUNCTION RETURN VALUE

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

DESCRIPTION

Create an instance of a HyperMat object. Memory is allocated for the object private data and the pointer to the object is returned.

Destroy an instance of a HyperMat object using

     void vfe_HyperMatEnd (vfe_HyperMat *hypermat)

Return the current value of a HyperMat object error flag using

     Vint vfe_HyperMatError (vfe_HyperMat *hypermat)


Table of Contents , HyperMat

NAME

vfe_HyperMatMatlFun - fill MatlFun object

C SPECIFICATION

void vfe_HyperMatMatlFun (vfe_HyperMat *hypermat,
                          vfe_MatlFun *matlfun)

INPUT ARGUMENTS

hypermat     Pointer to HyperMat object.
matlfun      Pointer to MatlFun object to be filled with material
             functions

OUTPUT ARGUMENTS

None

DESCRIPTION

Fill a MatlFun object with material model functions. Use the MatlFun object as an attribute object for any element formulation module, such as Solid2D, or any element material model module which accepts primitive material models.


Table of Contents , HyperMat

NAME

vfe_HyperMatDef - define type of hyperelastic material model

C SPECIFICATION

void vfe_HyperMatDef (vfe_HyperMat *hypermat,
                      Vint type)

INPUT ARGUMENTS

hypermat     Pointer to HyperMat object.
type         Hyperelastic material type
             =HYPERMAT_OGDEN            Ogden material model
             =HYPERMAT_NEOHOOKEAN       Neo-Hookean material model
             =HYPERMAT_MOONEY           Mooney-Rivlin material model

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_ENUM is generated if an improper type is specified.

DESCRIPTION

Define the type of hyperelastic material model to be specified. Use vfe_HyperMatSetOgden to input Ogden properties, vfe_HyperMatSetNeoHookean to input Neo-Hookean properties and vfe_HyperMatSetMooney to input Mooney-Rivlin properties. By default the material type is HYPERMAT_MOONEY.

Inquire of a defined type as an output argument using

     void vfe_HyperMatInq (vfe_HyperMat *hypermat,
                           Vint *type)


Table of Contents , HyperMat

NAME

vfe_HyperMatSetDensity - set density

C SPECIFICATION

void vfe_HyperMatSetDensity (vfe_HyperMat *hypermat,
                             Vdouble density)

INPUT ARGUMENTS

hypermat     Pointer to HyperMat object.
density      Density

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if an improper density is specified.

DESCRIPTION

Define density where density >= 0.


Table of Contents , HyperMat

NAME

vfe_HyperMatSetMooney - set Mooney-Rivlin material model

C SPECIFICATION

void vfe_HyperMatSetMooney (vfe_HyperMat *hypermat,
                            Vdouble bulk,
                            Vdouble mooney[2])

INPUT ARGUMENTS

hypermat     Pointer to HyperMat object.
bulk         Initial bulk modulus
mooney       Two parameters for Mooney-Rivlin model

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if bulk or mooney[0] are not strictly positive.

DESCRIPTION

Set the material parameters for a Mooney-Rivlin material.


Table of Contents , HyperMat

NAME

vfe_HyperMatSetParami - set material model parameters

C SPECIFICATION

void vfe_HyperMatSetParami (vfe_HyperMat *hypermat,
                            Vint type,
                            Vint iparam)

INPUT ARGUMENTS

hypermat     Pointer to HyperMat object.
type         Type of parameter to set
             =VFE_THERMALSTRAIN      Toggle thermal strains
             =VFE_THERMALEXPREF      Toggle reference temperature source
iparam       Integer parameter value.
             =SYS_OFF                Disable
             =SYS_ON                 Enable

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_ENUM is generated if an improper type is specified. SYS_ERROR_VALUE is generated if an improper iparam is specified.

DESCRIPTION

Set material model parameters. The computation of thermal strains during stress calculation is activated with the VFE_THERMALSTRAIN flag. By default VFE_THERMALSTRAIN is set to SYS_OFF.

The source of the reference temperature used in thermal strain calculation is toggled by the VFE_THERMALEXPREF flag. If VFE_THERMALEXPREF is off then the reference temperature input with vfe_HyperMatSetRefTemp is used otherwise the reference temperature input by vfe_MatlFunProp with type VFE_PROP_TEMPREF is used. By default VFE_THERMALEXPREF is set to SYS_OFF.


Table of Contents , HyperMat

NAME

vfe_HyperMatSetNeoHookean - set Neo-Hookean material model

C SPECIFICATION

void vfe_HyperMatSetNeoHookean (vfe_HyperMat *hypermat,
                                Vdouble bulk,
                                Vdouble shear)

INPUT ARGUMENTS

hypermat     Pointer to HyperMat object.
bulk         Initial bulk modulus
shear        Shear modulus

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if bulk or shear are not positive.

DESCRIPTION

Set Neo-Hookean material parameters.


Table of Contents , HyperMat

NAME

vfe_HyperMatSetOgden - set Ogden material model

C SPECIFICATION

void vfe_HyperMatSetOgden (vfe_HyperMat *hypermat,
                           Vdouble bulk,
                           Vint npts,
                           Vdouble ogdencoeff[],
                           Vdouble ogdenexp[])

INPUT ARGUMENTS

hypermat     Pointer to HyperMat object.
bulk         Initial bulk modulus
npts         Number of points in the Ogden expansion
ogdencoeff   Array of coefficients.
ogdenexp     Array of exponents.

OUTPUT ARGUMENTS

None

ERRORS

SYS_ERROR_VALUE is generated if an improper npts is specified or bulk is not positive.

DESCRIPTION

Set Ogden material parameters.


Table of Contents , HyperMat

NAME

vfe_HyperMatSetRefTemp - set reference temperature

C SPECIFICATION

void vfe_HyperMatSetRefTemp (vfe_HyperMat *hypermat,
                             Vdouble reftemp)

INPUT ARGUMENTS

hypermat     Pointer to HyperMat object.
reftemp      Reference temperature

OUTPUT ARGUMENTS

None

DESCRIPTION

Define reference temperature, reftemp. Use vfe_HyperMatSetThermExp to set the coefficient of thermal expansion


Table of Contents , HyperMat

NAME

vfe_HyperMatSetTemp - set temperature parameter

C SPECIFICATION

void vfe_HyperMatSetTemp (vfe_HyperMat *hypermat,
                          Vdouble temp)

INPUT ARGUMENTS

hypermat     Pointer to HyperMat object.
temp         Current temperature of defined material properties

OUTPUT ARGUMENTS

None

DESCRIPTION

Specify the current temperature for which all subsequent material properties, until another call to vfe_HyperMatSetTemp is encountered, are defined. By default the current temperature is zero.


Table of Contents , HyperMat

NAME

vfe_HyperMatSetThermExp - set coefficient of thermal expansion

C SPECIFICATION

void vfe_HyperMatSetThermExp (vfe_HyperMat *hypermat,
                              Vdouble alpha)

INPUT ARGUMENTS

hypermat     Pointer to HyperMat object.
alpha        Coefficient of thermal expansion

OUTPUT ARGUMENTS

None

DESCRIPTION

Define the coefficient of thermal expansion, alpha. Use vfe_HyperMatSetRefTemp to set the reference temperature.