The structural (or mechanical) constitutive model should generally
support several so-called material models, corresponding to various
modeling assumptions (plane-stress, plane-strain, or 1D-behavior,
for example). The concept of multiple material modes is generally
supported by Material, which provides the services for testing
the model capabilities. It is generally assumed, that results obtained
from constitutive model services are formed according to
material mode. This mode is attribute of each integration point,
which is compulsory parameter of all material services. For
computational convenience, the so-called full and reduced formats of
stress/strains vectors are introduced, corresponding to material
modes.
The full format includes all components, even if they are zero due to stress/strain mode nature.
In the reduced format, only generally nonzero components are stored.
(Full format should be used only if absolutely necessary, to avoid
wasting of space. For example, it is used
by output routines to print results in general form). Methods for converting vectors between
full and reduced format are provided. If possible, all computations
should be performed in reduced space.
The convention used to construct reduced strain/stress vectors is
generally as follows.
If in a particular mode a particular stress component is zero, the corresponding strain is not computed
and not stored in reduced vector, and in full vector there is zero value on corresponding position.
On the other hand, if zero strain component is imposed, then this condition must be taken into account in geometrical
relations (at element level), and corresponding components are included
in stress/strain reduced vectors.
Generally, the following major tasks are declared by
StructuralMaterial or inherited from Material class:
- Computing the real stress vector (tensor) at an integration point for
a given strain increment and updating its temporary state corresponding to
the local equilibrium, but not necessarily to the global equilibrium (see
giveRealStressVector). The parameters include the total strain
vector and the corresponding integration point.
The total strain is defined as strain computed directly from the
displacement field at a given time.
The stress independent parts (temperature, eigen strains) should be
subtracted and the corresponding load-history variables
(stored in the corresponding status) can be used. The temporary
history variables in the status should be updated according to the newly reached state.
The temporary history variables are moved into equilibrium history
variables just after the global structure
equilibrium has been reached by the iteration process.
- Updating the integration point state (final state), when the global equilibrium
has been reached.
- Returning material stiffness and/or flexibility matrices for
a given material mode. The general methods computing the response for
the specific material mode are provided, based on converting 3D stiffness
or compliance matrix to that corresponding to the specific material mode.
But, if it is possible to compute stiffness or
compliance matrix directly for the specific mode, then these general methods should be
overloaded.
- Storing/restoring integration point state to/from a stream.
- Requesting internal variables, their types and properties
(giveIPValue, giveIPValueSize,
giveIPValueType, and giveIntVarCompFullIndx services).
- Returning material properties.
Structural material services should not be called directly by
elements. Instead, the elements should
pass their requests to the corresponding cross section model, that performs all necessary integration over
its volume and invokes corresponding material model services.
The StructuralMaterial class comes with definition of
associated material status - StructuralMaterialStatus.
This is only an abstract class. For every instance of
StructuralMaterial class
there should be a specialized derived class, which maintains all history variables.
It only adds attributes common to all ``structural analysis'' material models - the
strain and stress vectors (both the temporary-like, corresponding to
the local
equilibrium and non-temporary ones, corresponding to the global equilibrium). The corresponding services
for accessing, setting, initializing, and updating these attributes are provided.
Borek Patzak
2018-01-02