Wrong result of local deformation

  • alessandro
  • Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 10 months ago - 8 years 10 months ago #8165 by alessandro
Wrong result of local deformation was created by alessandro
Hello,
I am simulating the indentation of a plate. The plate dimension are 1x100x50.
I meshed the geometry with 3D elements of size 0.3X0.6x0.6 and performed a dynamical simulation. The code is here attached.
The simulation converges but I find a weird behavior as showed in the two attached figures in which there is the final configuration of the top of the plate.






Can anyone give me some suggestion on how to solve this problem,
Thanks,
Alessandro
# ------------------------------------------------------------------------------------------
# Impression du contenu du fichier de commandes �� ex��cuter :
# ------------------------------------------------------------------------------------------
#---------------------------------------------------------------------------------------
#
# UNITS: 	MASS	LENTH	TIME	FORCE	STRESS	ENERGY
# 			Kg          m 	   s 		N 		Pa 	   N-m
#---------------------------------------------------------------------------------------

######## Model Parameters ########
young=1e+10; 				    #[\mug/s^2/\mum] 
nu=0.3;
rho=1.0e-6;                   #[\mug/\mum^3] indicativo

######## Simulation Parameters ########
alpha=-0.1;
imp_disp=-10;              #[m]

stopTime=1.0                #[s] 		Time to interrupt the simulation
#stopTime=2.0                #[s] 		Time to interrupt the simulation
#t_p=1.                      #[s] 		Time to final pressure

maxdT	= 1e-02				#[s] 		Max Time Step
archivT0= 1e-01				#[s] 		Time increment to write results
#archivT1= 1e-01				#[s] 		Time increment to write results

P_in=1.e+6;
P_out=P_in*1.0e-05;

precis=1e-6;
tries=20;
kk=1.0e-05;

DEBUT();

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

meshI=LIRE_MAILLAGE ( UNITE=20 ,FORMAT='MED' , INFO_MED=1,) ;
mesh=CREA_MAILLAGE(MAILLAGE=meshI,LINE_QUAD=_F(TOUT='OUI',PREF_NOEUD='q'),);


mesh=DEFI_GROUP (
        reuse =mesh,
        MAILLAGE=mesh ,
        CREA_GROUP_MA=_F ( NOM='puller', UNION = ('top', 'ref')) , 
        CREA_GROUP_NO=_F(TOUT_GROUP_MA='OUI' ,) ,
    );

mesh=MODI_MAILLAGE (
	reuse =mesh ,
	MAILLAGE=mesh ,
    ORIE_PEAU_3D = _F (GROUP_MA =('equator','in','out',)), 
	);

#----------------------------------------------------
# (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='3D',
             ),
            _F(
                GROUP_MA=('ref' ,) , 
                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='ref',
                              VALE=(kk,kk,kk,kk,kk,kk),),
);

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

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

#----------------------------------------------------
# (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
#----------------------------------------------------
BCnd=AFFE_CHAR_MECA (MODELE=Model ,DDL_IMPO =_F( GROUP_MA='equator',DX=0.0,DY=0.0,DZ=0.0,),);

BCnd_0=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,),
                                 ),
);

#BCnd_1=AFFE_CHAR_MECA (MODELE=Model ,DDL_IMPO =_F( GROUP_MA='equator',DX=0.0,DZ=0.0,),);

CHME=AFFE_CHAR_MECA(MODELE=Model,LIAISON_SOLIDE=_F(GROUP_NO='puller',),);
displac=AFFE_CHAR_MECA (MODELE=Model ,DDL_IMPO =_F(GROUP_MA='ref',DX=0.0,DY=imp_disp,DZ=0.0,DRX=0.0,DRY=0.0,DRZ=0.0, ) ,);
appP=AFFE_CHAR_MECA(MODELE=Model,
            PRES_REP =(
                    _F(GROUP_MA='in',PRES=P_in, ) ,
                    _F(GROUP_MA='out',PRES=P_out, ) ,
                ),
    );

