Convergence problem with Large Displacement

  • alessandro
  • Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 11 months ago - 8 years 11 months ago #8057 by alessandro
Hi, I am computing the deformation of a cylinder under internal pressure.
The code give me the correct result if the internal pressure is 10^5 but if I increase the pressure to 10^7 the simulation does not converge anymore.
Could someone give me some advices?

MED and COMM attached.

Thanks a lot in advance,
Alessandro




cylinder.zip
Last edit: 8 years 11 months ago by alessandro.

Please Log in or Create an account to join the conversation.

  • alessandro
  • Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 11 months ago - 8 years 11 months ago #8058 by alessandro
Replied by alessandro on topic Re: Convergence problem with Large Displacement
Sorry, I cannot upload the files.
This is the comm file
DEBUT();

#----------------------------------------------------
#parameters R = 1; L=10;
th=0.01;
E=1.e10;
nu=0.3;
P_a=-2e7;
P_b=0.;
presss=P_a-P_b;
tsteps = 100;

#----------------------------------------------------
# (1) Reading of the mesh
#----------------------------------------------------

meshI=LIRE_MAILLAGE(UNITE=20,FORMAT='MED',INFO_MED=1,);

Qmesh=CREA_MAILLAGE(MAILLAGE=meshI,LINE_QUAD=_F(TOUT='OUI',PREF_NOEUD='NNS'),);

mesh=CREA_MAILLAGE(MAILLAGE=Qmesh,
                MODI_MAILLE=(
                            _F(TOUT='OUI',OPTION='QUAD8_9',),
                            #_F(TOUT='OUI',OPTION='TRIA6_7',),
                ),
);

mesh=DEFI_GROUP (
        reuse =mesh,
        MAILLAGE=mesh ,
        CREA_GROUP_MA=_F ( NOM='TOUT' , TOUT='OUI' , ) , 
        CREA_GROUP_NO=_F(TOUT_GROUP_MA='OUI' ,) ,
    );

mesh=MODI_MAILLAGE (
	reuse =mesh ,
	MAILLAGE=mesh ,
	ORIE_NORM_COQUE=(_F (GROUP_MA=('skin',),),), 
	);

#----------------------------------------------------
# (2) Model definition and volume elements
#----------------------------------------------------

ModelI=AFFE_MODELE(MAILLAGE=meshI,
                    AFFE=_F(TOUT='OUI',
                            PHENOMENE='MECANIQUE',
                            MODELISATION='3D',),);
         

Model=AFFE_MODELE(
        MAILLAGE=mesh,
        AFFE=_F(
                TOUT='OUI',
                PHENOMENE='MECANIQUE',
                MODELISATION='COQUE_3D', 
             ),
    );

#----------------------------------------------------
# (3) Allocation of the mesh model
#----------------------------------------------------


CARA=AFFE_CARA_ELEM(MODELE=Model,
                        COQUE=_F(GROUP_MA='skin',
                                 EPAIS=th,                 #thickness of the shell
                                 COQUE_NCOU=1,              #number of nodes on the thickness
                        ),
           );

#----------------------------------------------------
# (4) Definition of material properties
#----------------------------------------------------

#Linear elastic material 

Alu=DEFI_MATERIAU(ELAS=_F(E=E,NU=nu,),);

#----------------------------------------------------
# (5) Allocation of the mesh material
#----------------------------------------------------

Mat=AFFE_MATERIAU(MAILLAGE=mesh,AFFE=_F(TOUT='OUI',MATER=Alu,),);

#----------------------------------------------------
# (6) Definition of boundary conditions (CL) and loads
#----------------------------------------------------

fixZeq=AFFE_CHAR_MECA (MODELE=Model ,
                        DDL_IMPO =(
                                _F( GROUP_MA='equator',DY=0.0, ),
                                _F( GROUP_MA='longi',DX=0.0, ),
                                _F( GROUP_MA='ortho',DZ=0.0, ),
                            )
                        
       );
appP=AFFE_CHAR_MECA (MODELE=Model ,FORCE_COQUE =_F(GROUP_MA='skin',PRES=presss, ) ,);



#----------------------------------------------------
# (7) Resolution
#----------------------------------------------------

ramp=DEFI_FONCTION(
                   NOM_PARA='INST',
                   VALE=(0,0,
                         1,1,
                         ),
                   INTERPOL='LIN',
                   PROL_DROITE='LINEAIRE',);

list_rel=DEFI_LIST_REEL(DEBUT=0,
                        INTERVALLE=(
                               _F(JUSQU_A=1,NOMBRE=10,),
                        ),
);

list_ins=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO',
                                     LIST_INST=list_rel,
                                     PAS_MINI=1e-4,),);


result=STAT_NON_LINE(MODELE=Model ,
                     CHAM_MATER=Mat, 
                     CARA_ELEM=CARA,
                    EXCIT=(
                            _F(CHARGE=fixZeq,) , 
                            _F( CHARGE=appP,
                                TYPE_CHARGE='SUIV' , 
                                FONC_MULT=ramp , ),
                            ), 
                    COMP_ELAS=_F (
                            RELATION='ELAS' , 
                            DEFORMATION='GROT_GDEP' ,
                            GROUP_MA = ( 'skin' , ) , 
                            ),
                   INCREMENT=_F(LIST_INST=list_ins,),
                   #INCREMENT=_F(LIST_INST=list_rel,),
                   NEWTON=_F(PREDICTION='ELASTIQUE',
                             MATRICE='TANGENTE',
                             REAC_INCR=1,
                             #PAS_MINI_ELAS=1e-4,
                             REAC_ITER=1,),
                   CONVERGENCE=_F (RESI_GLOB_RELA=1e-4,ITER_GLOB_MAXI=30,),
                   SOLVEUR=_F(METHODE='MUMPS',
                              PCENT_PIVOT=70,
                              MATR_DISTRIBUEE='OUI',),
                   ARCHIVAGE=_F(LIST_INST=list_rel,),
INFO=1,
);


