3. Contenu des objets JEVEUX du sd_ligrel#

3.1. Objet “.LGRF”#

'.LGRF' : S V K8 (long=4)

V(1) : nom du maillage associé au sd_ligrel.

V(2) : nom de la sd_partition (parallélisme des calculs élémentaires). Si cette information est manquante, on ne peut pas paralléliser les calculs élémentaires (ni les assemblages).

V(3) : vaut “ “(dans le cas général) ou “LAG1’dans le cas d’un ligrel de charge pour lequel l’utilisateur a demandé d’utiliser des simples Lagrange.

V(4) : vaut “ “ (dans le cas général) ou nom de la SD DOMJOINTS si le maillage est HPC.

L’attribut “DOCU” de cet objet contient : “MECA”/”THER”/”ACOU”. Cette information permet de déterminer les ddls portés par les nœuds (objets .PRNM et .PRNS)

3.2. Objet “.NBNO”#

'.NBNO' : S V I (long=1)

Contient le nombre de nœuds tardifs du sd_ligrel

3.3. Objet “.PRNM”#

'.PRNM' : S V I

Cet objet décrit les degrés de libertés portés par les nœuds du sd_ligrel. Il tient compte des degrés de libertés apportés par les éléments finis et de ceux apportés par les sous-structures.

Soit V = .PRNM

nbno = nombre de nœuds du maillage

nec = nombre d’entiers codés nécessaires à la grandeur fondamentale associée au sd_ligrel : nec = (nombre de CMP (grandeur fondamentale) / 30) +1

pour i = 1, nbno :

V(nec*(i-1)+1)

1er entier codé du nœud i

V(nec*(i-1)+2)

2ème entier codé du nœud i

…

V(nec*(i-1)+nec)

dernier entier codé du nœud i

3.4. Objet “.LIEL”#

'.LIEL' : XC V I NU()

La collection .LIEL contient les numéros des mailles supportant des éléments finis. Les éléments sont regroupés par groupes d’éléments de même type (GREL) [D0.04.02]. Un objet de la collection correspond à un GREL.

Soit i le ièmeGREL du SD_LIGREL

V =.LIEL(i)

n = LONG(V) = l+nbrede mailles du ième GREL

V(1)

numéro de la maille associée au 1er élément du GREL

V(2)

numéro de la maille associée au 2ème élément du GREL

…

V(n-1)

numéro de la maille associée au dernier élément du GREL

V(n)

numéro du type d’élément associé au GREL i (objet &CATA.TE.NOMTE [D4.04.01])

Conventions importantes :

  • si la maille est une maille du maillage son numéro est stocké tel quel.

  • si la maille est une maille tardive, son numéro est stocké avec le signe moins (cf. objet .NEMA),

  • le nombre de GREL d’un sd_ligrel vaut : NUITOC (“.LIEL”) (Attention : la collection peut être sur-dimensionnée : NMAXOC ≥ NUTIOC)

3.5. Objet “.REPE”#

'.REPE' : S V I

Soit

V = “.REPE”

nbma = nombre de mailles du maillage associé ausd_ligrel LONG(V) = 2*nbma

pour i = 1, nbma

V(2(i-1)+1) : numéro du GREL associé à la maille i du maillage

V(2(i-1)+2) : position dans le GREL de la maille i du maillage

Cet objet est ”l’inverse” de l’objet .LIEL pour ce qui concerne les mailles du maillage

Si i est une maille non affectée : V(2(i-1)+1)= V(2(i-1)+2)= 0

3.6. Objet “.NVGE”#

'.NVGE' : S V K16 (long=1)

V(1) : nom de la sd_voisinage affectée au ligrel

3.7. Objet “.SSSA”#

'.SSSA' : S V I

Soit :

V = “.SSSA”

nb_sm = nombre de super-mailles du maillage

LONG(V) = nb_sm + 3

V(i=1,nbsm)

/ 1 si la super-maille iest affectée (sous-structuration “active”)

