2. Architecture of DEFI_COMPOR#

2.1. Illustration on an example: test SSNV194#

Let’s start with an example (ssnv194 test).

2.1.1. Modeling A: a small aggregate comprising 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,

),)

2.1.2. B and C models: polycrystal comprising 10 grains:#

A hardware point, 10 grains with identical volume fractions \((0.1)\), and orientations similar to those of modeling A (which makes it possible to find the same average solution):

MONO1 = DEFI_COMPOR (MONOCRISTAL =(… same as modeling 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,);

Modeling B: (mesh with only one element)

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

),),);

C modeling: (hardware point)

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 =…

);

2.2. Description of DEFI_COMPOR#

2.2.1. Structure:#

The aim of routine OP0050 is to produce the data structure described in [D4.06.24]: the objects composing this SD are different depending on whether one treats a single crystal (routine OP5901) or a polycrystal (routine OP5902).

2.2.2. Addition of crystalline behavior to the catalog of DEFI_MATERIAU/DEFI_COMPOR#

If the new crystalline behavior uses material parameters different from those already available in the keywords MONO_of DEFI_MATERIAU, it suffices to introduce these new behavior parameters, either under a single keyword (case of behaviors MONO_DD_*), or by separating the coefficients relating to isotropic work hardening, kinematic work hardening, and flow (cf. MONO_ISOT *, MONO_CINE, MONO_VISC *,). These parameters will be used in the integration (routines LCMMAT, LCMMAP), and the corresponding factor keywords will be used in DEFI_COMPOR.

Example: catalog of DEFI_MATERIAU

MONO_DD_CFC = FACT (status='f',

rules =( UN_PARMI ('H', 'H1'),

PRESENT_PRESENT (“H1”, “H2”, “H2”, “H3”, “H4”, “H5”), PRESENT_ABSENT (“H”, “H1”, “H2”, “H2”, “H3”, “H4”, “H5”),),

GAMMA0 = SIMP (status=”f”, typ=”R”, default=0.001, units: s**-1 »),

TAU_F = SIMP (status=”O”, typ=”R”, fr= »in a unit of constraints ex 20 MPa « ),

A = SIMP (status=”f”, typ=”R”, default=0.13, fr= »parameter A, unit-less »),

B = SIMP (status=”f”, typ=”R”, default=0.005, en= »parameter B, unit-less »),

N = SIMP (status=”f”, typ=”R”, default=200. , fr= »parameter n, without units »),

Y = SIMP (status=”O”, typ=”R”, fr= »in unit of length ex 2.5 A »),

ALPHA = SIMP (status=”f”, typ=”R”, default=0.35, fr= »alpha parameter »),

BETA = SIMP (status=”o”, typ=”R”, fr= »parameter b, in unit of length »),

… ),

This makes it possible to describe each coefficient, its optional nature (with a possible value by default) or mandatory (for more details, refer to [D5.01.01]).

Depending on the case, the catalog of DEFI_COMPOR is:

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

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

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

“MONO_DD_CFC”, “MONO_DD_CC”, … ),

en= »viscoplastic flow type »),

ELAS = SIMP (status=”f”, typ=” TXM “,),

# case of a MONO_VISC behavior*

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

or ECOULEMENT ==” MONO_VISC2 “,

ECRO_ISOT = SIMP (status=”f”, typ=” TXM “, max=1,

en= »Give the type of isotropic work hardening »),

ECRO_CINE = SIMP (status=”f”, typ=” TXM “, max=1,

en= »Give type of kinematic work hardening »),

FAMI_SYST_GLIS = SIMP (status=”f”, typ=” TXM “,

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

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

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

TABL_SYST_GLIS = SIMP (status=”f”, typ=table_saster,),),),

# case of DD-like behavior

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

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

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

TABL_SYST_GLIS = SIMP (status=”f”, typ=table_saster),),),),

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

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

default=” NON “, fr= »network rotation: NON, POST, CALC « ),

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

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

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

FRAC_VOL = SIMP (status=”O”, typ=”R”, fr= »volume fraction »),

ANGL_REP = SIMP (status=”f”, typ=”R”, max=3, fr= »nautical angles in degrees »),

ANGL_EULER = SIMP (status=”f”, typ=”R”, max=3, fr= »Euler angles in degrees »),

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

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

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

fr=tr (« Give the name of the location rule »)),

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

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

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

),

The architecture of routines OP5901 and OP5902 is simple, and consists in filling in the sd_compor data structure, intended to prepare the calculations. To do this, several pieces of information are deduced from the user’s data:

  • For single crystal:

the number of sliding systems, either by using the routine* LCMMSG ****, which defines the families of pre-established sliding systems, or by reading the table provided for each family (which is itself stored in the sd_compor)

  • the number of internal variables that can be deduced from the total number of sliding systems, which will be associated with behavior MONOCRISTAL in COMPORTEMENT.

  • For polycrystal:

  • the different monocrystals relating to each grain, with the volume fraction and the orientation

  • the location rule and its settings.

  • The total number of internal variables, deduced from the single crystals and the number of grains, which will be associated with behavior POLYCRISTAL in COMPORTMENT.

The addition of crystal-clear behavior is therefore reduced, in DEFI_COMPOR, to modifying the catalog for part MONOCRISTAL (for syntactic verification). The addition of a family of sliding systems also means a modification of the DEFI_COMPOR catalog, with possible blocks to manage the possibilities of association between flow laws and families of sliding systems.

For part POLYCRISTAL, adding crystal-clear behavior does not change the DEFI_COMPOR catalog, one of the only changes would be the addition of a location rule.

You can print the data structure produced using IMPR_CO.