#----------------------------------------------------
# (7) Resolution
#----------------------------------------------------
# List of time instant for the INCREMENTAL SOLUTION
L_INST1=DEFI_LIST_REEL(DEBUT=0.,INTERVALLE=_F(JUSQU_A=stopTime,NOMBRE=round(stopTime/maxdT,),),INFO=2,);

# List of time instant for ARCHIVAGE
save_T=DEFI_LIST_REEL(DEBUT=0.,
            INTERVALLE=(
                        _F(JUSQU_A=stopTime,NOMBRE=round((stopTime)/archivT0,),),
                        #_F(JUSQU_A=t_p,NOMBRE=round(t_p/archivT0,),),
                        #_F(JUSQU_A=stopTime,NOMBRE=round((stopTime-t_p)/archivT1,),),
            ),    );

# Variable Time Step
deflist=DEFI_LIST_INST(
    DEFI_LIST=_F(METHODE='AUTO',LIST_INST=L_INST1,PAS_MINI=1e-10,),
    ECHEC=_F(EVENEMENT='ERREUR',SUBD_PAS=4,),
    ADAPTATION=_F(EVENEMENT='SEUIL',NB_INCR_SEUIL=3,NOM_PARA='NB_ITER_NEWTON',CRIT_COMP='LE',PCENT_AUGM=200.0,),
);

ramp=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0,stopTime,1.0,),INTERPOL='LIN',PROL_DROITE='CONSTANT',PROL_GAUCHE='CONSTANT',);

#ramp_1=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0,t_p,1.0,stopTime,1.0,),INTERPOL='LIN',PROL_DROITE='CONSTANT',PROL_GAUCHE='CONSTANT',);
#ramp_2=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0,t_p,0.0,stopTime,1.0,),INTERPOL='LIN',PROL_DROITE='CONSTANT',PROL_GAUCHE='CONSTANT',);

result=DYNA_NON_LINE(MODELE=Model ,
                     CARA_ELEM=CARA,
        CHAM_MATER=Mat ,
                    EXCIT=(
                        _F(CHARGE=BCnd,),
                        _F(CHARGE=CHME,),
                        _F(CHARGE=displac ,FONC_MULT=ramp,),
                        #_F(CHARGE=BCnd_0,),
                        #_F(CHARGE=appP ,TYPE_CHARGE ='SUIV',FONC_MULT=ramp_1,),
                        #_F(CHARGE=BCnd_1,FONC_MULT=ramp_2, ),
                        #_F(CHARGE=displac,FONC_MULT=ramp_2, ),
                     ),
                    COMP_ELAS=(_F (RELATION='ELAS' , DEFORMATION='GROT_GDEP' ,GROUP_MA = ( 'volume') ,),
                               _F (RELATION='ELAS' , DEFORMATION='PETIT' ,GROUP_MA = ( 'ref') ,),),
                   INCREMENT=_F(LIST_INST=deflist,) , 
        NEWTON=_F(MATRICE='TANGENTE',PREDICTION='TANGENTE',REAC_ITER=1,REAC_ITER_ELAS=1,),  
        SOLVEUR=_F(METHODE='MULT_FRONT',STOP_SINGULIER='NON',),
        CONVERGENCE=_F (RESI_GLOB_RELA=precis,ITER_GLOB_MAXI=tries,),
        ARCHIVAGE=_F(LIST_INST=save_T,),    
    SCHEMA_TEMPS=_F(
        COEF_MASS_SHIFT=0.0,
        ALPHA=alpha,
        FORMULATION='DEPLACEMENT',
        MODI_EQUI='NON',
        SCHEMA='HHT',
        ),
	);
Last edit: 8 years 10 months ago by alessandro.

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

More
8 years 10 months ago #8166 by kwou
Replied by kwou on topic Re: Wrong result of local deformation
Hoi Alessandro

