Welcome to the forums. Please post in English or French.

You are not logged in.

#1 2017-12-20 15:11:40

Groguiguy
Member
From: Centrale Lille
Registered: 2017-11-07
Posts: 94

[RESOLU] Simuler un problème multi-matériaux

Bonjour à tous,

Décidément je pose beaucoup de questions sans aider ici, j'en suis désolé et j'espère que cela changera.

Je souhaite affecter différents matériaux à mon problème, mais je ne sais pas comment faire, alors voici mon .comm actuel :

mater = DEFI_MATERIAU(ELAS_HYPER=_F(C01=0, C10=10000, K=10000000.0))
mater2 = DEFI_MATERIAU(ELAS=_F(E=1.0, NU=0.2))

fieldmat = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ), GROUP_MA=('Vessie','Vagin','Rectum')), MAILLAGE=mesh)
fieldma2 = AFFE_MATERIAU(AFFE=_F(MATER=(mater2, ), GROUP_MA=('Graisse','Urine','Selles')), MAILLAGE=mesh)

times = DEFI_LIST_INST(DEFI_LIST=_F(VALE=(0.0,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0)),
                       METHODE='AUTO',
                       ECHEC=_F(EVENEMENT='ERREUR',
                                ACTION='DECOUPE'),
                       ADAPTATION=_F(EVENEMENT='SEUIL',
                                     NOM_PARA='NB_ITER_NEWTON',
                                     NB_INCR_SEUIL=2))

Encastr1 = AFFE_CHAR_MECA(
    ARETE_IMPO=_F(
        DX=0.0,
        DY=0.0,
        DZ=0.0,
        GROUP_MA=('Group_9', 'Group_10', 'Group_11', 'Group_12')),
    MODELE=model)

Encastr2 = AFFE_CHAR_MECA(
    FACE_IMPO=_F(
        DZ=0.0,
        GROUP_MA=('Group_7','Group_8')),
    MODELE=model)
   
Pression = AFFE_CHAR_MECA(
    PRES_REP=_F(
        PRES=1000,
        GROUP_MA=('Group_5','Group_6')),
    MODELE=model)

resnonl = STAT_NON_LINE(CHAM_MATER=fieldmat,
                          MODELE=model,
                          EXCIT=(_F(CHARGE=Pression,
                                    TYPE_CHARGE='FIXE_CSTE',),
                                 _F(CHARGE=Encastr1,
                                    TYPE_CHARGE='FIXE_CSTE',),
                                 _F(CHARGE=Encastr2,
                                    TYPE_CHARGE='FIXE_CSTE',),),

La définition des matériaux (mater et mater2) ne me pose pas de problème, tout comme l'affectation à différents volumes/organes. De même pour les chargements qui utilisent des Group_ du maillage. Mais je ne sais pas comment ajouter fieldma2 dans la resnonl?
Dois je créer une autre variable resnonl2 pour mater2 et fieldma2? Comme ce sont des matériaux linéaires, dois créer une variable reslin à la place?

Last edited by Groguiguy (2017-12-20 16:09:34)

Offline

#2 2017-12-20 15:24:06

Loïc Liaigre
Member
Registered: 2017-08-25
Posts: 4

Re: [RESOLU] Simuler un problème multi-matériaux

Bonjour,

sauf erreur de ma part, vous pouvez écrire votre champ matériau comme ceci :

fieldmat=AFFE_MATERIAU(
	MAILLAGE=mesh,
	AFFE=(
		_F(GROUP_MA=('Vessie','Vagin','Rectum'),MATER=mater,),
		_F(GROUP_MA=('Graisse','Urine','Selles'),MATER=mater2,),
	),
);

Et donc utiliser un seul champ matériau dans le STAT_NON_LINE.

Loïc Liaigre

Offline

#3 2017-12-20 15:46:52

Groguiguy
Member
From: Centrale Lille
Registered: 2017-11-07
Posts: 94

Re: [RESOLU] Simuler un problème multi-matériaux

Oui effectivement, mais dans ce cas le message d'erreur devient :

comportement :ELAS_HYPER non trouvé

Puisque mon "comportement" est défini comme tel :

resnonl = STAT_NON_LINE(CHAM_MATER=fieldmat,
                          MODELE=model,
                          EXCIT=(_F(CHARGE=Pression,
                                    TYPE_CHARGE='FIXE_CSTE',),
                                 _F(CHARGE=Encastr1,
                                    TYPE_CHARGE='FIXE_CSTE',),
                                 _F(CHARGE=Encastr2,
                                    TYPE_CHARGE='FIXE_CSTE',),),
                          INCREMENT=_F(LIST_INST=times,
                                       INST_INIT=0.1,
                                       INST_FIN=1.0,
                                       PRECISION=1.E-06,),
                          COMPORTEMENT=_F(DEFORMATION='GROT_GDEP',
                                          RELATION=('ELAS_HYPER'),
                                          TOUT='OUI',
                                          ITER_INTE_MAXI=10,
                                          RESI_INTE_RELA=1.E-06,
                                          ITER_INTE_PAS=0,
                                          RESI_CPLAN_RELA=1.E-06,
                                          PARM_THETA=1.0,
                                          SYME_MATR_TANG='OUI',
                                          ITER_CPLAN_MAXI=1,
                                          PARM_ALPHA=1.0,),

Ici dans RELATION c'est bien 'ELAS_HYPER' que j'ai mis. Or il faudrait que je puisse aussi mettre 'ELAS' dans ce comportement.

EDIT : quoique en enlevant le "oui" à "TOUT", je peux peut être créer deux comportements.

RE-EDIT : effectivement, je viens de vérifier, et en créant un autre "COMPORTEMENT", cela semble marcher. Merci.

Last edited by Groguiguy (2017-12-20 16:09:08)

Offline