Welcome to the forums. Please post in English or French.

You are not logged in.

## #1 2019-07-11 17:15:56

redfox
Member
Registered: 2019-07-02
Posts: 18

### Two contact zones of a solid: problems in boundary conditions!

Hi to everyone!
I need to simulate the contact on the lower and upper faces of a box between two plates through DEFI_CONTACT in STAT_NON_LINE, but I don't know what boundary conditions the box needs.

I fixed the lower face of the lower plate, and the upper face of the upper plate has DX,DY=0 and a displacement in DZ to simulate a top load on the box. Than, I needed to impose DX,DY=0 on the lower face of the box, otherwise the code doesn't run.

My problem is that on the upper contact the two surfaces have relative motion in X,Y, and this is correct, but in the lower contact the two surfaces are "glued" (I suppose due to the DX,DY=0 on the lower face of the box). I'd like to have in the lower contact the same result of the upper contact.

Can someone help me? Thanks in advance!

Attached the .comm file

Attachments:

Offline

## #2 2019-07-12 12:06:49

joanBO
Member
Registered: 2019-04-12
Posts: 16

### Re: Two contact zones of a solid: problems in boundary conditions!

Hi,

I think you want to avoid the solid rigid body motion without blocking the body displacement. Try using soft springs. I post some related links:

viewtopic.php?id=13358
viewtopic.php?id=20154

In addition, could you post the mesh? Avisual info helps a lot in order to visualize the problem.

Regards,

Joan

Offline

## #3 2019-07-15 16:04:57

redfox
Member
Registered: 2019-07-02
Posts: 18

### Re: Two contact zones of a solid: problems in boundary conditions!

Hi JoanBO,

thanks a lot for your response.
Attached the mesh.
I changed something in geometry but the problem is the same.
Here the .comm file:

DEBUT()
meshUP = LIRE_MAILLAGE(UNITE=20)
meshLP = LIRE_MAILLAGE(UNITE=2)
meshC = LIRE_MAILLAGE(UNITE=3)
meshLPC = ASSE_MAILLAGE(
MAILLAGE_1=meshLP, MAILLAGE_2=meshC, OPERATION='SUPERPOSE'
)
meshG = ASSE_MAILLAGE(
MAILLAGE_1=meshLPC, MAILLAGE_2=meshUP, OPERATION='SUPERPOSE'
)
meshS = CREA_MAILLAGE(
CREA_POI1=_F(
GROUP_NO=('Springs_middle', ), NOM_GROUP_MA=('Springs_middle', )
),
MAILLAGE=meshG
)
model = AFFE_MODELE(
AFFE=(
_F(MODELISATION=('3D', ), PHENOMENE='MECANIQUE', TOUT='OUI'), _F(
GROUP_MA=('Springs_middle', ),
MODELISATION=('DIS_T', ),
PHENOMENE='MECANIQUE'
)
),
MAILLAGE=meshS
)
soft_spr = AFFE_CARA_ELEM(
DISCRET=_F(
CARA='K_T_D_N', GROUP_MA=('Springs_middle', ), VALE=(1.0, 1.0, 1.0)
),
MODELE=model
)
steel = DEFI_MATERIAU(ELAS=_F(E=210000.0, NU=0.3))
hdpe = DEFI_MATERIAU(ELAS=_F(E=870.0, NU=0.4))
fieldmat = AFFE_MATERIAU(
AFFE=(
_F(GROUP_MA=('Body_cyl', ), MATER=(hdpe, )), _F(
GROUP_MA=('Body_plate_sotto', 'Body_plate_sopra'), MATER=(steel, )
), _F(GROUP_MA=('Springs_middle', ), MATER=(hdpe, ))
),
MODELE=model
)
listr = DEFI_LIST_REEL(DEBUT=0.0, INTERVALLE=_F(JUSQU_A=1.0, PAS=0.05))
times = DEFI_LIST_INST(
DEFI_LIST=_F(LIST_INST=listr, NB_PAS_MAXI=100),
ECHEC=_F(ACTION='ITER_SUPPL'),
METHODE='AUTO'
)
ramp = DEFI_FONCTION(NOM_PARA='INST', VALE=(0.0, 0.0, 1.0, 1.0))
LP_fix = AFFE_CHAR_MECA(
DDL_IMPO=_F(GROUP_MA=('Bottom_contact', ), LIAISON='ENCASTRE'),
MODELE=model
)
UP_bc = AFFE_CHAR_MECA(
FACE_IMPO=_F(DX=0.0, DY=0.0, GROUP_MA=('Top_BC', )), MODELE=model
)
contact = DEFI_CONTACT(
FORMULATION='CONTINUE',
FROTTEMENT='SANS',
MODELE=model,
ZONE=(
_F(
CONTACT_INIT='OUI',
GROUP_MA_ESCL=('Top_face', ),
GROUP_MA_MAIT=('Top_contact', )
), _F(
CONTACT_INIT='OUI',
GROUP_MA_ESCL=('Bottom_face', ),
GROUP_MA_MAIT=('Bottom_contact', )
)
)
)
displ = AFFE_CHAR_MECA(
FACE_IMPO=_F(DZ=-50.0, GROUP_MA=('Top_BC', )), MODELE=model
)
resnonl = STAT_NON_LINE(
ARCHIVAGE=_F(LIST_INST=listr),
CHAM_MATER=fieldmat,
COMPORTEMENT=(
_F(
DEFORMATION='PETIT',
GROUP_MA=('Body_plate_sotto', 'Body_plate_sopra'),
RELATION='ELAS'
),
_F(DEFORMATION='GROT_GDEP', GROUP_MA=('Body_cyl', ), RELATION='ELAS')
),
CONTACT=contact,
EXCIT=(
_F(CHARGE=LP_fix), _F(CHARGE=UP_bc), _F(CHARGE=displ, FONC_MULT=ramp)
),
INCREMENT=_F(LIST_INST=times),
METHODE='NEWTON',
MODELE=model,
NEWTON=_F(
MATRICE='TANGENTE',
PREDICTION='ELASTIQUE',
REAC_INCR=1,
REAC_ITER=1,
REAC_ITER_ELAS=0
)
)
IMPR_RESU(FORMAT='MED', RESU=_F(RESULTAT=resnonl), UNITE=80)
FIN()

Attachments:

Offline

## #4 2019-07-15 17:30:40

jeanpierreaubry
Guru
From: nantes (france)
Registered: 2009-03-12
Posts: 3,638

### Re: Two contact zones of a solid: problems in boundary conditions!

hello

the springs we are talking about here have to be on a line element, K_TR_D_L type
and this line has to exist in the mesh code_aster cannot create it

stiffness on POI1 with a K_TR_D_N element will not do the job in this case
this is explained in my book in the appendix about discrete elements.

jean pierre aubry

Last edited by jeanpierreaubry (2019-07-15 17:32:18)

consider reading my book
freely available here https://framabook.org/beginning-with-code_aster/

Offline

## #5 2019-07-16 08:15:20

redfox
Member
Registered: 2019-07-02
Posts: 18

### Re: Two contact zones of a solid: problems in boundary conditions!

jeanpierreaubry wrote:

the springs we are talking about here have to be on a line element, K_TR_D_L type
and this line has to exist in the mesh code_aster cannot create it

Thanks a lot in advance for the help guys!
Therefore, I must define linear meshes for every spring in mesh module, which nodes are one on the body face and a virtual one far from these surfaces, right?

Offline