d4.08.01 Structure de données sd_macr_elem_stat#
Résumé:
La structure de données sd_macr_elem_stat représente un macro élément en sous-structuration statique. Un macro élément est en quelque sorte un élément fini dont la maille support a un nombre quelconque de nœuds. Pour le « fabriquer », on part d’un modèle éléments finis et on le « condense » sur certains de ces nœuds (que l’on appelle « externes »). Cette condensation se fait par élimination des ddls portés par les nœuds internes. Cette technique est décrite par exemple dans le livre de J-F. Imbert « Analyse des structures par éléments finis » aux éditions CEPADUES année 1991. Au terme de cette condensation, le macro élément est représenté par des matrices et des chargements condensés. Les matrices (rigidité, masse et amortissement) sont pleines et symétriques de dimension nddle si nddle est le nombre de ddls externes du macro-élément.
Table des Matières
Arborescence#
sd_macr_elem_stat(K8) :: = record
% description géométrique et topologique :
♦'.DESM' : OJB S V I long=10
'.LINO' : OJB S V I
'.REFM' : OJB S V K8
'.VARM' : OJB S V R long=2
◊ '.CONX' : OJB S V I
% rigidité condensée :
◊ '.RIGIMECA' : sd_matr_asse
'.MAEL_RAID_VALE' : OJB S V R
'.PHI_IE' : OJB XD V R NU long=cste
% masse condensée et amortissement :
◊ '.MASSMECA' : sd_matr_asse
'.MAEL_MASS_VALE' : OJB S V R
◊ '.MAEL_AMOR_VALE' : OJB S V R
% description des chargements :
◊ '.LICA' : OJB XD V R NO long=cste
“.LICH” : OJB XC V K8 NO long=cste
% si utilisation de DEFINITION/PROJ_MESU :
◊ “.PROJM” : sd_proj_mesu
Contenu des objets#
‘.DESM ‘: OJB S V I long=10
DESM(1) : (vide)
DESM(2) : nombre de nœuds externes au maillage (nbnoe)
DESM(3) : nombre de nœuds internes maillage (nbnoi)
(nœud maillage = nœud physique ou nœud Lagrange)
DESM(4) : nombre de ddls externes. total (nddle)
DESM(5) : nombre de ddls internes. total (nddli)
DESM(6) : nombre de sd_char_mecacinématiques. (nbchar)
DESM(7) : nombre de cas de charge définis. (nbcas)
DESM(8) : nombre de lagranges externes (nlage)
DESM(9) : nombre de lagranges relations (nlagl)
DESM(10) : nombre de lagranges internes (nlagi)
‘.REFM ‘: OJB S V K8 LONG=9+nbchar
REFM(1) : sd_modele
REFM(2) : sd_maillage
REFM(3) : sd_cham_mater
REFM(4) : sd_cara_elem
REFM(5) : sd_nume_ddl
REFM(6) : “OUI_RIGI”/”NON_RIGI”
REFM(7) : “OUI_MASS”/”NON_MASS”
REFM(8) : “OUI_AMOR”/”NON_AMOR”
REFM(9):nom de la structure de données fournie par l’utilisateur derrière le mot clé DEFINITION/PROJ_MESU(type mode_gene, tran_gene, …)
REFM(9 +1 ) : char_cinema_1
REFM(9 +2 ) : char_cinema_2
…REFM(9 +nchar ) : char_cinema_N
‘.LINO’: OJB S V I
LINOcontient la liste des nœuds physiques externes.
Le nombre réel de ces nœuds (LONUTI) est aussi dans DESM(2).
L’ordre des nœuds dans .LINOest celui d’apparition dans .CONX
‘.CONX’: OJB S V I
Remarque:
Cet objet est en réalité obligatoire. Mais il n’apparaît dans la structure de données qu’au moment de la condensation de la rigidité et comme le sd_macr_elem_statest un objet réentrant que l’on peut construire en plusieurs étapes, il peut arriver que l’objet .CONXsoit absent de la SD.
nbnoe = lonuti(LINO)
nbnoet = nbnoe + nlage + nlagl: c’est le nombre total de nœuds externes.
CONXest dimensionné à 3*nbnoet
Les nœuds externes sont numérotés dans l’ordre d’apparition dans la numérotation initiale (matrice condensée).
CONX(1,inoe) : ili = numéro du ligrel de .LILI(nume_ddl)
contenant le nœud externe inoe
CONX(2,inoe) : ino = numéro de inoe dans le ligrel ili
CONX(3,inoe) : = 0 si nœud physique
= -1 si ce nœud de Lagrange est un nœud "avant"
= -2 si ce nœud de Lagrange est un nœud "après"
‘.VARM ‘: OJB S V R LONG=2
VARM(1)taille des blocs de la matrice de rigidité factorisée (LDLT) et taille des blocs de la matrice PHI_IE. Cette taille est données en kilo r8.
VARM(2)instant du calcul (DEFINITION/INST)
‘.PHI_IE‘: OJB XD V R long=cste NU()
PHI_IEest la matrice : PHI_IE = K_II**(-1)*K_IE
ou K_II: sous-matrice des ddls internes.
ou K_IE: sous-matrice des couplages internes/externes.
PHI_IEest une matrice de dimensions nddle X nddli. Elle est stockée comme une collection dispersée car cet objet peut être très volumineux. Dans chaque objet de la collection (de taille maximum VARM(1)), on stocke un certain nombre (nlblph) de lignes de la matrice PHI_IE. Chaque ligne est de longueur nddle.
Les lignes de PHI_IEsont bien entendu stockées consécutivement dans les objets de la collection. Le 1erobjet contient les lignes 1à nlblph, le 2emeobjet contient les lignes nlblph+1à2*nlblph, …
'.MAEL_RAID_VALE': OJB S V R
Matrice de rigidité condensée (que l’on appelle KP_EE).
KP_EEest la matrice : KP_EE = K_EE – K_EI*PHI_IE
Cette matrice est stockée “symétrique” par colonnes :
KP_EE(i,j)= KP_EE(j*(j-1)/2 +i)pour j≥i
KP_EEest un vecteur de longueur nddle*(nddle+1)/2
'.MAEL_MASS_VALE': OJB S V R
Matrice de masse condensée (que l’on appelle MP_EE).
MP_EEest la matrice :
⇒ MP_EE = M_EE + PHI_EI*M_II*PHI_IE - M_EI*PHI_IE - PHI_EI*M_EI
Cette matrice est stockée “symétrique” comme KP_EE
'.MAEL_AMOR_VALE': OJB S V R
Matrice d’amortissement condensée (que l’on appelle AP_EE).
Cette matrice est stockée “symétrique” comme KP_EE
Remarque :
La commande MACR_ELEM_STAT ne permet pas (pour l’instant) de calculer .MAEL_AMOR_VALE. Mais il existe une (ou plusieurs ?) commande dynamique dans laquelle on fait passer un sd_macr_elem_dynapour un sd_macr_elem_stat. L’objet .MAEL_AMOR_VALE, s’il est présent, sera alors assemblé dans la matrice d’amortissement globale .
'.LICH': OJB XC V K8 LONG(cste) NO()
Cette collection est sur-dimensionnée par rapport au nombre des cas de charge.
Elle est nommée par les noms des cas de charge nomcas.
LICH(nomcas)est de dimension n_char_max+1
LICH(nomcas)(1)= / ‘NON_SUIV’chargement non suiveur/ ‘OUI_SUIV’ chargement suiveur
LICH(nomcas)(1<i≤n_char_max+1)= nom de la charge i-1
‘.LICA’: OJB XD V R LONG(cste) NO()
Cette collection est sur-dimensionnée par rapport au nombre des cas de charge.
Elle est nommée par les noms de cas de charge nomcas.
LICA(nomcas)est de dimension 2*nddlt= 2*(nddli+ nddle)
Chaque objet LICA(nomcas)est formé de 2 segments de même longueur (nddli+ nddle) stockés bout à bout.
Dans le 1ersegment, on trouve le second membre correspondant au cas de charge nomcas:
LICA(nomcas)(1 ≤ i ≤ nddli) = F_I
LICA(nomcas)(nddli+1 ≤ i ≤ nddli+nddle) = F_E
Dans le second segment, on trouve le second membre condensé correspondant à nomcas:
LICA(nomcas)(nddlt+1 ≤ i ≤ nddlt+nddli) = (K_II**-1)*F_I
LICA(nomcas)( nddlt+nddli+1 ≤ i ≤ nddlt+nddle) = FP_E
avec FP_E = F_E - K_EI*(K_II**-1)*F_I
Exemple : sd_macr_elem_statS_1 du test SSLP100B#
Structure de Données : S_1
IMPRESSION SEGMENT DE VALEURS >S_1 .CONX <
1 - 1 1 0 1 3
6 - 0 1 4 0 1
11 - 7 0 1 9 0
16 - 1 6 0 1 10
21 - 0 1 12 0
IMPRESSION SEGMENT DE VALEURS >S_1 .DESM <
1 - 0 8 4 16 12
6 - 1 2 0 0 4
IMPRESSION DE LA COLLECTION : S_1 .LICA
IMPRESSION SEGMENT DE VALEURS >S_1 .LICA $$NOM <
>>>>> REPERTOIRE DE NOMS DE LA COLLECTION :S_1 .LICA
1 - >CHF1 <>CHF2 <
IMPRESSION OBJET DE COLLECTION >S_1 .LICA < OC : 1
1 - 3.53553D+00 1.46447D+00 0.00000D+00 0.00000D+00 0.00000D+00
6 - 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00
11 - 0.00000D+00 0.00000D+00 1.91342D+00 3.80604D-01 1.62212D+00
16 - 1.08386D+00 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00
21 - 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00
26 - 0.00000D+00 0.00000D+00 0.00000D+00 2.39508D-01 9.92075D-02
31 - 2.98282D-02 1.23552D-02 -1.97778D-19 -7.02300D-20 2.95966D-03
36 - 7.14525D-03 -3.06170D-19 -5.50571D-21 2.95966D-03 7.14525D-03
41 - 2.64693D+00 1.18501D+00 2.70958D+00 1.03373D+00 8.48546D-01
46 - -3.31522D-01 1.30381D-01 -6.22318D-02 4.81890D-02 1.36198D-01
51 - 3.65592D-01 8.34435D-01 -1.16015D-18 8.41068D-19 4.58200D-20
56 - 2.87916D-20
IMPRESSION OBJET DE COLLECTION >S_1 .LICA < OC : 2
1 - 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00
6 - -2.00000D+01 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00
11 - 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00
16 - 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00
21 - 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00 0.00000D+00
26 - 0.00000D+00 0.00000D+00 0.00000D+00 -1.61431D-18 -7.81792D-19
31 - -6.45718D-18 -2.26429D-18 3.01596D-01 -1.61168D+00 -8.43526D-02
36 - -1.00331D-01 -1.59744D-17 -1.28342D-17 -8.43526D-02 -1.00331D-01
41 - -2.64622D-17 -4.13600D-17 -5.05295D-17 1.06224D-17 -9.17765D-17
46 - -1.39652D-16 -4.67445D+00 -7.31983D+00 3.49452D+00 -1.72624D+00
51 - -1.21457D-16 2.45518D-17 2.19705D+00 -4.60236D+00 3.50220D+00
56 - -2.55199D+00
IMPRESSION DE LA COLLECTION : S_1 .LICH
IMPRESSION SEGMENT DE VALEURS >S_1 .LICH $$NOM <
>>>>> REPERTOIRE DE NOMS DE LA COLLECTION :S_1 .LICH
1 - >CHF1 <>CHF2 <
IMPRESSION OBJET DE COLLECTION CONTIGUE>S_1 .LICH < OC : 1
1 - >OUI_SUIV<>CHBL_1 <>CHF1_1 <> <> <> <> <
8 - > <> <> <
IMPRESSION OBJET DE COLLECTION CONTIGUE>S_1 .LICH < OC : 2
1 - >NON_SUIV<>CHF2_1 <> <> <> <> <> <
8 - > <> <> <
IMPRESSION SEGMENT DE VALEURS >S_1 .LINO <
1 - 1 3 4 7 9
6 - 6 10 12
IMPRESSION SEGMENT DE VALEURS >S_1 .MAEL_RAID_VALE <
1 - 6.41345D+00 1.76677D+00 9.20402D+00 -1.81735D+00 1.25037D+00
6 - 9.57550D+00 1.00328D+00 -4.07100D+00 -1.39527D+00 6.04196D+00
11 - -2.86996D+00 -2.86915D-01 -2.19245D+00 1.87984D+00 1.43014D+01
…
131 - 2.36288D-18 -3.29156D-18 -5.30569D-01 -4.81304D-01 2.71008D+00
136 - 1.03411D+01
IMPRESSION DE LA COLLECTION : S_1 .PHI_IE
IMPRESSION OBJET DE COLLECTION >S_1 .PHI_IE < OC : 1
1 - -2.11984D-01 1.09032D-02 -9.57179D-02 -1.05534D-01 -1.51204D-18
6 - -6.17392D-19 -8.67300D-03 -2.98079D-02 -2.08419D-18 -7.70800D-19
…
186 - -1.27599D-01 -1.52778D-01 4.83504D-03 4.08788D-19 -1.44063D-17
191 - -1.52778D-01 4.83504D-03
IMPRESSION SEGMENT DE VALEURS >S_1 .REFM <
1 - >MO_1 <>MA <>CHMAT <> <>S_1 <>OUI_RIGI<>NON_MASS<
8 - >NON_AMOR<> <>CHBL_1 <
IMPRESSION SEGMENT DE VALEURS >S_1 .RIGIMECA .REFA <
1 - >MA <>S_1 <
3 - > <>RIGI_MECA <
5 - > <> <
7 - > <>DECP <
9 - >MS <>NOEU <
IMPRESSION DE LA COLLECTION : S_1 .RIGIMECA .UALF
IMPRESSION OBJET DE COLLECTION >S_1 .RIGIMECA .UALF< OC : 1
1 - 1.77687D+01 -3.40898D-01 2.78185D+01 -1.18521D-01 -1.90123D-01
6 - 3.20885D+01 -2.57251D-01 1.96913D-01 -7.70137D-02 3.68408D+01
11 - …
341 - 0.00000D+00 0.00000D+00 2.77973D+00 1.12895D+01
IMPRESSION DE LA COLLECTION : S_1 .RIGIMECA .VALM
IMPRESSION OBJET DE COLLECTION >S_1 .RIGIMECA .VALM< OC : 1
1 - 1.77687D+01 -6.05732D+00 2.98834D+01 -2.10596D+00 -4.57102D+00
6 - 3.33437D+01 -4.57102D+00 7.03607D+00 -2.97096D+00 3.92857D+01
11 - …
166 - 1.12895D+01
IMPRESSION SEGMENT DE VALEURS >S_1 .VARM <
1 - 8.00000D+02 0.00000D+00