Usually, constitutive laws can be directly defined when required, according to the definition of an element. However, the special card described in Section 2.3.1 allows to define constitutive laws stand-alone, and attach them to the elements by means of the following mechanism:
<constitutive_law> ::=
{ <constitutive_law_definition>
| <constitutive_law_reference> }
<constitutive_law_reference> ::= reference , <label>
where <constitutive_law_definition> is described in the following,
while <label> is the label of a previously defined constitutive law
of the appropriate dimensionality, as described
in Section 2.3.1.
| Constitutive Law | 1D | 3D | 6D |
| linear elastic, linear elastic isotropic | x | x | x |
| linear elastic generic | x | x | x |
| linear elastic generic axial torsion coupling | x | ||
| log elastic | x | ||
| linear elastic generic bi-stop | x | x | x |
| double linear elastic | x | x | |
| isotropic hardening elastic | x | x | x |
| linear viscous, linear viscous isotropic | x | x | x |
| linear viscous generic | x | x | x |
| linear viscoelastic, linear viscoelastic isotropic | x | x | x |
| linear viscoelastic generic | x | x | x |
| linear viscoelastic generic axial torsion coupling | x | ||
| double linear viscoelastic | x | x | |
| turbulent viscoelastic | x | ||
| linear viscoelastic generic bi-stop | x | x | x |
| shock absorber | x |
The constitutive laws are entered as follows:
<constitutive_law_definition> ::= <specific_const_law>
[ , prestress, (entity) <prestress> ]
[ , prestrain, (entity_tpl_driver) <prestrain> ]
<specific_const_law> ::= <const_law_name> ,
<const_law_data>
where const_law_name is the name of the constitutive law and
const_law_data depends on the specific constitutive law.
The latter fields, whose type depends on the dimension of the
constitutive law, are optional, under the assumption that the
constitutive law is the last portion of a card, or that any ambiguity
can be avoided.
The data specific to the currently available constitutive laws must be
entered as follows:
<specific_const_law> ::= linear elastic [ isotropic ] ,
(scalar) <stiffness>
the isotropic stiffness coefficient; the word isotropic
can be omitted, essentially because it has no meaning
for scalar constitutive laws.
Example:
constitutive law: 1, name, "scalar isotropic law",
1, linear elastic, 1.e9;
constitutive law: 2, name, "3D isotropic law",
3, linear elastic isotropic, 1.e9;
constitutive law: 3, name, "6D isotropic law",
6, linear elastic isotropic, 1.e9;
<specific_const_law> ::= linear elastic generic ,
(derivative_of_entity) <stiffness>
the stiffness matrix. In case of 1D, the type is scalar,
and there is no distinction between generic and isotropic,
while, in case of n x 1 vectors, the type is the corresponding
n x n matrix.
Example:
constitutive law: 1, name, "scalar isotropic law",
1, linear elastic generic, 1.e9;
constitutive law: 2, name, "3D isotropic law",
3, linear elastic generic,
sym, 1.e9, 0., 0.,
1.e6, -1.e5,
1.e6;
constitutive law: 3, name, "6D isotropic law",
6, linear elastic generic,
diag, 1.e9, 1.e9, 1.e9, 1.e6, 1.e6, 1.e6;
<specific_const_law> ::=
linear elastic generic axial torsion coupling ,
(derivative_of_entity) <stiffness> ,
(scalar) <coupling_coefficient>
this is defined only for 6 x 1 vectors, where the torsion stiffness,
coefficient a44 in the stiffness matrix, depends linearly on
the axial strain,
<specific_const_law> ::= log elastic ,
(derivative_of_entity) <stiffness>
this is defined only for scalars. The force is defined as:
![]()
<specific_const_law> ::= linear elastic bistop,
(derivative_of_entity) <stiffness> ,
[ initial state , { inactive | active } , ]
(DriveCaller)<activating_condition> ,
(DriveCaller)<deactivating_condition>
<specific_const_law> ::= double linear elastic ,
(scalar) <stiffness_1> ,
(scalar) <upper_strain> ,
(scalar) <lower_strain> ,
(scalar) <stiffness_2>
this is defined for scalar and 3 x 1 vectors. In the scalar case the
meaning of the entries is straightforward, while in case of 3 x 1 vectors,
the constitutive law is isotropic but in the local direction 3, where, in
case of strain out of the upper or lower bound, the stiffness_2 is
used.
<specific_const_law> ::= isotropic hardening elastic ,
(scalar) <stiffness> ,
(scalar) <reference_strain>
this constitutive law is defined as follows:

<specific_const_law> ::= linear viscous [ isotropic ] ,
(scalar) <viscosity_coefficient>
the linear viscous coefficient.
<specific_const_law> ::= linear viscous generic ,
(derivative_of_entity) <viscosity_matrix>
the linear viscous matrix.
<specific_const_law> ::= linear viscoelastic [ isotropic ] ,
(scalar) <stiffness> ,
{ (scalar) <viscosity_coefficient>
| proportional, (scalar) <factor> }
the isotropic stiffness and viscosity coefficients.
<specific_const_law> ::= linear viscoelastic generic ,
(derivative_of_entity) <stiffness> ,
{ (derivative_of_entity) <viscosity_matrix>
| proportional, (scalar) <factor> }
the linear stiffness and viscosity matrices.
<specific_const_law> ::=
linear viscoelastic generic axial torsion coupling ,
(derivative_of_entity) <stiffness> ,
{ (derivative_of_entity) <viscosity_matrix>
| proportional, (scalar) <factor> }
(scalar) <coupling_coefficient>
this is defined only for 6 x 1 vectors; it is the viscoelastic
extension of the
linear elastic generic axial torsion coupling constitutive law.
<specific_const_law> ::= double linear viscoelastic ,
(scalar) <stiffness_1> ,
(scalar) <upper_strain> ,
(scalar) <lower_strain> ,
(scalar) <stiffness_2> ,
(scalar) <viscosity_coefficient>
this is analogous to the double linear elastic constitutive law,
except for the isotropic viscosity term.
<specific_const_law> ::= turbulent viscoelastic ,
(scalar) <stiffness> ,
(scalar) <parabolic_viscous_coefficient>
[ , (scalar) <threshold>
[ , (scalar) <linear_viscous_coefficient> ] ]
the constitutive law has the form:
<specific_const_law> ::= linear viscoelastic bistop ,
(derivative_of_entity) <stiffness> ,
(derivative_of_entity) <viscosity_coefficient> ,
[ initial state , { inactive | active } , ]
(DriveCaller)<activating_condition> ,
(DriveCaller)<deactivating_condition>
<specific_const_law> ::= shock absorber ,
[ prestrain , <value> , ]
<reference pressure> ,
<reference area for force computation> ,
<interaction coefficient> ,
<polytropic exponent> ,
[ epsilon max , <upper strain bound> , ]
[ epsilon min , <lower strain bound> , ]
[ penalty , <penalty factor for strain> ,
<penalty factor for strain rate> , ]
[ metering , <metering area> ,
[ negative , <metering area for negative strain rate> , ]
[ orifice , <orifice area> , ]
<fluid area> ,
<fluid density> ,
<drag coefficient / reference length
(scales strain rate to velocity)>
[ , friction, <reference epsilon prime> ,
<friction amplitude coefficient> ]
where