for me it is hard to tell what might be wrong.
You attach some mass/spring element ('ref') to your solids, are you sure the attachments are alright?
What are you boundary conditions and loads?

I you upload the model, it would be useful.
BTW: why do not you use shell elements?

Interest: structural mechanics, solar energy (picture at 'my location' shows too little pv panels)

--
kind regards - kees

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

  • alessandro
  • Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 10 months ago #8168 by alessandro
Replied by alessandro on topic Re: Wrong result of local deformation
Hi, thanks for the help!

Here used a ref point but I had the same problem also without it.

The plate is fixed on two sides and free along the other two, I impose a displacement of -10 on the central node, the plate dimension are 1x100x50

I started with shell elements but the problem was not converging. I switched to dynamic but there shell elements does not allow large deformation.

here is the .geo file

R=25;th=1;L=100;N_th=3; asymmetry=4;

cl=th/N_th;
cl_int=cl;cl_out=cl;
N_R=(2*3.14*R/4)/(asymmetry*cl);
N_L=N_R*(L/2)/(2*3.14*R/4);


Point(1) = {0.0,th/2,-L/2,cl_int};
Point(2) = {0.0,-th/2,-L/2,cl_out};

Line(1) = {1,2};
Extrude {0,0,L/2} {Line{1}; Layers{N_L};Recombine;}
Extrude {3.14/2*R,0,0} {Surface{5}; Layers{N_R};Recombine;}
Extrude {3.14/2*R,0,0} {Surface{27}; Layers{N_R};Recombine;}
Extrude {0,0,L/2} {Surface{22}; Layers{N_R};Recombine;}
Extrude {0,0,L/2} {Surface{44}; Layers{N_R};Recombine;}

Point(1001) = {0,2*R,0};


Coherence;
Transfinite Volume "*";

Physical Point("top")={14};
Physical Point("ref")={1001};

Physical Line("longi")={10,61};
Physical Line("ortho")={21,43};

Physical Surface("front")={71,93};
Physical Surface("back")={14,36};
Physical Surface("equator")={5,49,88,58};

Physical Surface("in")={40,18,70,92};
Physical Surface("out")={62,84,26,48};


Physical Volume("volume")={1,2,3,4};


Coherence;


and this is the .comm
#---------------------------------------------------------------------------------------
#
# UNITS: 	MASS	LENTH	TIME	FORCE	STRESS	ENERGY
# 			Kg          m 	   s 		N 		Pa 	   N-m
#---------------------------------------------------------------------------------------

######## Model Parameters ########
young=1e+10; 				    #[\mug/s^2/\mum] 
nu=0.3;
rho=1.0e-6;                   #[\mug/\mum^3] indicativo

######## Simulation Parameters ########
alpha=-0.1;
imp_disp=-10;              #[m]

stopTime=1.0                #[s] 		Time to interrupt the simulation
#stopTime=2.0                #[s] 		Time to interrupt the simulation
#t_p=1.                      #[s] 		Time to final pressure

maxdT	= 1e-02				#[s] 		Max Time Step
archivT0= 1e-01				#[s] 		Time increment to write results
#archivT1= 1e-01				#[s] 		Time increment to write results

P_in=1.e+6;
P_out=P_in*1.0e-05;

precis=1e-6;
tries=20;
kk=1.0e-05;

DEBUT();

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

meshI=LIRE_MAILLAGE ( UNITE=20 ,FORMAT='MED' , INFO_MED=1,) ;
mesh=CREA_MAILLAGE(MAILLAGE=meshI,LINE_QUAD=_F(TOUT='OUI',PREF_NOEUD='q'),);


mesh=DEFI_GROUP (
        reuse =mesh,
        MAILLAGE=mesh ,
        CREA_GROUP_MA=_F ( NOM='puller', UNION = ('top', 'ref')) , 
        CREA_GROUP_NO=_F(TOUT_GROUP_MA='OUI' ,) ,
    );

