4. Grandeurs « élémentaires »#

Jusqu’à présent, nous n’avons parlé que des grandeurs «simples». Une grandeur «simple» est une liste de composantes nommées.

Les champs aux nœuds (cham_no_xxx), les cartes (carte_xxx) et les champs par éléments (cham_elem_xxx) sont tous associés à une grandeur «simple». Par exemple, un champ aux nœuds de déplacement est associé à la grandeur DEPL_R. Sur chacun des nœuds du maillage, ce champ peut «porter» une (ou plusieurs) composantes de la grandeur DEPL_R.

Les grandeurs «élémentaires» sont celles qui sont associées aux structures de données resuelem (vecteurs élémentaires ou matrices élémentaires).

Un resuelem est un «champ» contenant 1 vecteur élémentaire (ou 1 matrice élémentaire) par maille. La grandeur associée à ce champ est une grandeur élémentaire.

4.1. Syntaxe#

La description des grandeurs élémentaires dans le fichier physical_quantities.py est faite à la fin du catalogue (car on y utilise les grandeurs simples définies au début du fichier).

Exemples :

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)

Une grandeur élémentaire de type «vecteur» utilise elem=”V”.

Une grandeur élémentaire de type «matrice» utilise elem=”MS” (si elle est symétrique) ou “MR” (si elle est non symétrique).

4.1.1. Grandeur « vecteur élémentaire »#

Une grandeur de type «vecteur élémentaire» (par exemple VDEP_R ci-dessus) est simplement décrite par elem=”V” et la grandeur simple associée à la grandeur élémentaire (ici DEPL_R).

4.1.2. Grandeur « matrice élémentaire »#

Une grandeur de type «matrice élémentaire» (par exemple MDNS_R ci-dessus) est décrite par elem=”MR” (matrice non symétrique) et la grandeur simple associée à la grandeur élémentaire (ici DEPL_R).

4.2. Conventions de stockage#

Les scalaires (en général des réels) qui permettent de représenter une grandeur élémentaire sont nombreux : par exemple, la matrice de rigidité (symétrique) d’un élément mécanique MECA_HEXA20 contient (60*61/2) réels.

Il n’est pas question de nommer tous ces réels (comme les composantes d’une grandeur simple).

Des conventions sont nécessaires concernant le stockage de ces scalaires.

Pour un vecteur élémentaire (destiné à être assemblé pour donner un second membre), on cherche à stocker quelque chose qui ressemble à un champ «aux nœuds» pour chaque élément. La convention de stockage est naturelle. Par exemple :

N1

N2

N3

…

DX

DY

DZ

DX

DY

DZ

DX

DY

DZ

…

1

2

3

4

5

6

7

8

9

…

Pour une matrice élémentaire, deux conventions sont nécessaires :

Pour une matrice symétrique, on stocke dans l’ordre suivant :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Pour une matrice non-symétrique, on stocke dans l’ordre suivant :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Sachant que l’ordre des lignes et des colonnes est le même que celui d’un vecteur élémentaire.