2. The data structure to subdue#
The name of the « phenomenon » is the root of the name of the « behavior. » In commands where the user does not choose the behavior model, it is necessary to know how to find the necessary hardware characteristics unambiguously, for example, the calculation of stiffness matrices through the MECA_STATIQUE command does not know how to distinguish between ELAS and ELAS_ORTHO, which is why these two behaviors are mutually exclusive. On the other hand, a material can contain the phenomena ELAS and THER. For mechanical non-linear behaviors, uniqueness is not necessary, because the user chooses a behavior relationship at the global control level (STAT_NON_LINE).
For example, the behaviors ELAS, ELAS_FLUI, ELAS_ISTR, ELAS_ORTH,,, ELAS_THM, ELAS_COQUE make up the ELAS phenomenon.
The data structure to master is composed of:
of several phenomena,
possibly of a function & RDEP for behaviors TRACTION and META_TRACTION.
“. MATERIAU. NOMRC “: OJB SV K32
% General Elastic Behaviors
|//”.ELAS”: COMPOR /”. ELAS_FLUI “: COMPOR /”. ELAS_ISTR “: COMPOR /”. ELAS_ORTH “: COMPOR /”. ELAS_THM “: COMPOR /”. ELAS_COQUE “: COMPOR
% General Nonlinear Mechanical Behaviors
“. & RDEP “: FONCTION | “.ECRO_LINE”: COMPOR | “.PRAGER “: COMPOR | “.CIN1_CHAB “: COMPOR | “.CIN2_CHAB “: COMPOR | “.TAHERI “: COMPOR |/”.LEMAITRE “: COMPOR | “.NORTON_HOFF”: COMPOR
% Behaviors related to damage and breakage
…
Note:
The data structure mother contains no information on the form of the laws of behavior: elasticity, Lemaitre, etc… The latter do not exist in the form of data structures, but only in « hard » form in FORTRAN.
2.1. Content of the data structure to master#
. MATERIAU. NOMRC: SVK32
Vector type CHARACTER *16 sized at least to the number of behaviors present when defining the material (LONUTI is the number of behaviors present).
Contains the names of the behaviors affected in the DEFI_MATERIAU or DEFI_COMPOSITE command (without _FO).
The DEFI_COMPOSITE command stores the ELAS_COQMU or THER_COQMU behavior name there, a white string, and the name of each material for each layer. The LONUTI attribute of this object is retrieved in various routines to get the number of layers.
. & RDEP: FONCTION
Only present if behaviors TRACTION and META_TRACTION are present in the material. It is a function of a variable sized to the maximum number of points of the functions composing the temperature-dependent traction curves.
2.2. The compor data structure#
First of all, a data structure linked to each behavior that can define the material is defined. A behavior is a set of named parameters (K16) associated with a value. If the value is a K16 the parameter is associated with an object (for example a function).
“. VALK “: OBJ SV K16 “. VALR “: OBJ S V R “. VALC “: OBJ S V C “. ORDR “: OBJ SV K16 “. KORD “: OBJ S V I
The full name of the compor data structure (K19) consists of the material user name (K8) followed by the string ». CPT. » followed by the value of the storage index in the object. MATERIAU. NOMRC.
2.3. Contents of the compor data structure#
VALK: S V K16
Vector of type CHARACTER *16 sized to 2 times the maximum number of parameters, 2x NBPAR (it is necessary to be able to store all the parameter names and all the function names, if all the parameters are associated with functions) for the law of behavior in question. For example E and NU are parameters of elastic behavior ELAS.
Contains in order:
the names of the parameters associated with real values,
the names of the parameters associated with complex values,
the names of the parameters associated with tables,
the names of the parameters associated with functions,
the names of the parameters associated with lists of real values,
the names of the parameters associated with lists of functions,
the names of the objects (tables, functions, lists).
LONUTI is the number of all parameters and objects stored in the vector.
The DEFI_COMPOSITE command populates this object with parameter names associated with the homogenized coefficients as well as for each layer. A real value is stored for each.
. VALR: S V R
Vector of type REAL *8 sized to the maximum number of parameters (NBPAR) for the law of behavior in question. LONUTI provides the number of real parameters.
Contains values associated with the actual parameters.
. VALC: S V C
Vector of type COMPLEX *16 sized to the maximum number of parameters (NBPAR) for the law of behavior in question. LONUTI provides the number of complex parameters.
Contains values associated with complex parameters.
Care: we first store as many 0s as there are real parameters, then the LONUTI complex values.
. ORDR: S V K16
Vector of type CHARACTER *16 sized to the number of values of ORDRE_PARAM when it exists for the behavior.
Contains parameter names as provided by ORDRE_PARAM.
. KORD: S V I
Vector type INTEGER sized to 2 + 4 x NBPAR.
Contains:
The number of values of. ORDR, also that of ORDRE_PARAM.
The number of parameters defined for the behavior (number of real, complex, and other objects).
For each parameter defined, its position in the vector. ORDR.
For each parameter defined, its position in the vector. VALK if it is a real, 0 otherwise.
For each parameter defined, its position in the vector. VALK if it is a complex, 0 otherwise.
For each parameter defined, its position in the vector. VALK if it is neither real nor complex, 0 otherwise.
2.4. List of real values or functions#
Some material parameters may contain more than one real value or more than one function.
In this case, a vector of REAL *8 or CHARACTER*8 is created.
“. LISV_R8 “: OBJ S V R lisv_fo (K24): := record
“. LISV_FO “: OBJ SV K8
The name of this vector consists of the user name of the material (K8) followed by « .000000i » (on 7 digits) followed by. LISV_R8 for real ones,. LISV_FO for functions.
This name is entered in. VALK of the behavior like for a function, table, etc.