d5.04.02 Architecture des comportements cristallins#

Résumé :

Ce document décrit la structure de l’intégration des comportements cristallins (confer R5.03.11) et les actions à entreprendre pour ajouter un nouveau comportement cristallin, dans le but d’effectuer des calculs d’agrégats, ou des calculs homogénéisés à l’aide de STAT_NON_LINE et SIMU_POINT_MAT.

Architecture de DEFI_COMPOR#

Illustration sur un exemple : test SSNV194#

Partons d’un exemple (test ssnv194).

Modélisation A : un petit agrégat comportant 10 grains :#

ACIER=DEFI_MATERIAU(ELAS=_F(E=145200.0,NU=0.3,),

MONO_VISC1=_F(N=10.0, K=40.0,C=1.0,),

MONO_ISOT1=_F(R_0=75.5, Q=9.77, B=19.34),

MONO_CINE1=_F(D=36.68,),);

MONO1 =DEFI_COMPOR(MONOCRISTAL=(_F( MATER=ACIER,ELAS=”ELAS”,

ECOULEMENT=”MONO_VISC1”,

ECRO_ISOT=”MONO_ISOT1”,

ECRO_CINE=”MONO_CINE1”,

FAMI_SYST_GLIS=”BCC24”,),),);

ORIEN=AFFE_CARA_ELEM(MODELE=TROISD, MASSIF=(

_F(GROUP_MA=”GM1”,ANGL_EULER=(-150.646,33.864,55.646,),),

_F(GROUP_MA=”GM2”,ANGL_EULER=(-137.138,41.5917,142.138,),),

_F(GROUP_MA=”GM3”,ANGL_EULER=(-166.271,35.46958,171.271,),),

_F(GROUP_MA=”GM4”,ANGL_EULER=(-77.676,15.61819,154.676,),),

_F(GROUP_MA=”GM5”,ANGL_EULER=(-78.6463,33.864,155.646,),),

_F(GROUP_MA=”GM6”,ANGL_EULER=(-65.1378,41.5917,142.138,),),

_F(GROUP_MA=”GM7”,ANGL_EULER=(-94.2711,35.46958,71.271,),),

_F(GROUP_MA=”GM8”,ANGL_EULER=(-5.67599,15.61819,154.676,),),

_F(GROUP_MA=”GM9”,ANGL_EULER=(-6.64634,33.864,155.646,),),

_F(GROUP_MA=”GM10”,ANGL_EULER=(6.86224,41.5917,142.138,),),

),);

SOLNL=STAT_NON_LINE(MODELE=…,CHAM_MATER=…, EXCIT=_…,

CARA_ELEM=ORIEN,

COMPORTEMENT=_F(RELATION=”MONOCRISTAL”,

COMPOR=MONO1,

),)

Modélisations B et C : polycristal comportant 10 grains :#

Un point matériel, 10 grains de fractions volumiques identiques \((0.1)\) , et d’orientations similaires à celles de la modélisation A (ce qui permet de retrouver la même solution moyenne) :

