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.