mesh=MODI_MAILLAGE (
	reuse =mesh ,
	MAILLAGE=mesh ,
    ORIE_PEAU_3D = _F (GROUP_MA =('equator','in','out',)), 
	);

#----------------------------------------------------
# (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='3D',
             ),
            _F(
                GROUP_MA=('ref' ,) , 
                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='ref',
                              VALE=(kk,kk,kk,kk,kk,kk),),
);

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

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

#----------------------------------------------------
# (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
#----------------------------------------------------
BCnd=AFFE_CHAR_MECA (MODELE=Model ,DDL_IMPO =_F( GROUP_MA='equator',DX=0.0,DY=0.0,DZ=0.0,),);

BCnd_0=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,),
                                 ),
);

#BCnd_1=AFFE_CHAR_MECA (MODELE=Model ,DDL_IMPO =_F( GROUP_MA='equator',DX=0.0,DZ=0.0,),);

CHME=AFFE_CHAR_MECA(MODELE=Model,LIAISON_SOLIDE=_F(GROUP_NO='puller',),);
displac=AFFE_CHAR_MECA (MODELE=Model ,DDL_IMPO =_F(GROUP_MA='ref',DX=0.0,DY=imp_disp,DZ=0.0,DRX=0.0,DRY=0.0,DRZ=0.0, ) ,);
appP=AFFE_CHAR_MECA(MODELE=Model,
            PRES_REP =(
                    _F(GROUP_MA='in',PRES=P_in, ) ,
                    _F(GROUP_MA='out',PRES=P_out, ) ,
                ),
    );

#----------------------------------------------------
# (7) Resolution
#----------------------------------------------------
# List of time instant for the INCREMENTAL SOLUTION
L_INST1=DEFI_LIST_REEL(DEBUT=0.,INTERVALLE=_F(JUSQU_A=stopTime,NOMBRE=round(stopTime/maxdT,),),INFO=2,);

# List of time instant for ARCHIVAGE
save_T=DEFI_LIST_REEL(DEBUT=0.,
            INTERVALLE=(
                        _F(JUSQU_A=stopTime,NOMBRE=round((stopTime)/archivT0,),),
                        #_F(JUSQU_A=t_p,NOMBRE=round(t_p/archivT0,),),
                        #_F(JUSQU_A=stopTime,NOMBRE=round((stopTime-t_p)/archivT1,),),
            ),    );

# Variable Time Step
deflist=DEFI_LIST_INST(
    DEFI_LIST=_F(METHODE='AUTO',LIST_INST=L_INST1,PAS_MINI=1e-10,),
    ECHEC=_F(EVENEMENT='ERREUR',SUBD_PAS=4,),
    ADAPTATION=_F(EVENEMENT='SEUIL',NB_INCR_SEUIL=3,NOM_PARA='NB_ITER_NEWTON',CRIT_COMP='LE',PCENT_AUGM=200.0,),
);

ramp=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0,stopTime,1.0,),INTERPOL='LIN',PROL_DROITE='CONSTANT',PROL_GAUCHE='CONSTANT',);

#ramp_1=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0,t_p,1.0,stopTime,1.0,),INTERPOL='LIN',PROL_DROITE='CONSTANT',PROL_GAUCHE='CONSTANT',);
#ramp_2=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0,t_p,0.0,stopTime,1.0,),INTERPOL='LIN',PROL_DROITE='CONSTANT',PROL_GAUCHE='CONSTANT',);

