Slow convergence large indentation

  • alessandro
  • Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 11 months ago - 8 years 11 months ago #8062 by alessandro
Slow convergence large indentation was created by alessandro
Hi to everyone, I am simulating the indentation of a spherical cup with a small sphere.
I have been working a lot on this problem but there are three questions that I cannot solve

1) The simulation takes a lot of time, in one day it did the 5% of the total calculation and the number of iteration increases at every step, is it possible to increase the velocity?

2) The indentation on the spherical cup is applied through a discrete point constrained to the small sphere.
I am imposing the displacement and I would like to measure the reaction force at the discrete point.
If I use REAC_NODA it gives me the reaction force relative to the single point stiffness and not the one given by the interaction between the two spheres. What am I doing wrong?

3) I would like to print results during the calculation, so I splitted the complete calculation in different parts and used IMPR_RESU in between consecutive partes, however I saw that all the results are printed together at the end of the simulation.

the comm file
DEBUT();

#----------------------------------------------------
#parameters R=1;
th=0.002;
young=7e10;
nu=0.3;
presss=0.0;
tsteps = 100;
max_ind=0.05;
precis=1e-4;
tries=200;
#----------------------------------------------------
# (1) Reading of the mesh
#----------------------------------------------------

mSph=LIRE_MAILLAGE ( UNITE=20 ,FORMAT='MED' , INFO_MED=1,) ;
mInd=LIRE_MAILLAGE ( UNITE=21 ,FORMAT='MED' , INFO_MED=1,) ;

meshI=ASSE_MAILLAGE (
		MAILLAGE_1=mSph,
		MAILLAGE_2=mInd ,
		OPERATION='SUPERPOSE' ,
	);


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' , ) , 
                        _F ( NOM='indenter', UNION = ('Isurface', 'Iref')) , 
                        ), 
        CREA_GROUP_NO=_F(TOUT_GROUP_MA='OUI' ,) ,
    );

mesh=MODI_MAILLAGE (
	reuse =mesh ,
	MAILLAGE=mesh ,
	ORIE_NORM_COQUE=(_F (GROUP_MA=('surface',),),), 
	);
mesh=MODI_MAILLAGE (
	reuse =mesh ,
	MAILLAGE=mesh ,
	ORIE_NORM_COQUE=(_F (GROUP_MA=('Isurface'),),), 
	);
#----------------------------------------------------
# (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', #COQUE_3D is for curved shell
                ),
              _F(
                GROUP_MA=('Iref' ,) , 
                PHENOMENE='MECANIQUE' , 
                MODELISATION='DIS_TR' ,
               ),
            ),
    );

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

CARA=AFFE_CARA_ELEM(MODELE=Model,
                      DISCRET=_F(CARA='K_TR_D_N',
                                GROUP_MA='Iref',
                                VALE=(0.1,0.1,0.1,0.1,0.1,0.1,),
                            ),
                        COQUE=(_F(GROUP_MA=('surface',),
                                 EPAIS=th,                 #thickness of the shell
                                 COQUE_NCOU=5,              #number of nodes on the thickness
                                ),
                                _F(GROUP_MA=('Isurface'),
                                 EPAIS=th/10.0,                 #thickness of the shell
                                 COQUE_NCOU=3,              #number of nodes on the thickness
                                ),
                           ),
           );

contact=DEFI_CONTACT(MODELE=Model,
                     FORMULATION='DISCRETE',
                     ZONE=_F(GROUP_MA_MAIT='Isurface',
                             GROUP_MA_ESCL='surface',
                             TOLE_PROJ_EXT=-1,
                             SANS_GROUP_NO=('equator','Iequator','Iref',),
                             ALGO_CONT='CONTRAINTE',),);

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


Alu=DEFI_MATERIAU(ELAS=_F(E=young,NU=nu,),);
Ind=DEFI_MATERIAU(ELAS=_F(E=1e10*young,NU=nu,),);


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

Mat=AFFE_MATERIAU(MAILLAGE=mesh,
    AFFE=(_F(GROUP_MA='surface',MATER=Alu,),
          _F(GROUP_MA='Isurface',MATER=Ind,),  
        ),
);

#----------------------------------------------------
# (6) Definition of boundary conditions (CL) and loads
#----------------------------------------------------
CHME=AFFE_CHAR_MECA(MODELE=Model,LIAISON_SOLIDE=_F(GROUP_MA='indenter',),);

fixZeq=AFFE_CHAR_MECA (MODELE=Model ,
                        DDL_IMPO =(
                                _F( GROUP_MA='equator',DX=0.0, DY=0.0, DZ=0.0, ),
                                _F( GROUP_MA='Iref',DX=0.0, DY=0.0,DRX=0.0, DRY=0.0,DRZ=0.0, ),
                            )
                        
       );

