# Hyper-elastic Non-Linear Problem

Dear Team,
I am solving a problem in hyper-elastic area with Mooney-Rivlin constants. When i am applying the torque of 1 kNm its working fine, but applying 10 kNm its going to be diverge. How to over come this problem.

Hello @duraisamy,
can you share a link to your project? With this little information it is impossible to tell what the problem might be.

Best,
Richard

Hi @rszoeke
DEBUT();

ST=LIRE_MAILLAGE(UNITE=20, FORMAT=âMEDâ,);

RT=LIRE_MAILLAGE(UNITE=21, FORMAT=âMEDâ,);

MS1=LIRE_MAILLAGE(UNITE=22, FORMAT=âMEDâ,);

MS2=LIRE_MAILLAGE(UNITE=23, FORMAT=âMEDâ,);

RB=LIRE_MAILLAGE(UNITE=24, FORMAT=âMEDâ,);

SB=LIRE_MAILLAGE(UNITE=25, FORMAT=âMEDâ,);

mesh1=ASSE_MAILLAGE(MAILLAGE_1=ST, MAILLAGE_2=RT, OPERATION=âSUPERPOSEâ,);

mesh2=ASSE_MAILLAGE(MAILLAGE_1=mesh1, MAILLAGE_2=MS1, OPERATION=âSUPERPOSEâ,);

mesh3=ASSE_MAILLAGE(MAILLAGE_1=mesh2, MAILLAGE_2=MS2, OPERATION=âSUPERPOSEâ,);

mesh4=ASSE_MAILLAGE(MAILLAGE_1=mesh3, MAILLAGE_2=RB, OPERATION=âSUPERPOSEâ,);

mesh5=ASSE_MAILLAGE(MAILLAGE_1=mesh4, MAILLAGE_2=SB, OPERATION=âSUPERPOSEâ,);