/ 0 sinon

V(nbsm+l)

nombre de super-mailles du maillage

V(nbsm+2)

nombre de sous-structures actives

V(nbsm+3)

nombre de nœuds de Lagrange du maillage

Remarque :

V(nb_sm+1) et V(nb_sm+3) ne doivent plus être utilisés, l’information existant déjà dans le maillage (objet . DIME ).

3.8. Objet “.NEMA”#

'.NEMA' : XC V I NU

Cette collection décrit les mailles tardives du sd_ligrel.

II existe un objet de collection par maille tardive.

Attention :

Cette collection est peut être sur-dimensionnée. Le nombre réel de mailles tardives est obtenu par NUTIOC(.NEMA).

Soit :

nbmas = nombre de mailles tardives du sd_ligrel

nbmas = NUTIOC(.NEMA)

pour i = 1, nbmas

V = .NEMA(i)

n = LONG(V) = (nombre de nœuds de la maille) + 1

V(l)

numéro du 1er nœud de la maille i

V(2)

numéro du 2ème nœud de la maille i

…

V(n-1)

numéro du dernier nœud de la maille i

V(n)

numéro du type de la maille i

Si le numéro d’un nœud est négatif, c’est l’opposé du numéro d’un nœud tardif du sd_ligrel(cf. objet .NBNO).

3.9. Objet “.PRNS”#

'.PRNS' : S V I

Cet objet décrit les ddls portés par les nœuds tardifs du sd_ligrel.

Soit :

V = .PRNS

nbnos = nombre de nœuds tardifs du sd_ligrel

nec = nombre d’entiers codés nécessaires à la grandeur fondamentale associée au sd_ligrel nec = (nombre de CMP(grandeur fondamentale) / 30) +1

pour i = 1, nbnos :

V(nec*(i-1)+1)

1er entier codé du nœud i

V(nec*(i-1)+2)

2ème entier codé du nœud i

…

V(nec*(i-1)+nec)

dernier entier codé du nœudi

Le “petit” morceau de .PRNS concernant le nœud i est ce que l’on appelle un Descripteur-Grandeur [D4.06.05].

3.10. Objet “.LGNS”#

'.LGNS' : S V I

La longueur de ce vecteur est supérieure au nombre de nœuds tardifs du sd_ligrel (l’objet est sur-dimensionné).

V (INO) : nombre indiquant comment le nœud tardif de Lagrange INO doit être numéroté (voir sd_nume_ddl).

V(INO) : 0

le nœud INO n’est pas un nœud de Lagrange

V(INO) :+1

le nœud INO est un nœud de Lagrange de type “1”.

II doit être numéroté avant les ddls physiques qu’il contraint.

V(INO) :-2

le nœud INO est un nœud de Lagrange de type “2”.

II doit être numéroté après les ddls physiques qu’il contraint.

V(INO) :-1

le nœud INO est un nœud de Lagrange de type “1”.

II doit être numéroté après les ddls physiques qu’il contraint.

V(INO) :+2

le nœud INO est un nœud de Lagrange de type “2”.

II doit être numéroté avant les ddls physiques qu’il contraint.

3.11. Objet “.TYFE”#

'.TYFE' : S V I

Soit V = “.TYFE”

LONG(V) = nombre de mailles du maillage = nbma

pour i = 1, nbma

V(i) : numéro du type d’élément porté par la maille i

(= 0 si la maille n’est pas affectée par un élément fini)

3.12. Remarque sur les objets redondants de la sd_ligrel#

Certains objets de la sd_ligrel peuvent se déduire d’autres objets. Cette information redondante a pour but d’accélérer certains traitements (du point de vue du temps CPU).

L’objet .REPE peut se déduire de .LIEL. Les objets .PRNM et .PRNS peuvent se déduire de .LIEL, .SSSA et .LGRF.

La routine cormgi.F90 permet de calculer .REPE La routine initel.F90 permet de calculer .PRNM et .PRNS.