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.