4. « Elementary » quantities#
So far, we’ve only talked about « simple » quantities. A « simple » quantity is a list of named components.
Node fields (cham_no_xxx), maps (map_xxx), and element fields (cham_elem_xxx) are all associated with a « simple » quantity. For example, a field with movement nodes is associated with the quantity DEPL_R. On each of the nodes of the mesh, this field can « carry » one (or more) components of the quantity DEPL_R.
« Elementary » quantities are those associated with the Resuelem data structures (elementary vectors or elementary matrices).
A resuelem is a « field » containing 1 elementary vector (or 1 elementary matrix) per cell. The quantity associated with this field is an elementary quantity.
4.1. Syntax#
The description of the elementary quantities in the physical_quantities.py file is given at the end of the catalog (because the simple quantities defined at the beginning of the file are used there).
Examples:
MDEP_C = arrayOfQuantities (elem=”MS”, phys= DEPL_C)
MDNS_R = arrayOfQuantities (elem=”MR”, phys= DEPL_R)
MPRE_C = arrayOfQuantities (elem=”MS”, phys= PRES_C)
VDEP_C = arrayOfQuantities (elem=”V”, phys= DEPL_C)
VDEP_R = arrayOfQuantities (elem=”V”, phys= DEPL_R)
An elementary quantity of the « vector » type uses elem=”V”.
An elementary quantity of the « matrix » type uses ELEM=”MS” (if it is symmetric) or “MR” (if it is not symmetric).
4.1.1. « Elementary vector » quantity#
An « elementary vector » quantity (for example VDEP_R above) is simply described by elem=”V” and the simple quantity associated with the elementary quantity (here DEPL_R).
4.1.2. « Elementary matrix » quantity#
An « elementary matrix » quantity (for example MDNS_R above) is described by elem=”MR” (non-symmetric matrix) and the simple quantity associated with the elementary quantity (here DEPL_R).
4.2. Storage agreements#
There are many scalars (generally real ones) that can represent an elementary quantity: for example, the (symmetric) stiffness matrix of a mechanical element MECA_HEXA20 contains (60*61/2) reals.
There is no question of naming all these reals (like the components of a simple quantity).
Conventions are needed regarding the storage of these scalars.
For an elementary vector (intended to be assembled to give a second member), we want to store something that looks like a « node » field for each element. The storage convention is natural. For example:
NO. 1 |
N2 |
N3 |
… |
||||||
DX |
DY |
DZ |
DX |
DY |
DZ |
DX |
DY |
DZ |
… |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
… |
For an elementary matrix, two conventions are required:
For a symmetric matrix, we store in the following order:
1 |
|||||
2 |
3 |
||||
4 |
5 |
6 |
|||
7 |
8 |
9 |
9 |
10 |
|
11 |
12 |
13 |
13 |
14 |
15 |
For a non-symmetric matrix, we store in the following order:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
Knowing that the order of rows and columns is the same as that of an elementary vector.