indent=AFFE_CHAR_MECA (MODELE=Model ,DDL_IMPO =(_F(GROUP_MA='Iref',DZ=-max_ind, ),));


#----------------------------------------------------
# (7) Resolution
#----------------------------------------------------
time=DEFI_LIST_REEL(DEBUT=0.0,
                   INTERVALLE=_F(JUSQU_A=1.0,NOMBRE=tsteps,),
                   INFO=2,TITRE='time',);

save_T=DEFI_LIST_REEL(DEBUT=0.0,
                   INTERVALLE=_F(JUSQU_A=1.0,NOMBRE=10,),
                   INFO=2,TITRE='save_T',);

ramp=DEFI_FONCTION(NOM_PARA='INST',
                  VALE=(0.00,0.00,
                        0.50,0.50,
                        1.00,1.00,),
                  INFO=2,TITRE='ramp',);

deflist=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO',
                                     LIST_INST=time,
                                     PAS_MINI=1e-09,),
                        ECHEC=_F(EVENEMENT='ERREUR',
                                 SUBD_PAS_MINI=0.0001,
                                 SUBD_METHODE='AUTO',
                                 ACTION='DECOUPE',),
                        ADAPTATION=_F(EVENEMENT='SEUIL',
                                      NB_INCR_SEUIL=2,
                                      NOM_PARA='NB_ITER_NEWTON',
                                      CRIT_COMP='LE',
                                      MODE_CALCUL_TPLUS='FIXE',
                                      PCENT_AUGM=50.0,),);


result=STAT_NON_LINE(MODELE=Model ,
                     CHAM_MATER=Mat, 
                     CARA_ELEM=CARA,
                    # describe a load (requests and boundary conditions), 
                    #and possibly a multiplying coefficient and/or a kind of load.
                    EXCIT=(
                            _F(CHARGE=fixZeq,) ,
                            _F ( CHARGE=CHME , ) ,
                            _F( CHARGE=indent,
                                #TYPE_CHARGE='FIXE_CSTE' , 
                                FONC_MULT=ramp , ),
                            ), 
                    CONTACT=contact ,
                    COMP_ELAS=(_F (
                                    RELATION='ELAS' , 
                                    DEFORMATION='GROT_GDEP' ,
                                    GROUP_MA = ( 'surface' , 'Isurface' , ) , 
                                   ),
                            _F (RELATION='ELAS' , DEFORMATION='PETIT' ,GROUP_MA = ('Iref' ) ,),    
                           ),
                    INCREMENT=_F(LIST_INST=deflist,) , 
                    NEWTON=_F(MATRICE='TANGENTE',
                                PREDICTION='ELASTIQUE',
                                REAC_ITER=1,
                                REAC_ITER_ELAS=1,
                            ),
                   CONVERGENCE=_F (RESI_GLOB_RELA=precis,ITER_GLOB_MAXI=tries,),
                   SOLVEUR=_F(METHODE='MULT_FRONT',
                                 STOP_SINGULIER='OUI',
                                 NPREC=16,
                                 RENUM='METIS',
                                 SYME='OUI',
                             ),
                   ARCHIVAGE=_F(LIST_INST=save_T,),
);





#----------------------------------------------------
# (8) Post-processing of results
#----------------------------------------------------

result=CALC_CHAMP(reuse =result,
               MODELE=Model,
               CHAM_MATER=Mat,
               CARA_ELEM=CARA,
               RESULTAT=result,
               #CONTRAINTE=('SIEF_ELNO','SIPO_ELNO','SIPM_ELNO',),
               FORCE=('FORC_NODA','REAC_NODA'),
               TOUT='OUI',
	);


Tdisp=POST_RELEVE_T(
		ACTION=(_F (
			OPERATION='EXTRACTION' ,
			INTITULE='displ_middle' ,
			RESULTAT=result,
            TOUT='OUI' ,
			NOM_CHAM='DEPL' ,
			TOUT_ORDRE='OUI' ,
			GROUP_NO='Iref' ,
			RESULTANTE = (  'DZ' , ) ,
		 ),
		),
);
Tforce=POST_RELEVE_T(
ACTION=_F(RESULTAT=result,
        GROUP_NO='Iref',
        OPERATION='EXTRACTION',
        NOM_CHAM='REAC_NODA',
        RESULTANTE=('DX','DY','DZ'),
        MOYE_NOEUD='OUI',
        INTITULE='',
),
);

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

F=RECU_FONCTION(TABLE=Tforce,
                 PARA_X='INST',
                 PARA_Y='DZ',
);