result=DYNA_NON_LINE(MODELE=Model ,
                     CARA_ELEM=CARA,
        CHAM_MATER=Mat ,
                    EXCIT=(
                        _F(CHARGE=BCnd,),
                        _F(CHARGE=CHME,),
                        _F(CHARGE=displac ,FONC_MULT=ramp,),
                        #_F(CHARGE=BCnd_0,),
                        #_F(CHARGE=appP ,TYPE_CHARGE ='SUIV',FONC_MULT=ramp_1,),
                        #_F(CHARGE=BCnd_1,FONC_MULT=ramp_2, ),
                        #_F(CHARGE=displac,FONC_MULT=ramp_2, ),
                     ),
                    COMP_ELAS=(_F (RELATION='ELAS' , DEFORMATION='GROT_GDEP' ,GROUP_MA = ( 'volume') ,),
                               _F (RELATION='ELAS' , DEFORMATION='PETIT' ,GROUP_MA = ( 'ref') ,),),
                   INCREMENT=_F(LIST_INST=deflist,) , 
        NEWTON=_F(MATRICE='TANGENTE',PREDICTION='TANGENTE',REAC_ITER=1,REAC_ITER_ELAS=1,),  
        SOLVEUR=_F(METHODE='MULT_FRONT',STOP_SINGULIER='NON',),
        CONVERGENCE=_F (RESI_GLOB_RELA=precis,ITER_GLOB_MAXI=tries,),
        ARCHIVAGE=_F(LIST_INST=save_T,),    
    SCHEMA_TEMPS=_F(
        COEF_MASS_SHIFT=0.0,
        ALPHA=alpha,
        FORMULATION='DEPLACEMENT',
        MODI_EQUI='NON',
        SCHEMA='HHT',
        ),
	);

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

result=CALC_CHAMP(reuse =result,RESULTAT=result,FORCE=('REAC_NODA',),);

#leggi su wiki pagina FEM

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,GROUP_MA = ( 'out' ,'ref' , ) ,NOM_CHAM = ('DEPL',),),);

X_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=81,
            TABLE=X_prof ,);

Z_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=Z_prof ,);


Tdisp=POST_RELEVE_T(
		ACTION=(_F (
			OPERATION='EXTRACTION' ,
			INTITULE='displ_middle' ,
			RESULTAT=result,
            TOUT='OUI' ,
			NOM_CHAM='DEPL' ,
			TOUT_ORDRE='OUI' ,
			GROUP_NO='ref' ,
			RESULTANTE = (  'DY' , ) ,
		    ),
		),
     TITRE='displacement' ,
);
D=RECU_FONCTION(TABLE=Tdisp,
                 PARA_X='INST',
                 PARA_Y='DY',
);

#T=RECU_FONCTION(TABLE=Tdisp,PARA_X='INST',PARA_Y='INST',);

Tforce=POST_RELEVE_T(ACTION=_F(RESULTAT=result,GROUP_NO='puller',OPERATION='EXTRACTION',NOM_CHAM='REAC_NODA',RESULTANTE=('DX','DY','DZ'),MOYE_NOEUD='OUI',INTITULE=''),);
F=RECU_FONCTION(TABLE=Tforce,PARA_X='INST',PARA_Y='DY',);

IMPR_FONCTION(
 FORMAT='TABLEAU',
              UNITE=83,
              COURBE=_F(
#FONC_X=T,FONC_Y=D,
FONC_X=D,FONC_Y=F,
                ),
COMMENTAIRE = '%',
COMM_PARA = '%',
);

E_CIN=POST_ELEM(ENER_CIN=_F(TOUT='OUI',),RESULTAT=result,);
E_TOT=POST_ELEM(ENER_TOTALE=_F(TOUT='OUI',),RESULTAT=result,);

IMPR_TABLE (TABLE=E_CIN,TITRE='E_CIN',FORMAT='TABLEAU',COMMENTAIRE = '%',COMM_PARA = '%',UNITE=84,);
IMPR_TABLE (TABLE=E_TOT,TITRE='E_TOT',FORMAT='TABLEAU',COMMENTAIRE = '%',COMM_PARA = '%',UNITE=85,);

FIN(
    RETASSAGE ='OUI',
    INFO_RESU='NON',
    );

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

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