MONO1=DEFI_COMPOR(MONOCRISTAL=(… identique à la modélisation A)

COMPORP=DEFI_COMPOR(POLYCRISTAL=(

_F(MONOCRISTAL=COMPORT,FRAC_VOL=0.1,ANGL_EULER=(-150.646,33.864,55.646,),),

_F(MONOCRISTAL=MONO1,FRAC_VOL=0.1,ANGL_EULER=(-137.138,41.5917,142.138,),),

_F(MONOCRISTAL=MONO1,FRAC_VOL=0.1,ANGL_EULER=(-166.271,35.46958,171.271,),),

_F(MONOCRISTAL=MONO1,FRAC_VOL=0.1,ANGL_EULER=(-77.676,15.61819,154.676,),),

_F(MONOCRISTAL=MONO1,FRAC_VOL=0.1,ANGL_EULER=(-78.6463,33.864,155.646,),),

_F(MONOCRISTAL=MONO1,FRAC_VOL=0.1,ANGL_EULER=(-65.1378,41.5917,142.138,),),

_F(MONOCRISTAL=MONO1,FRAC_VOL=0.1,ANGL_EULER=(-94.2711,35.46958,71.271,),),

_F(MONOCRISTAL=MONO1,FRAC_VOL=0.1,ANGL_EULER=(-5.67599,15.61819,154.676,),),

_F(MONOCRISTAL=MONO1,FRAC_VOL=0.1,ANGL_EULER=(-6.64634,33.864,155.646,),),

_F(MONOCRISTAL=MONO1,FRAC_VOL=0.1,ANGL_EULER=(6.86224,41.5917,142.138,),),

),

LOCALISATION =”BETA”,DL=0.,DA=0., MU_LOCA=145200./2.6, );

Modélisation B:(maillage comportant un seul élément)

SOLNL=STAT_NON_LINE(MODELE=TROISD,

CHAM_MATER=MAT2,

EXCIT=(_F(CHARGE=TRAC,

FONC_MULT=COEF,

TYPE_CHARGE=”FIXE_CSTE”,),),

INCREMENT=(_F(LIST_INST=LINST,),),

COMPORTEMENT=(_F(RELATION=”POLYCRISTAL”,

COMPOR=COMPORP2,

DEFORMATION=”PETIT”,

ALGO_INTE=”RUNGE_KUTTA”,

TOUT=”OUI”,

RESI_INTE_RELA=1.E-6

),),

NEWTON=(_F(PREDICTION=”EXTRAPOLE”,

MATRICE=”ELASTIQUE”,

REAC_ITER=0,),),

CONVERGENCE=(_F(ITER_GLOB_MAXI=50,

RESI_GLOB_RELA=1.E-4

),),);

Modélisation C:(point matériel)

SOLNL=SIMU_POINT_MAT(COMPORTEMENT=_F(RELATION=”POLYCRISTAL”,

COMPOR=COMPORP,

ALGO_INTE=”RUNGE_KUTTA”,),

NEWTON=_F(MATRICE=”ELASTIQUE”,REAC_ITER=0),

MATER =…, NB_VARI_TABLE=6,

INCREMENT=…,

EPSI_IMPOSE=…

);

Description de DEFI_COMPOR#

Structure :#

La routine OP0050 a pour but de produire la structure de données décrite dans [D4.06.24] : les objets composant cette SD sont différents suivant que l’on traite un monocristal (routine OP5901) ou un polycristal (routine OP5902).

Ajout d’un comportement cristallin au catalogue de DEFI_MATERIAU / DEFI_COMPOR#

Si le nouveau comportement cristallin utilise des paramètres matériau différents de ceux qui sont déjà disponibles dans les mots-clés MONO_* de DEFI_MATERIAU il suffit d’introduire ces nouveaux paramètres de comportement, soit sous un seul mot-clé (cas des comportements MONO_DD_*, soit en séparant les coefficients relatifs à l’écrouissage isotrope, à l’écrouissage cinématique, et à l’écoulement (cf. MONO_ISOT*, MONO_CINE*, MONO_VISC*, ) . Ces paramètres seront exploités dans l’intégration (routines LCMMAT, LCMMAP), et les mot-clés facteurs correspondants seront utilisés dans DEFI_COMPOR.

Exemple: catalogue de DEFI_MATERIAU

MONO_DD_CFC =FACT(statut='f',

regles=(    UN_PARMI('H','H1'),
    PRESENT_PRESENT('H1','H2','H3','H4','H5'),
    PRESENT_ABSENT('H','H1','H2','H3','H4','H5'),),


GAMMA0 =SIMP(statut='f',typ='R',defaut=0.001, unités : s**-1"),

TAU_F =SIMP(statut='o',typ='R',fr="en unite de contraintes ex 20 MPa"),

A =SIMP(statut='f',typ='R',defaut=0.13,fr="paramètre A, sans unité"),

B =SIMP(statut='f',typ='R',defaut=0.005,fr="paramètre B, sans unité"),

N =SIMP(statut='f',typ='R',defaut=200.,fr="paramètre n, sans unité"),

Y =SIMP(statut='o',typ='R',fr="en unité de longueur ex 2.5 A"),

ALPHA=SIMP(statut='f',typ='R',defaut=0.35,fr="paramètre alpha"),

BETA =SIMP(statut='o',typ='R',fr="paramètre b, en unite de longueur"),

...),

Ceci permet de décrire chaque coefficient, son caractère facultatif (avec une éventuelle valeur par défaut) ou obligatoire (pour plus de précisions, se reporter à [d5.01.01] ) .

Le catalogue de DEFI_COMPOR est, suivant les cas :

MONOCRISTAL =FACT(statut=”f”, max=5,

MATER =SIMP(statut=”o”, typ=mater_sdaster, max=1),

ECOULEMENT=SIMP(statut=”o”,typ=”TXM”,into=(“MONO_VISC1”, “MONO_VISC2”,

“MONO_DD_CFC”, “MONO_DD_CC”,…),

fr= »type d’écoulement viscoplastique »),

ELAS =SIMP(statut=”f”, typ=”TXM”,),

# cas d’un comportement de type MONO_VISC*

b_non_dd=BLOC(condition= »ECOULEMENT==”MONO_VISC1”

or ECOULEMENT==”MONO_VISC2”,

ECRO_ISOT=SIMP(statut=”f”, typ=”TXM”, max=1,

fr= »Donner le type d’écrouissage isotrope »),

ECRO_CINE=SIMP(statut=”f”, typ=”TXM”, max=1,

fr= »Donner type d’écrouissage cinématique »),

FAMI_SYST_GLIS=SIMP(statut=”f”,typ=”TXM”,

into=(“OCTAEDRIQUE”,”BCC24”,”CUBIQUE1”,”CUBIQUE2”,

“ZIRCONIUM”,”UNIAXIAL”,”UTILISATEUR”),),

b_util =BLOC(condition= »FAMI_SYST_GLIS==”UTILISATEUR” « ,

TABL_SYST_GLIS =SIMP(statut=”f”, typ=table_sdaster,),),),

# cas d’un comportement de type DD

b_dd_cc=BLOC(condition= »ECOULEMENT==”MONO_DD_CC” »,

FAMI_SYST_GLIS=SIMP(statut=”f”,typ=”TXM”,into=(“CUBIQUE1”,”UTILISATEUR”,),

b_util=BLOC(condition= »FAMI_SYST_GLIS==”UTILISATEUR” »,

TABL_SYST_GLIS=SIMP(statut=”f”, typ=table_sdaster),),),),

MATR_INTER =SIMP(statut=”f”, typ=table_sdaster, max=1,),

ROTA_RESEAU=SIMP(statut=”f”,typ=”TXM”,max=1,into=(“NON”,”POST”,”CALC”),

defaut=”NON”,fr= »rotation de reseau : NON, POST, CALC »),

POLYCRISTAL =FACT(statut=”f”, max=”**”,

regles=(UN_PARMI(“ANGL_REP”,”ANGL_EULER”),),

MONOCRISTAL=SIMP(statut=”o”, typ=compor_sdaster, max=1),

FRAC_VOL =SIMP(statut=”o”, typ=”R”, fr= »fraction volumique»),

ANGL_REP=SIMP(statut=”f”,typ=”R”,max=3,fr= »angles nautiques en degrés »),

ANGL_EULER=SIMP(statut=”f”,typ=”R”,max=3,fr= »angles d’Euler en degrés »),

b_poly =BLOC( condition = « POLYCRISTAL!=None »,

MU_LOCA =SIMP(statut=”o”,typ=”R”,max=1),

LOCALISATION=SIMP(statut=”f”, typ=”TXM”, max=1, into=(“BZ”, “BETA”,),

fr=tr(« Donner le nom de la règle de localisation »)),

b_beta =BLOC( condition = « LOCALISATION==”BETA” »,

DL =SIMP(statut=”o”,typ=”R”,max=1),

DA =SIMP(statut=”o”,typ=”R”,max=1),),

),

L’architecture des routines OP5901 et OP5902 est simple, et consiste à remplir la structure de données sd_compor, destinée à préparer les calculs. Pour cela, plusieurs informations sont déduites des données de l’utilisateur :

  • Pour le monocristal :

  • le nombre de systèmes de glissement, soit en faisant appel à la routine LCMMSG , qui définit les familles de systèmes de glissement pré-établies, soit en lisant la table fournie pour chaque famille (qui est elle-même stockée dans la sd_compor)

  • le nombre de variables internes qui se déduit du nombre de systèmes de glissements total, qui sera associé au comportement MONOCRISTAL dans COMPORTEMENT.

  • Pour le polycristal :

  • les différents monocristaux relatifs à chaque grain, avec la fraction volumique et l’orientation

  • le règle de localisation et ses paramètres.

  • Le nombre de variables internes total, déduit des monocristaux et du nombre de grains, qui sera associé au comportement POLYCRISTAL dans COMPORTMENT.

L’ajout d’un comportement cristallin se réduit donc, dans DEFI_COMPOR, à la modification du catalogue pour la partie MONOCRISTAL (pour la vérification syntaxique). L’ajout d’une famille de systèmes de glissement se traduit également pas une modification du catalogue de DEFI_COMPOR, avec d’éventuels blocs pour gérer les possibilités d’association entre lois d’écoulement et familles de systèmes de glissement.

Pour la partie POLYCRISTAL, l’ajout d’un comportement cristallin ne modifie pas le catalogue de DEFI_COMPOR, Une des seules modifications consisterait en l’ajout d’une règle de localisation.

On peut imprimer la structure de données produite à l’aide de IMPR_CO.

Architecture de l’intégration#

Catalogues#

Les lois de comportement cristallines sont utilisables dans C_COMPORTEMENT.capy via RELATION = “MONOCRISTAL” ou RELATION=”POLYCRISTAL”. Les données relatives aux lois cristallines spécifiques sotn quant à elle définies dans sd_compor, issue de DEFI_COMPOR et fournie sous le mot-clé COMPOR dans c_comportement.capy.

catapy.commun/c_comportement.capy

b_monox = BLOC(condition = « RELATION == “MONOCRISTAL” « ,

fr=tr(« SD issue de DEFI_COMPOR »),

COMPOR =SIMP(statut=”o”,typ=compor_sdaster,max=1),),

b_polyx = BLOC(condition = « RELATION == “POLYCRISTAL” « ,

fr=tr(« SD issue de DEFI_COMPOR »),

COMPOR =SIMP(statut=”o”,typ=compor_sdaster,max=1),),

Les catalogues des lois de comportement sont:

bibpyt/Comportement/monocristal.py

from cata_comportement import LoiComportement

loi = LoiComportement(

nom = “MONOCRISTAL”,

doc = « «  »Ce modèle permet de décrire le comportement d’un monocristal dont les relations de comportement sont fournies via le concept compor, issu de DEFI_COMPOR. Le nombre de variables internes est fonction des choix effectués dans DEFI_COMPOR ; pour plus de précisions voir [R5.03.11]. » » »,

num_lc = 32,

nb_vari = 0,

nom_vari = None,

mc_mater = None,

modelisation = (“3D”,”AXIS”,”D_PLAN”),

deformation = (“PETIT”, “PETIT_REAC”, “SIMO_MIEHE”),

nom_varc = (“TEMP”),

algo_inte = (“NEWTON”,”NEWTON_RELI”,”RUNGE_KUTTA”,”NEWTON_PERT”,),

type_matr_tang = (“PERTURBATION”, “VERIFICATION”),

proprietes = None, )

bibpyt/Comportement/polycristal.py

from cata_comportement import LoiComportement

loi = LoiComportement(

nom = “POLYCRISTAL”,

doc = » » »Comportement poly-cristallin homogénéisé, défini par DEFI_COMPOR » » »,

num_lc = 37,

nb_vari = 0,

nom_vari = None,

mc_mater = None,

modelisation = (“3D”,”AXIS”,”D_PLAN”),

deformation = (“PETIT”, “PETIT_REAC”, “GROT_GDEP”),

nom_varc = (“TEMP”),

algo_inte = (“RUNGE_KUTTA”),

type_matr_tang = (“PERTURBATION”, “VERIFICATION”),

proprietes = None, )

Routines d’intégration des lois#

L’intégration des lois de comportement cristallines se fait comme pour toutes les lois de comportement au niveau de chaque point d’intégration des éléments finis pour les options non linéaires (FULL_MECA, RAPH_MECA, RIGI_MECA_TANG).

La routine LC0032 (MONOCRISTAL) est appelée pour chaque point l’intégration par les routines suivantes:

  • si DEFORMATION=”PETIT” ou =”PETIT_REAC”:

  • en 3D: TE0139/NMPL3D/NMCOMP/REDECE/LC0000/ LC0032

  • en 2D: TE0100/NMPL2D/NMCOMP/REDECE/LC0000/ LC0032

  • si DEFORMATION=”SIMO_MIEHE” :

  • en 2D ou en 3D, NMPL2D ou NMPL3D sont remplacées par NMGPFI

La routine LC0032 fait appel suivant l’algorithme choisi, soit à PLASTI (intégration implicite par la méthode de Newton ou une variante) soit à NMVPRK (intégration par Runge-Kutta).

La routine LC0037 (POLYCRISTAL) est appelée pour chaque point l’intégration par les routines suivantes:

  • si DEFORMATION=”PETIT” ou =”PETIT_REAC”:

  • en 3D: TE0139/NMPL3D/NMCOMP/REDECE/LC0000/ LC0032

  • en 2D: TE0100/NMPL2D/NMCOMP/REDECE/LC0000/ LC0032

La routine LC0037 fait appel à NMVPRK (intégration par Runge-Kutta).

Récupération des coefficients matériau#

Quelque soit le type d’intégration choisi (implicite ou explicite) la récupération des caractéristiques matériau et comportement, issues de DEFI_MATERIAU et DEFI_COMPOR, se fait par l’intermédiaire de la routine LCMMAT, appelée par LCMATE, pour le MONOCRISTAL , et par la routine LCMMAP, appelée également par LCMATE, pour le POLYCRISTAL.

Ces routines ont plusieurs fonctions :

  • Récupération des valeurs des mot-clés définissant les paramètres, principalement à l’aide de la routine générale RCVALB, et stockage dans deux tableaux (différents seulement si les coefficients dépendent de la température) : MATERD définissant les paramètres à l’instant précédent, c’est à dire au début du pas de temps, et MATERF à l’instant actuel, donc à la fin du pas de temps). Ces tableaux permettent de passer les paramètres matériau aux routines de résolution ;

  • Lecture de la sd_compor (issue de DEFI_COMPOR) et stockage des informations (familles de systèmes de glissement, matrice d’interaction, …) dans des tableaux utilisés lors de la résolution.

Architecture de LCMMAT :

LCMMJV : lecture de la sd_compor issue de DEFI_COMPOR

pour chaque famille de systèmes :

LCMMSG fournit le nombre de systèmes de glissement

LCMMJS (si il s’agit d’une famille «utilisateur» )

LCMAFL récupère les coefficients matériau relatifs à l’écoulement

LCMHSR+LCMHDD : appel spécifique dans cette routine pour MONO_DD_KR

LCMAEC coefficients matériau relatifs à l’écrouissage cinématique,

LCMAEI coefficients matériau relatifs à l’écrouissage isotrope,

LCMHSR : calcul ou lecture de la matrice d’interaction

DMAT3D, D1MA3D : opérateur d’élasticité et son inverse

CALCMM LCMMSG.: calcul et stockage des tenseurs d’orientation de tous les systèmes, définis dans le repère global, pour optimiser les performances.

Dans le cas d’un nouveau comportement monocristallin, il suffit a priori d’intervenir dans les routines LCMAFL, LCMAEI et éventuellement LCMAEC, en ajoutant dans chacune de ces routines le bloc d’instructions nécessaires à la récupération des coefficients matériau de ce comportement.

Il convient également de lui attribuer un numéro : en effet, pour optimiser les performances, il est préférable de lire et comparer des entiers plutôt que ces chaînes de caractères ; dans les routines d’intégration, plutôt que de tester :

IF (NECOUL.EQ.”MONO_VISC1”) THEN..

on testera :

IF (NUCOUL.EQ.1) THEN….

La nomenclature des numéros de lois d’écoulement est définie dans LCMAFL:

Nom de la loi d’écoulement

Numéro associé

MONO_VISC1

1

MONO_VISC2

2

MONO_DD_KR

4

MONO_DD_CFC

5

MONO_DD_CFC_IRRA

8

MONO_DD_FAT

6

MONO_DD_CC

7

MONO_DD_CC_IRRA

7

Tableau 3.3-1

Les numéros de lois d’écrouissage isotrope sont définis dans LCMAEI:

Nom de la loi d’écoulement

Numéro associé

MONO_ISOT1

1

MONO_ISOT2

2

MONO_DD_CFC

3

MONO_DD_CFC_IRRA

8

MONO_DD_FAT

4

MONO_DD_CC

7

MONO_DD_CC_IRRA

7

Tableau 3.3-2

Les numéros de lois d’écrouissage isotrope sont définis dans LCMAEC:

Nom de la loi d’écoulement

Numéro associé

MONO_CINE1

1

MONO_CINE2

2

Tableau 3.3-3

Architecture de LCMMAP :

Lecture de la sd_compor de type polycristal

Pour chaque comportement monocristal (5 au maximum) utilisé par l’ensemble des grains

pour chaque famille de systèmes : lecture des caractéristiques comme LCMMAT

LCMMSG fournit le nombre de systèmes de glissement

LCMAFL récupère les coefficients matériau relatifs à l’écoulement

LCMAEC coefficients matériau relatifs à l’écrouissage cinématique,

LCMAEI coefficients matériau relatifs à l’écrouissage isotrope, et matrice d’interaction

DMAT3D, D1MA3D : opérateur d’élasticité et son inverse.

Stockage des informations relatives aux monocristaux utilisés pour chaque phase dans des tableaux spécifiques (nbcomm, coeft/materf,cpmono, décrits en fin de ce document).

Juste avant l’appel à la résolution explicite par Runge-Kutta (routine GERPAS), appel à la routine spécifique CALCMS permettant de stocker dans un unique tableau les systèmes de glissement relatifs à tous les grains, définis en repère global, pour optimiser les performances.

Intégration explicite – schéma de RUNGE - KUTTA#

Cas du monocristal :#

C’est la façon la plus rapide (mais moins optimale que l’intégration implicite, pour un système de quelques dizaines d’équations) d’introduire un nouveau comportement monocristallin en petites déformations : il suffit de d’écrire les dérivées des variables internes dans la routine LCMMON, appelée par RDIF01.

La routine LCMMONa pour but de calculer les dérivées des variables internes. On doit résoudre un système de \(6+3\times {n}_{s}\) équations différentielles, du type (cf. [R5.03.11]): \(\frac{\text{dY}}{\text{dt}}=F(Y,t)\) , où \(Y\) représente l’ensemble des variables internes: \(Y=\lbrace \begin{array}{c}{\alpha}_{s}\\ {\gamma}_{s}\\ {p}_{s}\\ {E}^{\mathit{vp}}\end{array}\)

Le système d’équations différentielles à résoudre est:

  • \(\dot{{\epsilon}^{\text{vp}}}=\sum_{s}{\mu}_{s}\dot{{\gamma}_{s}}\) 6 équations

  • pour chaque système de glissement (sur l’ensemble des familles de systèmes) 3 relations :

      • \(\dot{{\gamma}_{s}}=\dot{{p}_{s}}\left({\tau}_{s}(\sigma ),{\alpha}_{s},{\gamma}_{s},{R}_{s}(p)\right)\eta ({\tau}_{s},{\alpha}_{s})\)\(\eta ({\tau}_{s},{\alpha}_{s})=\pm 1\)

      • \(\dot{{\alpha}_{s}}=h({\tau}_{s},{\alpha}_{s},{\gamma}_{s},{p}_{s})\)

      • \({R}_{s}(p)\)

\({\tau}_{s}={\mu}_{s}:\sigma\)\(\sigma\) est déduite de la relation : \(\sigma =\Lambda (\varepsilon –{\varepsilon}^{\mathrm{vp}})\)

En pratique, la résolution s'effectue de la façon suivante :


La routine LCMMONcalcule les contraintes par la relation d'élasticité (isotrope ou orthotrope)


CALL CALSIG(...) ce qui fournit le tenseur SIG = :math:`\sigma`


Puis elle calcule les :math:`6+3\times {n}_{s}`dérivées issues des équations différentielles ci-dessus, et les stocke dans un tableau DVIN :
  • Boucle sur les familles de systèmes de glissement :

DO IFA=1,NBFSYS

…

Récupération du nombre de systèmes de glissement CALL LCMMSG(NOMFAM,NBSYS,0,PGL,MS,NG,LG,0,Q)

Boucle sur les systèmes de glissement de la famille IFA :

DO IS=1,NBSYS

CALL LCMMSG(..) relecture du tenseur d’orientation MuS

CALCUL DE LA CISSION REDUITE TAUS= SIG(I)*MuS(I) pour i=1,6 \({\tau}_{s}={\mu}_{s}:\sigma\)

CALL LCMMFI( => RP) routine de calcul de l’écrouissage isotrope:math:{R}_{s}(p)

CALL LCMMFE(=> DGAMMA, DP) routine de calcul de l’écoulement:math:dot{{gamma}_{s}},dot{{p}_{s}}

CALL LCMMEC( => DALPHA)routine de calcul de l’écrouissage cinématique \(\dot{{\alpha}_{s}}\)

Calcul de la déformation viscoplastique globale DO ITENS=1,6 DEVI(ITENS)=DEVI(ITENS)+MuS(ITENS)*DGAMMA \(\dot{{\varepsilon}^{\text{vp}}}=\sum_{s}{\mu}_{s}\dot{{\gamma}_{s}}\) ENDDO

stockage des dérivées des variables internes pour le système de glissement IS DVIN(NUVI-2)=DALPHA DVIN(NUVI-1)=DGAMMA DVIN(NUVI )=DP

ENDDO

ENDDO

stockage du tenseur dérivée de la déformation viscoplastique.

DO ITENS=1,6

DVIN(ITENS)= DEVI(ITENS)

ENDDO

L’algorithme de Runge-Kutta gère alors l’intégration de ces équations différentielles, en contrôlant l’erreur, et en raffinant le pas de temps jusqu’à obtenir une erreur inférieure à la précision demandée (RESI_INTE_RELA) [R5.03.14].

A priori, la structure de la routine LCMMON, ne doit pas évoluer lors de l’ajout d’un nouveau comportement monocristallin ; seules les routinesLCMMFI, LCMMFE et LCMMEC sont à modifier.

Elles sont construites de la façon suivante :

LCMMFI

C——————————————————————–

C POUR UN NOUVEAU TYPE D’ECROUISSAGE ISOTROPE, AJOUTER UN BLOC IF

C——————————————————————–

C IF (NECRIS.EQ.”MONO_ISOT1”) THEN

IF (NUEISO.EQ.1) THEN

……

RP=…

C ELSEIF (NECRIS.EQ.”MONO_ISOT2”) THEN

ELSEIF (NUEISO.EQ.2) THEN

…………

RP=…

C ELSEIF (NECRIS.EQ.”MONO_DD_CFC”) THEN

ELSEIF (NUEISO.EQ.3) THEN

……….

RP=MU*SQRT(RP)*CEFF

ENDIF

Remarque : on utilise ici les numéros associés à chaque type de comportement plutôt que les noms, pour optimiser les performances.

De même la structure de la routine LCMMFC est :

C———————————————————————-

C POUR UN NOUVEAU TYPE D’ECROUISSAGE CINEMATIQUE, AJOUTER UN BLOC IF

C———————————————————————-

C IF (NECRCI.EQ.”MONO_CINE1”) THEN

IF (NUECIN.EQ.1) THEN

DALPHA=…

C ELSEIF (NECRCI.EQ.”MONO_CINE2”) THEN

ELSEIF (NUECIN.EQ.2) THEN

ENDIF

Et de façon similaire, la structure de la routine LCMMFC est :

C————————————————————-

C POUR UN NOUVEAU TYPE D’ECOULEMENT, CREER UN BLOC IF

C————————————————————

C IF (NECOUL.EQ.”MONO_VISC1”) THEN

IF (NUECOU.EQ.1) THEN

DP=…

DGAMMA= …

ELSEIF (NUECOU.EQ.2) THEN

ENDIF

Remarque : Les routines LCMMFE, LCMMFI, LCMMFC sont également utilisées par l’intégration explicite du polycristal et par l’intégration implicite. Ceci simplifie la mise en œuvre d’un nouveau comportement cristallin.

Cas du polycristal :#

L’intégration du polycristal s’appuie largement sur celle du monocristal : on calcule là encore les dérivées des variables internes pour chaque monocristal de chaque grain \(g\) , dans la routine LCMMOP, appelée par RDIF01.

On doit résoudre un système de \(6+{n}_{g}(6+3\times {n}_{s}(g))\) équations différentielles, du type :

  • pour chaque grain défini par une orientation et une proportion \({f}_{g}\) , une relation de localisation des contraintes, de la forme générale :

\({\sigma}_{g}=L(\Sigma ,{E}^{\text{vp}},{\varepsilon}_{g}^{\text{vp}},{\beta}_{g})\) avec, \(\Sigma =\Lambda ({\Lambda}_{-}^{-1}){\Sigma}^{-}+\Lambda (\Delta E-\Delta {E}^{\text{th}}-\Delta {E}^{\text{vp}})\)

  • pour chacun des \({n}_{s}(g)\) systèmes de glissement de chaque grain \(g\) , 3 relations :

      • \(\dot{{\gamma}_{s}}=\dot{{p}_{s}}({\tau}_{s}(\sigma ),{\alpha}_{s},{\gamma}_{s},{R}_{s}(p))\eta ({\tau}_{s},{\alpha}_{s})\)\(\eta ({\tau}_{s},{\alpha}_{s})=\pm 1\)

      • \(\dot{{\alpha}_{s}}=h({\tau}_{s},{\alpha}_{s},{\gamma}_{s},{p}_{s})\)

      • \({R}_{s}(p)\)

  • à l’échelle du grain, lcalcul de la déformation plastique : \(\dot{{\varepsilon}_{g}^{\text{vp}}}=\sum_{s}{\mu}_{s}\dot{{\gamma}_{s}}\)

  • calcul de la déformation plastique macroscopique : \(\dot{{E}^{\text{vp}}}=\sum_{g}{f}_{g}\dot{{\epsilon}_{g}^{\text{vp}}}\)

En pratique, la résolution s'effectue de la façon suivante :


La routine LCMMOPcalcule les contraintes par la relation d'élasticité (isotrope ou orthotrope)

CALL CALSIG(...) ce qui fournit le tenseur SIG (:math:`\Sigma`)


Puis elle calcule les :math:`6+{n}_{g}(6+3\times {n}_{s}(g))`dérivées issues des équations différentielles ci-dessus, et les stocke dans un tableau DVIN :
  • Boucle sur les grains :

DO IGRAIN=1,NGRAIN

CALL LCLOCA() relation de localisation permettant de calculer SIGG :math:`({\sigma}_{g})`
  • Boucle sur les familles de systèmes de glissement :

DO IFA=1,NBFSYS

…

Récupération du nombre de systèmes de glissement CALL LCMMSG(…)

Boucle sur les systèmes de glissement de la famille IFA : DO IS=1,NBSYS

CALL LCMMSG(..) relecture du tenseur d’orientation MuS(IGRAIN, IS)

CALCUL DE LA CISSION REDUITE TAUS= SIGG(I)*MuS(I) pour i=1,6

CALL LCMMFI( => RP) routine de calcul de l’écrouissage isotrope

CALL LCMMFE(=> DGAMMA, DP) routine de calcul de l’écoulement

CALL LCMMEC( => DALPHA )routine de calcul de l’écrouissage cinématique

Calcul de la déformation viscoplastique globale DO ITENS=1,6

c DEVG(ITENS)=DEVG(ITENS)+MuS(ITENS)*DGAMMA \((\text{DEVG}={\varepsilon}_{g}^{\mathit{vp}})\)

ENDDO

stockage des dérivées des variables internes pour le système de glissement IS DVIN(NUVI-2)=DALPHA DVIN(NUVI-1)=DGAMMA DVIN(NUVI )=DP

ENDDO

ENDDO

homogénéisation des déformations viscoplastiques

DO I=1,6

DEVI(I)=DEVI(I)+FV*DEVG(I)

ENDDO

stockage du tenseur dérivée de la déformation viscoplastique.

DO ITENS=1,6

DVIN(ITENS)= DEVI(ITENS)

ENDDO

La septième variable interne contient la déformation viscoplastique équivalente cumulée

DVIN(7)= DVINEQ

L’algorithme de Runge-Kutta gère alors l’intégration de ces équations différentielles, en contrôlant l’erreur, et en raffinant le pas de temps jusqu’à obtenir une erreur inférieure à la précision demandée (RESI_INTE_RELA) [R5.03.14].

La structure de la routine LCMMOP, ne doit pas évoluer lors de l’ajout d’un nouveau comportement monocristallin ; seules les routinesLCMMFI, LCMMFE et LCMMEC sont à modifier (ce qui est déjà fait en principe pour l’intégration du monocristal). Une modification supplémentaire est à effectuer dans la routine LCLOCA lors de l’ajout d’une nouvelle règle de localisation. Enfin, pour certains post-traitements spécifiques au niveau du point d’intégration, il faut intervenir dans la routine LCDPEQ.

Intégration implicite du monocristal par Newton dans PLASTI#

On intègre cette fois le comportement monocristallin par une méthode de Newton. Cette méthode est programmée dans PLASTI [R5.03.14]. Il faut donc fournir à cet algorithme écrire le système d’équations à résoudre sous forme purement implicite, de la façon suivante : \(R(Y)=0\)

\(R(Y)=\lbrace \begin{array}{}{\Lambda}^{\text{-1}}\Sigma -({\Lambda}_{-}^{\text{- 1}}){\Sigma}^{-}-(\Delta E-\Delta {E}^{\text{th}}-\Delta {E}^{\text{vp}})\\ \Delta {E}^{\text{vp}}-{\sum}_{s}{\mu}_{s}\Delta {\gamma}_{s}\\ {n}_{s}\left\lbrace \begin{array}{}\Delta {\alpha}_{s}-h({\tau}_{s}^{+},{\alpha}_{s}^{+},{\gamma}_{s}^{+},{p}_{s}^{+})\\ \Delta {\gamma}_{s}-g({\tau}_{s}^{+},{\alpha}_{s}^{+},{\gamma}_{s}^{+},{p}_{s}^{+})\\ {\mathrm{\Delta p}}_{s}-f({\tau}_{s}^{+},{\alpha}_{s}^{+},{\gamma}_{s}^{+},{p}_{s}^{+})\end{array}\right\rbrace \end{array}=0\)

C’est un système de \(6+6+3{n}_{s}\) équations non linéaires (de même taille que celui qui est intégré par la méthode de Runge-Kutta en explicite). Mais ce n’est pas le système effectivement résolu: afin d’optimiser les performances, on résout en fait un système d’équations réduit, de taille \(6+{n}_{s}\) , construit de la façon suivante [R5.03.11] :

  • Dans l’expression des 6 composantes du tenseur des contraintes, \(\Delta {E}^{\text{vp}}\) peut être exprimée en fonction de \(\sum_{s}{\mu}_{s}\Delta {\gamma}_{s}\) donc 6 équations peuvent être éliminées du système global à résoudre.

  • Comme \(\Delta {p}_{s}=\mid \Delta {\gamma}_{s}\mid\) , l’équation en \(\Delta {p}_{s}\) peut être éliminée

  • pour tous les comportements cristallins considérés actuellement, soit \(\Delta {\alpha}_{s}\) s’exprime directement en fonction de \(\Delta {\gamma}_{s}\) , dans le cas de l’écrouissage cinématique, soit \(\Delta {\gamma}_{s}\) s’exprime en fonction de \(\Delta {\alpha}_{s}\) qui représente alors la densité de dislocation (à un facteur près) pour les comportements de type MONO_DD_*. Il y a donc une seule inconnue par système de glissement: \(\Delta {\beta}_{s}\) , qui représente soit \(\Delta {\gamma}_{s}\) , soit \(\Delta {\alpha}_{s}\)

On obtient donc le système suivant :

  • Petites déformations:

\(\begin{array}{}{R}_{1}(\sigma ,\Delta \beta )={\Lambda}^{\text{-1}}.\Delta \sigma -\Delta \varepsilon +\Delta {\varepsilon}^{\mathrm{th}}+\sum_{s}\Delta {\gamma}_{s}{\mu}_{s}=0\\ {R}_{2}(\sigma ,\Delta \beta )=\Delta {\beta}_{s}-{k}_{s}({\tau}_{s}(\sigma ),\Delta \beta )=0\text{}\end{array}\) où l’inconnue est : \(Y=\left[\begin{array}{c}\sigma \\ \Delta \beta \end{array}\right]\)

avec \({\tau}_{s}(\sigma )=\sigma :{\mu}_{s}\)

  • Grandes déformations

\(\begin{array}{}{R}_{1}(S,\Delta \beta )={\Lambda}^{\text{-1}}.S-\frac{1}{2}({F}^{\text{eT}}{F}^{\text{e}}-{I}_{d})=0\\ {R}_{2}(S,\Delta \beta )=\Delta {\beta}_{s}-{k}_{s}({\tau}_{s}(S),\Delta \beta )=0\text{}\end{array}\) où l’inconnue est : \(Y=\left[\begin{array}{c}S\\ \Delta \beta \end{array}\right]\)

avec \({\tau}_{s}(S)=\left[(2{\Lambda}^{\text{-1}}S+{I}_{d})S\right]:{m}_{s}\otimes {n}_{s}\) et \({F}_{n+1}^{e}=\Delta F{F}_{n}^{e}{(\Delta {F}^{p}(\Delta {\gamma}_{s}))}^{\text{-1}}\)

Et, suivant le comportement considéré,

  • \(\Delta {\gamma}_{s}=\Delta {p}_{s}({\tau}_{s},\Delta {\beta}_{s}){\xi}_{s}\) et \({\xi}_{s}=\frac{{\tau}_{s}}{∣{\tau}_{s}∣}\mathrm{ou}\frac{{\tau}_{s}-f(\alpha )}{∣{\tau}_{s}-f(\alpha )∣}\) correspond au signe de l’écoulement

  • \(\Delta {\beta}_{s}\) représente soit l’incrément de glissement plastique \(\Delta {\gamma}_{s}\) , pour les lois MONO_VISC* , soit la variation de densité de dislocations \(\Delta {\omega}_{s}\) pour les lois MONO_DD_*

Remarque : l’extraction des inconnues du système à partir des variables internes (qui restent au nombre de 3 par système de glissement) se fait dans la routine LCAFYD. Inversement, après la résolution par NEWTON, le calcul des 3 variables internes par système de glissement en fonction de la variable principale utilisée dans la résolution se fait dans la routine LCPLNF.

La forme générale de l’algorithme résolu par Newton est

\({Y}_{k+1}={Y}_{k}-(\frac{\text{dR}}{{\text{dY}}_{k}}{)}^{-1}R({Y}_{k})\)

Il faut donc définir les valeurs initiales \(\Delta {Y}_{0}\) (0 par défaut, dans la routine LCMMIN), et calculer le résidu \({Y}_{k}\) ,ainsi que lamatrice jacobienne du système: \(\frac{\text{dR}}{{\text{dY}}_{k}}\)

Architecture générale de PLASTI:#

L’algorithme de Newton utilisé dans PLASTI est décrit en [R5.03.14].

Lecture des coefficients matériau et stockage dans les objets NBCOMM, MATERF/MATERD, CPMONO

CALL LCMATE => LCMMAT, identique à RUNGE_KUTTA
Prédiction élastique

CALL LCELAS

Calcul du SEUIL

CALL LCCNVX => routine LCMMVX évaluation du seuil pour MONOCRISTAL.


Calcul de la solution élasto-visco-plastique par la méthode de Newton :

IF ( SEUIL .GE. 0.D0 ) THEN

CALL LCPLAS / CALL LCPLNL

ENDIF


Calcul de l'opérateur tangent :

IF ( OPT .EQ. 'RIGI_MECA_TANG' .OR. OPT .EQ. 'FULL_MECA' ) THEN

CALL LCJPLC => CALL LCMMJP

ENDIF

Remarque : L’opérateur tangent est calculé automatiquement en fonction de la matrice jacobienne du système d’équations local [R5.03.11]. Ceci est réalisé en petites et en grandes déformations dans la routine LCMMJP. Il n’y a donc a priori rien à modifier pour ce calcul lors de l’ajout d’un nouveau comportement cristallin.


La routine LCCNVX permet de détecter si le seuil est franchi pour au moins un système de glissement. Elle appelle dans le cas du monocristal la routine LCMMVX . Sa structure est la suivante :

SEUIL=0.D0

DO IFA=1,NBFSYS

DO IS=1,NBSYS

CALL LCMMFI

C ECOULEMENT VISCOPLASTIQUE

CALL LCMMFE => DP calculé à partir de la prédiction élastique

IF (DP.GT.0.D0) SEUIL=1.D0

ENDDO

ENDDO

On utilise donc les mêmes routines LCMMFE et LCMMFI que pour l’intégration explicite et implicite.

La routine LCPLNL réalise la boucle de Newton . Sa structure (générique à l’ensemble des lois de comportement sous PLASTI) est la suivante :

LCPLNL

    • LCAFYD(extraction des variables internes utiles au système réduit)

    • LCINIT=> LCMMIN: initialisation de \(\Delta {Y}_{0}\) , 0 par défaut

    • LCRESI=> LCMMRE: calcul du résidu

    • Soit LCJACB=> LCMMJA : calcul de la matrice jacobienne

      • Soit (si ALGO_INTE=NEWTON_PERT) LCJACPcalcul de la matrice jacobienne par perturbation, qui appelle LCRESI

    • MGAUSSrésolution

    • LCRELIrecherche linéaire (si ALGO_INTE=NEWTON_RELI), qui appelleLCRESI…

    • LCCONV=> LCMMCVcritère de convergence

    • LCPLNF=> LCDPECcalcul des toutes les variables internes.

Calcul du résidu#

La routine LCMMRE calcule le résidu. Sa structure est la suivante :

DO IFA=1,NBFSYS

DO IS=1,NBSYS

CALTAUcalcul de \({\tau}_{s}\) (petites ou grandes déformations)

LCMMLCcalcule des quantités relatives au système de glissement :

CALL LCMMFI( => RP)        routine de calcul de l'écrouissage isotrope

CALL LCMMFE( => DGAMMA, DP)        routine de calcul de l'écoulement

CALL LCMMEC( => DALPHA )routine de calcul de l'écrouissage cinématique

calcul de :math:`{k}_{s}`et stockage dans :math:`{R}_{2}(\sigma ,\Delta \beta )=\Delta {\beta}_{s}-{k}_{s}({\tau}_{s}(\sigma ),\Delta \beta )`


En petites déformations: déformation viscoplastique globale

DO ITENS=1,6

DEVI(ITENS)=DEVI(ITENS)+MuS(ITENS)*DGAMMA

ENDDO

En grandes déformations, calcul des termes nécessaires à :math:`\Delta {F}^{p}(\Delta {\gamma}_{s})`

ENDDO

ENDDO

  • en petites déformations, calcul de \({R}_{1}(\sigma ,\Delta \beta )={\Lambda}^{\text{-1}}.\Delta \sigma -\Delta \varepsilon +\Delta {\varepsilon}^{\mathrm{th}}+\sum_{s}\Delta {\gamma}_{s}{\mu}_{s}=0\)

  • en grandes déformations

CALCFEcalcul de \({F}_{n+1}^{e}=\Delta F{F}_{n}^{e}{(\Delta {F}^{p}(\Delta {\gamma}_{s}))}^{\text{-1}}\)

LCGRLAcalcul de \({E}_{\mathrm{GL}}^{e}=\frac{1}{2}({{F}^{e}}^{T}{F}^{e}–{I}_{d})\) \(S=\Lambda :{E}_{\mathrm{GL}}^{e}\)

et \({R}_{1}(S,\Delta \beta )={\Lambda}^{\text{-1}}.S-\frac{1}{2}({F}^{\text{eT}}{F}^{\text{e}}-{I}_{d})\)

On constate donc que l’on utilise là encore les même routines que pour l’intégration explicite : LCMMFI, LCMMFE, LCMMEC sont a priori les seules routines à modifier lors de l’ajout d’un comportement, que ce soit en petites ou en grandes déformations, pour le calcul du résidu, lors de l’intégration implicite.

Calcul de la matrice jacobienne#

La routine LCMMJAcalcule la matrice jacobienne (sauf si ALGO_INTE=”NEWTON_PERT”).

Sa structure est la suivante :

DO IFA=1,NBFSYS

DO IS=1,NBSYS

LCMMJB: calcul des termes dérivés

LCMMJ2: calcul des termes dérivés pour MONO_DD_KR

LCMMJD: calcul des termes dérivés pour MONO_DD_CFC, MONO_DD_CC(plus _IRRA)

LCMMJ1: calcul des termes dérivés pour MONO_VISC1, MONO_VISC2

ENDDO

ENDDO

Les dérivées de ces équations pour le calcul de la matrice jacobienne peuvent être écrites de façon générale :

HPP

GDEF

\({J}_{11}=\frac{\partial {R}_{1}{(\sigma ,\Delta \beta )}_{i}}{\partial {\sigma}_{j}}\)

\({J}_{12}=\frac{\partial {R}_{1}{(\sigma ,\Delta \beta )}_{i}}{\partial {\beta}_{s}}\)

\({J}_{11}=\frac{\partial {R}_{1}{(S,\Delta \beta )}_{i}}{\partial {S}_{j}}\)

\({J}_{12}=\frac{\partial {R}_{1}{(S,\Delta \beta )}_{i}}{\partial {\beta}_{s}}\)

\({J}_{21}=\frac{\partial {R}_{2}{(\sigma ,\Delta \beta )}_{s}}{\partial {\sigma}_{i}}\)

\({J}_{22}=\frac{\partial {R}_{2}{(\sigma ,\Delta \beta )}_{s}}{\partial {\beta}_{r}}\)

\({J}_{21}=\frac{\partial {R}_{2}{(S,\Delta \beta )}_{s}}{\partial {S}_{i}}\)

\({J}_{22}=\frac{\partial {R}_{2}{(S,\Delta \beta )}_{s}}{\partial {\beta}_{r}}\)

Tableau 3.5.3-1

Les termes intervenant dans chaque sous-matrice ont en commun des termes spécifiques à chaque comportement, qui sont calculés dans les routines LCMMJ* [R5,03,11 annexe 5] :

  • \(\frac{\partial \Delta {\gamma}_{s}}{\partial {\tau}_{s}}=\frac{\partial \Delta {p}_{s}}{\partial {\tau}_{s}}{\xi}_{s}\) ,

  • \(\frac{\partial \Delta {\gamma}_{r}}{\partial \Delta {\beta}_{s}}=\frac{\partial \Delta {p}_{r}}{\partial \Delta {\beta}_{s}}{\xi}_{r}\) ,

  • \(\frac{\partial {k}_{s}}{\partial {\tau}_{s}}\)

  • \(\frac{\partial {k}_{r}}{\partial \Delta {\beta}_{s}}\)

Dans le cas d’un nouveau comportement, il faut donc soit ajouter le calcul de ces termes dérivés dans une routine LCMMJ* existante, soit en ajouter une nouvelle.

Remarque : pour un premier test, on peut se passer du calcul de la matrice jacobienne, en utilisant la construction automatique de la matrice jacobienne (par perturbation, ALGO_INTE=”NEWTON_PERT”). De ce fait, il est très rapide d’introduire un nouveau comportement cristallin dans l’environnement PLASTI: il suffit de calculer le résidu dans la routine LCMMRE, appelée par LCRESI. Par contre, le temps calcul ne sera optimisé qu’avec une matrice jacobienne programmée.

Critère de convergence et post-traitements#

Le critère de convergence est générique a priori, et ne dépend pas du comportement, mais peut être éventuellement modifié :

    • LCCONV=> LCMMCVcritère de convergence

La dernière routine à modifier (éventuellement, si on veut calculer et ajouter aux variables internes en sortie des valeurs utiles au post-traitement) est :

    • LCPLNF=> LCDPECqui recalcule toutes les variables internes à partir de la solution du système réduit. Elle fait appel encore une fois à la routine de comportement LCMMLC.

Objets internes pour le stockage des informations#

L a lecture des coefficients matériauest effectuée une seule fois par point d’intégration dans les routines LCMMAT / LCMMAP. Les quantités lues (ou calculées, dans la cas des tenseurs d’orientation) doivent être transmises aux routines d’intégration. Pour cela on utilise des tableaux spécifiques: nbcomm, coeft/materf,cpmono, toutms…)

Dans le cas du monocristal :#

Stockage des informations relatives aux monocristal dans des tableaux spécifiques (nbcomm, coeft/materf, materd,cpmono,).

MATERF : coefficients matériau a t+dt

mater(*,1) = caractéristiques élastiques

mater(*,2) = caractéristiques plastiques

MATERD : coefficients matériau à t

NBCOMM(*,3) : POSITION DES COEF POUR CHAQUE SYSTEME

tableau d’entiers

Colonne 1 Colonne 2 Colonne3


Ligne 1 1 Nb var.int. Nb monocristaux

pour chaque famille de systèmes de glissement :

famille 1 ind coef ind coef ind coef

ecoulement ecr iso ecr cin


ind signifie l’indice dans MATERF/MATERD(*,2)

dernière ligne: nb de familles

CPMONO : tableau de chaînes de caractères, copie de l’objet sd_compor.CPRK

par famille de systèmes de glissement

Nom de la famille

Nom du matériau

Nom de la loi d’écoulement

Nom de la loi d’écrouissage isotrope

Nom de la loi d’écrouissage cinématique

TOUTMS tableau réel de dimension (Nombre de familles, nombre de systèmes, 6) contenant tous les tenseurs mus=sym(ms*ns) en hpp, et tous les vecteurs ms et ns en grandes déformations.

Dans le cas du polycristal :#

STRUCTURE DES OBJETS CRÉES

COEFT(*) : tableau de réels

Nombre de monocristaux

indice (dans COEFT) du début du premier monocristal

indice début deuxième monocristal

….

indice début dernier monocristal

indice des paramètres de localisation

Fv et 3 angles par phase

pour chaque monocristal différent

par famille de système de glissement

nb coef écoulement

numéo de la loi d’écoulement + coef,

nb coef écrou isot + num_loi + coef,

nb coef ecou cine + num_loi + coef

puis les paramètres de la loi de localisation

CPMONO(*) : tableau de chaînes de caractères

nom de la méthode de localisation

puis, pour chaque matériau différent

nom du monocristal, nombre de familles SG, et,

par famille de systèmes de glissement

Nom de la famille

Nom du matériau

Nom de la loi d’éécoulement

Nom de la loi d’écrouissage isotrope

Nom de la loi d’écrouissage cinématique

Nom de la loi d’élasticité (ELAS ou ELAS_ORTH)

NBCOMM(*,3) : tableau d’entiers

Colonne 1 Colonne 2 Colonne3


Ligne 1 Nb phases Nb var.int. Nb monocristaux

différents

pour chaque phase g Num ligne g Ind CPMONO ind frac vol



pour chaque phase

pour la localisation indice coef nb param 0

phase g nb fam g 0 NVIg

… et pour chaque famille de systèmes de glissement :

famille 1 ind coef ind coef ind coef

ecoulement ecr iso ecr cin


(ind signifie l’indice dans COEFT(*)

TOUTMS : TOUS LES TENSEURS D’ORIENTATION POUR TOUS LES SYSTEMES DE GLISSEMENT DE TOUS LES MONOCRISTAUX.