#----------------------------------------------------
# (8) Printing
#----------------------------------------------------
Tdisp=POST_RELEVE_T(
		ACTION=(_F (
			GROUP_NO='top' ,
			INTITULE='displ_top' ,
			RESULTAT=result,
			NOM_CHAM='DEPL' ,
			NOM_CMP=('DX' , 'DY' , 'DZ' , ) ,
			TOUT_ORDRE='OUI' , #all time steps
			OPERATION='EXTRACTION' ,
		 ),
		),
TITRE='displacement' ,
);

IMPR_TABLE ( TABLE=Tdisp , );

D=RECU_FONCTION(TABLE=Tdisp,
                 PARA_X='INST',
                 PARA_Y='DY',
);


IMPR_FONCTION(
              FORMAT='TABLEAU',
              UNITE=81,
              COURBE=_F(FONC_X=D,FONC_Y=D,),
              COMMENTAIRE = '%',
              COMM_PARA = '%',
);

resultI=PROJ_CHAMP(RESULTAT=result,
                    MODELE_1=Model,    # project fields of this model to
                    MODELE_2=ModelI,); # field of model_2

IMPR_RESU(FORMAT='MED',UNITE=80,RESU=_F(MAILLAGE=meshI,RESULTAT=resultI,NOM_CHAM=('DEPL'),),);

L_prof=POST_RELEVE_T(
		ACTION=(_F (
			GROUP_NO='longi' ,
			INTITULE='displ_top' ,
			RESULTAT=result,
			NOM_CHAM='DEPL' ,
			NOM_CMP=('DX' , 'DY' , 'DZ' , ) ,
			TOUT_ORDRE='OUI' , #all time steps
			OPERATION='EXTRACTION' ,
		 ),
		),
TITRE='displacement' ,
);
IMPR_TABLE (FORMAT='TABLEAU',
              COMMENTAIRE = '%',
              COMM_PARA = '%',
            UNITE=82,
            TABLE=L_prof ,);


O_prof=POST_RELEVE_T(
		ACTION=(_F (
			GROUP_NO='ortho' ,
			INTITULE='displ_top' ,
			RESULTAT=result,
			NOM_CHAM='DEPL' ,
			NOM_CMP=('DX' , 'DY' , 'DZ' , ) ,
			TOUT_ORDRE='OUI' , #all time steps
			OPERATION='EXTRACTION' ,
		 ),
		),
TITRE='displacement' ,
);
IMPR_TABLE (FORMAT='TABLEAU',
              COMMENTAIRE = '%',
              COMM_PARA = '%',
            UNITE=83,
            TABLE=O_prof ,);


FIN();

And the med file can be generated with gmsh from this geo file using 2D linear meshing
cl1 = 0.25;
R = 1;
L=10;

Point(1) = {0,0,-L/2,cl1};
Point(2) = {R,0,-L/2,cl1};
Point(3) = {0,R,-L/2,cl1};
Point(4) = {-R,0,-L/2,cl1};
Point(5) = {0,-R,-L/2,cl1};

Circle(1) = {2,1,3};
Circle(2) = {3,1,4};
Circle(3) = {4,1,5};
Circle(4) = {5,1,2};

Line(5) = {5, 1};
Line(6) = {2, 1};
Line(7) = {3, 1};
Line(8) = {4, 1};

Line Loop(12) = {6, -5, 4};
Plane Surface(12) = {12};
Line Loop(14) = -{6, -7, -1};
Plane Surface(14) = {14};
Line Loop(16) = {2, 8, -7};
Plane Surface(16) = {16};
Line Loop(18) = {3, 5, -8};
Plane Surface(18) = {18};

Extrude {0,0,L/2} {
  Surface{12,14,16,18};
}

Extrude {0,0,L/2} {
  Surface{35,52,69,86};
}

Coherence ;


Transfinite Surface "*";
Recombine Surface "*";
Transfinite Volume "*";


Physical Point("top")={18};
Physical Line("longi")={29,97};//{29,97,46,114};
Physical Line("ortho")={38,54};//{38,54,71,22};
Physical Line("front")={106,122,90,139};
Physical Line("back")={1,2,3,4};
Physical Line("equator")={24,59,92,127};
Physical Surface("skin")={47,60,128,115,145,102,77,34};


Last edit: 8 years 11 months ago by alessandro.

Please Log in or Create an account to join the conversation.

More
8 years 11 months ago #8059 by RichardS
Hello,
did you try tp use a higher number of layers (COQUE_NCOU)? It is advised to have at least 3, better 5 for nonlinear calculations.

Best regards,
Richard

SimScale - Engineering Simulation in your browser!

Please Log in or Create an account to join the conversation.

  • alessandro
  • Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 11 months ago #8060 by alessandro
Replied by alessandro on topic Re: Convergence problem with Large Displacement
Hi, thanks for the answer.
Actually I found that using meca_statistique instead of stat_non_line the simulation works for all the values of the internal pressure.
I have no idea of why

Thanks again for the answer

Please Log in or Create an account to join the conversation.

More
8 years 11 months ago #8061 by RichardS
Sure,
because you only computed the linear solution, that means with small displacement and small rotation assumption.
You will not get the effect of follower pressure there nor the change in geometric stiffness.

Best regards,
Richard

SimScale - Engineering Simulation in your browser!
The following user(s) said Thank You: alessandro

Please Log in or Create an account to join the conversation.

Moderators: catux
Time to create page: 0.151 seconds
Powered by Kunena Forum