Slow convergence large indentation
- alessandro
- Topic Author
- Offline
- New Member
Less
More
- Posts: 10
- Thank you received: 0
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
the file to generate the geometry of indenter in gmsh (mesh 2D linear)
and the geometry of the spherical cup
Could someone give me some idea on what to do?
Thanks a lot in advance,
Alessandro
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