mesh=CREA_MAILLAGE(MAILLAGE=mesh5,

mesh=DEFI_GROUP(MAILLAGE=mesh,CREA_GROUP_NO=_F(TOUT_GROUP_MA=âOUIâ,),reuse=mesh,);

model=AFFE_MODELE(MAILLAGE=mesh, AFFE=(_F(TOUT=âOUIâ, PHENOMENE=âMECANIQUEâ, MODELISATION=â3Dâ,),

CS=DEFI_MATERIAU(ELAS=_F(E=2e11, NU=0.3, RHO=7860,),);

C10 = 3.8E6;
C01 = -2.95E6;
C20 = 0.0;
NU = 0.499;
K = ((6 * (C10 + C01)) / (3 * (1 - (2 * NU))));

rubber=DEFI_MATERIAU(ELAS_HYPER=_F(C10=C10,
C01=C01,
C20=C20,
K=K,
RHO=1091.0,),);

# U4.43.03

material=AFFE_MATERIAU(MAILLAGE=mesh, AFFE=(_F(GROUP_MA=(âsteel_top_Vâ,âmiddle_steel_1â,âmiddle_steel_2â,âsteel_bot_Vâ,), MATER=CS,),
_F(GROUP_MA=(âRubber_top_Vâ,âRubber_bot_Vâ,), MATER=rubber,),),);

fixed=AFFE_CHAR_MECA(MODELE=model, DDL_IMPO=_F(GROUP_MA=(âFix_1â,),DX=0,DY=0,DZ=0,),);

CARA=AFFE_CARA_ELEM(MODELE=model,
DISCRET=_F(CARA=âK_TR_D_Nâ,
VALE=(0.1,0.1,0.1,0.1,0.1,0.1,),),);

# glue contacts

c1=AFFE_CHAR_MECA(MODELE=model, LIAISON_MAIL=(
_F(GROUP_MA_MAIT=âsteel_top_Vâ, GROUP_MA_ESCL=âRT_stâ, TYPE_RACCORD=âMASSIFâ,),),);

c2=AFFE_CHAR_MECA(MODELE=model, LIAISON_MAIL=(
_F(GROUP_MA_MAIT=âmiddle_steel_1â, GROUP_MA_ESCL=âRT_msâ, TYPE_RACCORD=âMASSIFâ,),),);

c3=AFFE_CHAR_MECA(MODELE=model, LIAISON_MAIL=(
_F(GROUP_MA_MAIT=âmiddle_steel_1â, GROUP_MA_ESCL=âmid_2â, TYPE_RACCORD=âMASSIFâ,),),);

c4=AFFE_CHAR_MECA(MODELE=model, LIAISON_MAIL=(
_F(GROUP_MA_MAIT=âmiddle_steel_2â, GROUP_MA_ESCL=âRB_msâ, TYPE_RACCORD=âMASSIFâ,),),);

c5=AFFE_CHAR_MECA(MODELE=model, LIAISON_MAIL=(
_F(GROUP_MA_MAIT=âsteel_bot_Vâ, GROUP_MA_ESCL=âRB_stâ, TYPE_RACCORD=âMASSIFâ,),),);

# time steps

step1=DEFI_LIST_REEL(DEBUT=0, INTERVALLE=_F(JUSQU_A=1.0, PAS=0.1,),);

step=DEFI_LIST_INST(DEFI_LIST=_F(METHODE=âAUTOâ, LIST_INST=step1,),);

RESU=STAT_NON_LINE(MODELE=model,
CARA_ELEM=CARA,
CHAM_MATER=material,
EXCIT=(_F(CHARGE=fixed,),
_F(CHARGE=c1,),
_F(CHARGE=c2,),
_F(CHARGE=c3,),
_F(CHARGE=c4,),
_F(CHARGE=c5,),),
INCREMENT=_F(LIST_INST=step,),NEWTON=_F( REAC_INCR=1, MATRICE= âTANGENTEâ, REAC_ITER=1,),
CONVERGENCE=_F(ITER_GLOB_MAXI=500,RESI_GLOB_RELA=1e-05,),
COMPORTEMENT=(_F(GROUP_MA=(âRubber_top_Vâ,âRubber_bot_Vâ),RELATION=âELAS_HYPERâ,DEFORMATION=âGROT_GDEPâ,),
_F(GROUP_MA=(âsteel_top_Vâ,âmiddle_steel_1â,âmiddle_steel_2â,âsteel_bot_Vâ,),RELATION=âELASâ,DEFORMATION=âGROT_GDEPâ,),),
);

RESU=CALC_CHAMP(reuse=RESU,
RESULTAT=RESU,
CONTRAINTE=(âSIGM_ELNOâ,âSIGM_NOEUâ),
CRITERES=(âSIEQ_ELNOâ,âSIEQ_NOEUâ,),
DEFORMATION=(âEPSI_ELNOâ,âEPSI_NOEUâ,âEPSG_NOEUâ,),
FORCE=(âREAC_NODAâ,),);
IMPR_RESU(FORMAT=âMEDâ,
RESU=(_F(RESULTAT=RESU,
NOM_CHAM_MED=(âDisplacement (m)â, ),
INFO_MAILLAGE=âNONâ,
NOM_CMP=(âDXâ, âDYâ,âDZâ,),
IMPR_NOM_VARI=âNONâ,
NOM_CHAM=(âDEPLâ, ),),

_F(RESULTAT=RESU,
NOM_CHAM_MED=('Normal cauchy stress (Pa)', ),
INFO_MAILLAGE='NON',
NOM_CMP=('SIXX', 'SIYY','SIZZ', 'SIXY', 'SIXZ', 'SIYZ'),
IMPR_NOM_VARI='NON',
NOM_CHAM=('SIGM_NOEU', ),),
_F(RESULTAT=RESU,
NOM_CHAM_MED=('Nonlinear strain', ),
INFO_MAILLAGE='NON',
NOM_CMP=('EPXX', 'EPYY', 'EPZZ', 'EPXY', 'EPXZ', 'EPYZ'),
IMPR_NOM_VARI='NON',
NOM_CHAM=('EPSG_NOEU', ),),
_F(RESULTAT=RESU,
NOM_CHAM_MED=('von Mises stress (Pa)', ),
INFO_MAILLAGE='NON',
#NOM_CMP=('VMIS', ),
IMPR_NOM_VARI='NON',
NOM_CHAM=('SIEQ_NOEU', ),),
_F(RESULTAT=RESU,
NOM_CHAM_MED=('Reaction Force (N)', ),
INFO_MAILLAGE='NON',
#NOM_CMP=('VMIS', ),
IMPR_NOM_VARI='NON',
NOM_CHAM=('REAC_NODA', ),),

),
UNITE=80,
INFO=1,)

reac=POST_RELEVE_T(
ACTION=_F(
INTITULE=âREACTION_FORCEâ,
GROUP_NO=(âReâ,),
RESULTAT=RESU,
NOM_CHAM=âREAC_NODAâ,
RESULTANTE=(âDXâ,âDYâ,âDZâ,),
MOMENT=(âDRXâ,âDRYâ,âDRZâ,),
POINT=(0,0,0,),
OPERATION=âEXTRACTIONâ,
),
);
IMPR_TABLE (TABLE=reac,UNITE=8,)

FIN();

Hi @duraisamy,

you should share your project like this.

Click on Generate project link and share the link that you get with us. As I saw you already deleted the related simulation. Can you generate it again and share it with us please?

Thanks and cheers!

Jousef

@jousefm this project was not created with SimScale, it was directly done using Code_Aster locally.

@duraisamy, can you also share the meshes such that we can reproduce the run? I saw that you also posted directly into the Code_Aster forum, I guess thatâs also the more appropriate place, since SimScale users will have a hard time debugging your simulation that was done with a local simulation setup that is not reproducible on SimScale.

Nevertheless, if you can provide the meshes, I will try my best to help finding the problem.

Best,
Richard

2 Likes

@rszoeke
How to apply the torque ref the figure

1 Like

Hi @duraisamy,
I think you have a scaling problem with your geometries, thatâs why the 2nd simulation does not work.

You have cylinders in the range of 200[m] and only apply 41[N] compressive load. You can use the scaling operation on the geometry to scale it down to the actual size.

Best,
Richard

I think the problem might be that the higher load generates a too high rotation angle and that the approach you are using (LIAISON_SOLIDE - or with SimScale it would be âundeformable remote forceâ) only allows small rotations.

In recent Code_Aster versions you can turn on support for large rotation by defining the LIAISON_SOLIDE as a follower load, this should improve the situation and at least allow a higher load until divergence.

Best,
Richard

Thank you

My cylinder object dimension is X=100 mm, Y=100 mm and Z = 600 mm.

Mooney rivlin constants are in Mpa

Ok, then everything should be fine,
but the load is then still in Newton for a consistent unit system.
So in case you wanted to apply 41 kN you have to define your load as 41 000 [N].

Best,
Richard

I am using 41e3 Nm only

Hello @duraisamy,
I think a few things got mixed up, so Iâll sum it up again with references:

1. In your command file that you posted here you are using SI units in the comm file, I canât judge about the mesh units.

2. In the project you shared in your next post, you are still unsing SI units for the simulation setup, but your geometry is obviously scaled to Millimeters.

3. In your 2nd shared project from the consecutive post I see now SI units for the material properties (besides the densitiy which is irrelevant here), but in your force load, you are using the formula ât*4â [N].

I would suggest you setting up the same case from the comm file with SimScale. You can use this example as a reference how to set up a torque. For the sake of simplicity I would propose to upload the geometry directly in SI units, this could prevent some confusion.

Best,
Richard