IMPR_FONCTION(
 FORMAT='TABLEAU',
              UNITE=81,
              COURBE=_F(FONC_X=D,
                        FONC_Y=F,),
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'),),);

X_prof=POST_RELEVE_T(
		ACTION=(_F (
			GROUP_NO='asseX' ,
			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=X_prof ,);


Y_prof=POST_RELEVE_T(
		ACTION=(_F (
			GROUP_NO='asseY' ,
			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=Y_prof ,);


FIN();


the file to generate the geometry of indenter in gmsh (mesh 2D linear)
lc = 0.01;
r=0.1;
th=0.002;
R=1; //initial z high
Point(1) = {0.0,0.0,R+r,lc};
Point(2) = {r,0.0,R+r,lc};
Point(3) = {0,r,R+r,lc};
Circle(1) = {2,1,3};
Point(4) = {-r,0,R+r,lc};
Point(5) = {0,-r,R+r,lc};
Circle(2) = {3,1,4};
Circle(3) = {4,1,5};
Circle(4) = {5,1,2};
Point(6) = {0,0,R+r-r,lc};
Point(7) = {0,0,R+r+r,lc};
Circle(5) = {3,1,6};
Circle(6) = {6,1,5};
Circle(7) = {5,1,7};
Circle(8) = {7,1,3};
Circle(9) = {2,1,7};
Circle(10) = {7,1,4};
Circle(11) = {4,1,6};
Circle(12) = {6,1,2};
Line Loop(13) = {2,8,-10};
Ruled Surface(14) = {13};
Line Loop(15) = {10,3,7};
Ruled Surface(16) = {15};
Line Loop(17) = {-8,-9,1};
Ruled Surface(18) = {17};
Line Loop(19) = {-11,-2,5};
Ruled Surface(20) = {19};
Line Loop(21) = {-5,-12,-1};
Ruled Surface(22) = {21};
Line Loop(23) = {-3,11,6};
Ruled Surface(24) = {23};
Line Loop(25) = {-7,4,9};
Ruled Surface(26) = {25};
Line Loop(27) = {-4,12,-6};
Ruled Surface(28) = {27};
Surface Loop(29) = {28,26,16,14,20,24,22,18};
Volume(30) = {29};


Physical Surface("Isurface") = {20,22,24,28};
Physical Point("Iref") = {7};
Physical Line("Iequator") = {1,2,3,4};
Physical Line("IasseX") = {11,12};
Physical Line("IasseY") = {5,6};

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

Coherence ;

// try also netgen:
// Mesh.Algorithm3D = 4;

and the geometry of the spherical cup
lc = 0.05;
R=1;
Point(1) = {0.0,0.0,0.0,lc};
Point(2) = {R,0.0,0.0,lc};
Point(3) = {0,R,0.0,lc};
Circle(1) = {2,1,3};
Point(4) = {-R,0,0.0,lc};
Point(5) = {0,-R,0.0,lc};
Circle(2) = {3,1,4};
Circle(3) = {4,1,5};
Circle(4) = {5,1,2};
Point(6) = {0,0,-R,lc};
Point(7) = {0,0,R,lc};
Circle(5) = {3,1,6};
Circle(6) = {6,1,5};
Circle(7) = {5,1,7};
Circle(8) = {7,1,3};
Circle(9) = {2,1,7};
Circle(10) = {7,1,4};
Circle(11) = {4,1,6};
Circle(12) = {6,1,2};
Line Loop(13) = {2,8,-10};
Ruled Surface(14) = {13};
Line Loop(15) = {10,3,7};
Ruled Surface(16) = {15};
Line Loop(17) = {-8,-9,1};
Ruled Surface(18) = {17};
Line Loop(19) = {-11,-2,5};
Ruled Surface(20) = {19};
Line Loop(21) = {-5,-12,-1};
Ruled Surface(22) = {21};
Line Loop(23) = {-3,11,6};
Ruled Surface(24) = {23};
Line Loop(25) = {-7,4,9};
Ruled Surface(26) = {25};
Line Loop(27) = {-4,12,-6};
Ruled Surface(28) = {27};
Surface Loop(29) = {28,26,16,14,20,24,22,18};
Volume(30) = {29};


Physical Surface("surface") = {14,16,18,26};
Physical Point("top") = {7};
Physical Line("equator") = {1,2,3,4};
Physical Line("asseX") = {10,9};
Physical Line("asseY") = {7,8};

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

Coherence ;

// try also netgen:
// Mesh.Algorithm3D = 4;




Could someone give me some idea on what to do?
Thanks a lot in advance,
Alessandro
Last edit: 8 years 11 months ago by alessandro.

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

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