Contenu des objets Jeveux ========================= .. code-block:: text sd_cham_mater ------------- **.CHAMP_MAT** Cette sd_carte contient le nom du (ou des) sd_mater affecté(s) sur chaque maille du maillage. Dans le cas général, chaque maille n’est affectée que par un seul sd_mater. Mais parfois, il faut indiquer une liste de sd_mater (lorsque le comportement mécanique non linéaire est obtenu par la commande DEFI_COMPOR [:external:ref:`U4.43.06 `]). Sur chaque, maille, on peut affecter jusqu’à 28 sd_mater différents. **Remarque:** **gestion particulière de la température de référence :** *La transformation* sd_cham_mater *→* sd_cham_mater_code *oblige à garder une correspondance (* sd_mater *→ température de référence). La raison en est la transformation de la fonction* :math:`alpha(T)` *à partir des 2 températures* TREF *et* TDEF *(voir routine* alfint.f *). Cette correspondance n’est plus assurée automatiquement depuis que le mot clé* AFFE/TEMP_REF *a été remplacé par* AFFE_VARC/VALE_REF *.On rétablit cette correspondance à la fin de l’opérateur* AFFE_MATERIAU *(routine* cmtref.f *). Pour cela, on écrit la température de référence affectée dans la* sd_carte .CHAMP_MAT \*.* *On stocke la température de référence en écrivant 2* sd_mater *supplémentaires (et fictifs) :* ('ACIER', 'TREF⇒', '20.50') *.* *La température est écrite au format* F8.2 *.* **.COMPOR** Cette sd_carte contient les informations d’affectation du mot clé facteur AFFE_COMPOR (routine rccomp.f). La grandeur associée à cette carte est COMPOR. Les 7 composantes utilisées sont : RELCOM, NBVARI, DEFORM, INCELA, C_PLAN, XXXX1 et XXXX2 sd_cham_mater_code ------------------ Cette sd_carte est une copie de la sd_carte.CHAMP_MAT. La différence entre ces 2 sd_carte est que les valeurs de la carte des matériaux codés sont des adresses de sd_mater_code à la place des noms des sd_mater. **Remarque** : *Cette* *sd_carteest créée sur la base Volatile en début des opérateurs de calcul (routine rcmfmc.f). Comme elle contient des adresses JEVEUX, elle ne peut pas avoir une durée de vie illimitée.* .. code-block:: text sd_cham_mater_varc ------------------ **Vocabulaire, définitions** On appelle “CVRC” (variable de commande scalaire) une variable réelle scalaire qui influe sur les lois de comportement mécaniques. Exemples : température, hydratation, ... On appelle “VARC” (variable de commande vectorielle) un ensemble de “CVRC” reliées entre elles logiquement. Exemple : phases métallurgiques de l’acier : pourcentages de ferrite, de perlite, de bainite, ... Les VARC et CVRC sont nommées (K8). Pour simplifier, chaque CVRC isolée est rattachée à une VARC de même nom. L’accès à une variable de commande scalaire (CVRC) se fait donc logiquement en donnant le nom de la VARC et le nom de la CVRC. Exemples : .. code-block:: text VARC='TEMP' CVRC='TEMP' => température (CVRC isolée) VARC='M_ACIER' CVRC='PBAINITE' => proportion de bainite pour la métallurgie de l'acier Remarque : même si certaines CVRCsont reliées logiquement par des VARC, il est nécessaire que les noms des CVRCsoient tous distincts. La raison en est qu’elles sont souvent les paramètres de certaines fonctions des matériaux ( sd_mater). Lorsque, par exemple, un module d’Young est défini comme une fonction de ‘PBAINITE‘ , ce nom doit avoir un sens “absolu”. .. code-block:: text On appellera nbcvrcle nombre de CVRCaffectées (même partiellement) dans le sd_cham_mater. Si par exemple, l’utilisateur a écrit : .. code-block:: text chmat= AFFE_MATERIAU( ... AFFE_VARC = ( _F(NOM_VARC='TEMP', GROUP_MA='GM1', ...) _F(NOM_VARC='M_ACIER', GROUP_MA='GM2', …) Le nombre de CVRC(nbcvrc)vaut 8(1pour la VARC ‘TEMP’ + 7pour la VARC ‘M_ACIER‘) même si toutes les CVRCne sont pas affectées sur tout le modèle. .. code-block:: text **Objet .CVRCNOM** Ce vecteur donne le nom de toutes les CVRC affectées (mêmes partiellement) sur le modèle. L’ordre des CVRC dans ce vecteur est l’ordre qui est aussi utilisé dans les 4 autres objets ci-dessous. **Objet .CVRCVARC** Ce vecteur donne le nom des VARCcorrespondant aux CVRC. Pour chaque VARC(de nom novarc), il existe 2 cartes nommées : .. code-block:: text CART1 = sd_cham_mater(1:8)//'.'//novarc(1:8)//'.1' CART2 = sd_cham_mater(1:8)//'.'//novarc(1:8)//'.2' CART1(sd_carte(NEUT_R)) contient les valeurs de référence(VALE_REF)affectées pour la variable de commande VARC. CART2 (sd_carte (NEUT_K16)) contient l’information nécessaire à évaluer la variable de commande VARC. Cette information est un “tuple” de 7 valeurs (varc, tysd, nomsd, nomsym, proldr, prolga, finst) varc : nom de la VARC tysd : type de la SD affectée : ‘EVOL’ / ‘CHAMP’ si tysd= ‘CHAMP’ : * nomsd : nom du champ (supposé stationnaire) affecté * nomsym = proldr = prolga = finst = ' ' si tysd= ‘EVOL’ : * nomsd : nom de la sd_evol_xxx affectée * nomsym : nom symbolique du champ à utiliser dans la sd nomsd * proldr : prolongement “à droite” c’est à dire au delà de l’instant final de l‘evol_xxx (‘EXCLU’/’CONSTANT’/’LINEAIRE’/’ ‘) * prolga : prolongement “à gauche” c’est à dire en deçà de l’instant initial de l‘evol_xxx (’EXCLU’/’CONSTANT’/’LINEAIRE’/’ ‘) * finst : nom de la sd_fonction (ou sd_formule) permettant de transformer le “temps du calcul mécanique” en “temps de l‘evol_xxx”. Si finst=’ ‘, la fonction “identité” est utilisée. INST_EVOL = finst(INST_CALC) **Objet .CVRCGD** :math:`V(k)` : nom de la grandeur associée au champ (ou à l‘evol_xxxx) affecté pour la kèmeCVRC. Objet .CVRCCMP :math:`V(k)` : nom de la composante de la grandeur associée au champ (ou à l‘evol_xxxx) affecté pour la kèmeCVRC. **Exemple** On pourrait, par exemple, trouver dans ces 4 objets : .. code-block:: text .CVRCNOM = 'TEMP' 'SECH' 'EPSXX' 'EPSYY' ... .CVRCVARC= 'TEMP' 'SECH' 'EPSA' 'EPSA' ... .CVRCGD = 'TEMP_R' 'TEMP_R' 'EPSI_R' 'EPSI_R' ... .CVRCCMP = 'TEMP' 'TEMP' 'EPSXX' 'EPSYY' ...