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

You are not logged in.

#1 2018-11-05 14:48:20

eva13
Member
From: Lausanne
Registered: 2018-08-24
Posts: 31

[SOLVED] Problem with simulation of a contact

Hi guys, smile

I am facing a problem with a contact when I am doing my simulation and I really don’t understand why I can’t solve it . I am simulating a cylinder (supposed to represent a leg) with a radius equal to r=50mm and a hollow cylinder (supposed to represent a compression stocking) with an intern radius equal to 44mm and an extern radius equal to 58mm. The hollow cylinder is made with silicone (so it’s a soft, deformable material) and the « normal » cylinder is made with steel (I consider it indeformable). The goal is to create a contact between the internal area of the hollow cylinder and the external area of the normal cylinder to create a radial displacement of 6mm of the hollow cylinder (so at the beginning there is an interpenetration of the compression stocking in the leg). I know that I can just apply a radial displacement directly, but when I will do my analysis with a real leg and a real compression stocking, I will not be able to do that, so I am searching another solution (like the contact). I did an analysis , it runs but when I want to see the result, there is no displacement, no stress, nothing… I read all the documentation on DEFI_CONTACT and Note of use of the contact and I didn’t find the answer to my problem… Does anyone have an idea of why it’s not working and can enlighen me on this problem ?

Thank you very much for your help !


DEBUT(LANG='EN')

mesh_lin = LIRE_MAILLAGE(identifier=u'0:1',
                         FORMAT='MED',
                         UNITE=20)

mesh_jam = LIRE_MAILLAGE(identifier=u'1:1',
                         FORMAT='MED',
                         UNITE=2)

mesh = ASSE_MAILLAGE(identifier=u'2:1',
                     MAILLAGE_1=mesh_lin,
                     MAILLAGE_2=mesh_jam,
                     OPERATION='SUPERPOSE')

model = AFFE_MODELE(identifier=u'3:1',
                    AFFE=_F(MODELISATION=('3D', ),
                            PHENOMENE='MECANIQUE',
                            TOUT='OUI'),
                    MAILLAGE=mesh)

silicone = DEFI_MATERIAU(identifier=u'4:1',
                         ELAS=_F(E=0.067,
                                 NU=0.48))

acier = DEFI_MATERIAU(identifier=u'5:1',
                      ELAS=_F(E=210000.0,
                              NU=0.3))

fieldmat = AFFE_MATERIAU(identifier=u'6:1',
                         AFFE=(_F(GROUP_MA=('liner', ),
                                  MATER=(silicone, )),
                               _F(GROUP_MA=('jambe', ),
                                  MATER=(acier, ))),
                         MODELE=model)

times = DEFI_LIST_INST(identifier=u'7:1',
                       DEFI_LIST=_F(PAS_MAXI=50.0,
                                    VALE=(0.0, 400.0)),
                       METHODE='AUTO')

bc_lin = AFFE_CHAR_MECA(identifier=u'8:1',
                        FACE_IMPO=_F(DZ=0.0,
                                     GROUP_MA=('bc_lin', )),
                        MODELE=model)

bc_jam = AFFE_CHAR_MECA(identifier=u'9:1',
                        FACE_IMPO=_F(DX=0.0,
                                     DY=0.0,
                                     DZ=0.0,
                                     GROUP_MA=('bc_jambe', )),
                        MODELE=model)

contact = DEFI_CONTACT(identifier=u'10:1',
                       ALGO_RESO_CONT='POINT_FIXE',
                       ALGO_RESO_GEOM='POINT_FIXE',
                       FORMULATION='CONTINUE',
                       MODELE=model,
                       REAC_GEOM='AUTOMATIQUE',
                       ZONE=_F(CONTACT_INIT='INTERPENETRE',
                               GROUP_MA_ESCL=('dis', ),
                               GROUP_MA_MAIT=('dis_jambe', )))

resnonl = STAT_NON_LINE(identifier=u'11:1',
                        CHAM_MATER=fieldmat,
                        COMPORTEMENT=_F(DEFORMATION='GROT_GDEP',
                                        RELATION='ELAS'),
                        CONTACT=contact,
                        EXCIT=(_F(CHARGE=bc_lin),
                               _F(CHARGE=bc_jam)),
                        INCREMENT=_F(LIST_INST=times),
                        MODELE=model)

stress = CALC_CHAMP(identifier=u'12:1',
                    CHAM_MATER=fieldmat,
                    CONTRAINTE=('SIEF_ELNO', 'SIEF_NOEU'),
                    CRITERES=('SIEQ_ELGA', 'SIEQ_ELNO'),
                    MODELE=model,
                    RESULTAT=resnonl)

IMPR_RESU(identifier=u'13:1',
          FORMAT='MED',
          RESU=(_F(RESULTAT=resnonl),
                _F(RESULTAT=stress)),
          UNITE=80)

FIN()

Last edited by eva13 (2018-11-09 14:58:47)

Offline

#2 2018-11-05 17:59:54

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

Re: [SOLVED] Problem with simulation of a contact

hello

having the mesh would help to understand

and a question
what are these keywords like identifier=u'10:1' supposed to do

jean pierre aubry

Offline

#3 2018-11-06 11:15:16

eva13
Member
From: Lausanne
Registered: 2018-08-24
Posts: 31

Re: [SOLVED] Problem with simulation of a contact

Hi jeanpierreaubry,

Here you can see my analysis with this link
Concerning the keywords like identifier=u'10:1', I really don't know what are their utilities, but I noticed that it's written in the .mess file of other person when they post their .mess file... I really don't know more about it.
Thanks for your help !

https: //drive.google.com/open?id=1V5SMr2M1rEOA5Ji-J2oH2yus4dabbKDq

(I inserted a space just after https: because for some reason I was not able to post the link)

Offline

#4 2018-11-06 20:11:01

mecour
Member
Registered: 2011-04-04
Posts: 42

Re: [SOLVED] Problem with simulation of a contact

Hello Eva,

from your HDF file I can see that the ordinary cylinder has radius 60mm so it is bigger than you wrote. You need two faces in 3D contact simulation.
Another thing is that I don't know if it is good way to do contact simulation with two meshes. I usually use compound.
And finally I think that you model doesn't do anything. You just set up that hollow cylinder cant move in Z direction and ordinary cylinder cant move in any direction. You did not define any displacement or force acting on model.

mecour

Offline

#5 2018-11-07 10:52:41

eva13
Member
From: Lausanne
Registered: 2018-08-24
Posts: 31

Re: [SOLVED] Problem with simulation of a contact

Hi mecour,

Thank you for your answer !
I know that my analysis is doing nothing, but I don't understand why ! For me, the contact between the 2 surfaces generate a displacement of the hollow cylinder, so normally I must be able to see the deformation of the hollow cylinder... For me I don't need to impose a displacement because it is already impose by the contact. Did I miss something ?
For the compound, I don't see how to do my contact after because the two pieces will be just one, and I can't attribute different materials to each one...
Thank you again for your answer!

Eva

Last edited by eva13 (2018-11-07 14:53:44)

Offline

#6 2018-11-07 18:23:48

mecour
Member
Registered: 2011-04-04
Posts: 42

Re: [SOLVED] Problem with simulation of a contact

Hello,

I understand your idea, but I think the contact mechanics doesnt work in that way. The definition of contact faces doesnt generate the forces or displacements, it is only information for solver where the contact can occur during simulation, so if some part of model move or deform during simulation step, the solver evaluates if there is some contact on defined faces. It there some contact occurs the solver computes the deformation and so on...

About compound. The compoud function creates the unconnected bodies. Then you can create solid groups and assign different materials to each group. Look at this link: http: //docs.salome-platform.org/7/gui/GEOM/partition_explanation.html

mecour

Offline

#7 2018-11-07 19:30:35

konyaro
Member
From: Genève
Registered: 2016-04-02
Posts: 118

Re: [SOLVED] Problem with simulation of a contact

Hello,
I changed a few things:
- orientation of the contact surfaces
- weak springs in order to maintain the outer shell
- contact properties

It seems to work:

Deformed FluxBB

Konyaro

Last edited by konyaro (2018-11-07 19:30:57)


Attachments:
deformed.png, Size: 120.92 KiB, Downloads: 289

失敗は成功のもと (L'échec est la base de la réussite)

Offline

#8 2018-11-07 19:32:36

konyaro
Member
From: Genève
Registered: 2016-04-02
Posts: 118

Re: [SOLVED] Problem with simulation of a contact

attached the comm file.


Attachments:
twoCylinders.comm, Size: 3.87 KiB, Downloads: 31

失敗は成功のもと (L'échec est la base de la réussite)

Offline

#9 2018-11-08 06:55:00

mecour
Member
Registered: 2011-04-04
Posts: 42

Re: [SOLVED] Problem with simulation of a contact

Hello,

It looks nice, but how you can say that it works?!! There is no contact or interaction between two cylinders in your solution. You just deform the hollow cylinder with stiffness of used spring.

mecour

Offline

#10 2018-11-08 08:17:27

konyaro
Member
From: Genève
Registered: 2016-04-02
Posts: 118

Re: [SOLVED] Problem with simulation of a contact

Hello Mecour,
the deformation is due only to the contact. The springs are there just to constrain slightly the free DOF of the base.

K.

Last edited by konyaro (2018-11-08 08:30:15)


失敗は成功のもと (L'échec est la base de la réussite)

Offline

#11 2018-11-08 08:56:37

mecour
Member
Registered: 2011-04-04
Posts: 42

Re: [SOLVED] Problem with simulation of a contact

hello,

  there is no contact pressure on defined contact surface in computed results. And in right simulation when you deform the hollow cylinder uniformly in x and y-direction you have to get the uniform deformation in Z direction acording to nu-value. Your model deform only on side without the springs. The stiffnes of you spring is only about 1/5 of stiffnes of defined silicone material, I thing that is not "slightly" constraint.

mecour

Offline

#12 2018-11-08 11:46:57

eva13
Member
From: Lausanne
Registered: 2018-08-24
Posts: 31

Re: [SOLVED] Problem with simulation of a contact

Hi,

Thank you both of you for your answers guys ! For the moment I have no idea of how to do my contact, so I am trying to understand what konyaro did. Why do you use springs to constrain the free DOF? For me there is no free DOF in the analysis. And are you working with code aster or Salome meca ? Because I am trying to do your analysis on Salome meca and I can't because when I am trying to do this :

mesh = CREA_MAILLAGE(CREA_POI1=_F(GROUP_NO=('bc_lin', ),
                                  NOM_GROUP_MA='ressorts'),
                     MAILLAGE=mesh0)

but I cm't because I think that Salome meca doesn't update this :

mesh0 = DEFI_GROUP(reuse=mesh0,
                   CREA_GROUP_NO=_F(TOUT_GROUP_MA='OUI'),
                   MAILLAGE=mesh0)

so when I am trying to select a group of nodes, there is no group of nodes at all !

And mecour I think that 1/5 of stiffnes of the defined silicone material is a lot too, maybe it is working if we try a lower value for the stiffnes of the springs ?

Thank you again guys !!!

Eva

Offline

#13 2018-11-08 14:00:37

mecour
Member
Registered: 2011-04-04
Posts: 42

Re: [SOLVED] Problem with simulation of a contact

Hello,

To Konyaro: I have to apologize very much, it was my totally bad (rather stupid) look on the result. Your solution really work.
I try to modify a little your comm file and the simulation works also without the spring elements. Comm file attachement.

The absolute key role in simulation is option INTERPENETRE in DEFI_CONTACT. With option 'NON' it doesnt converge. But in initial mesh the contact faces are not in contact, so this option little cheat the solver in my opinion.


mecour

Last edited by mecour (2018-11-08 14:14:36)


Attachments:
twoCylinders_2.comm, Size: 3.28 KiB, Downloads: 14

Offline

#14 2018-11-08 16:19:59

eva13
Member
From: Lausanne
Registered: 2018-08-24
Posts: 31

Re: [SOLVED] Problem with simulation of a contact

Hi mecour,

I tried to do the same analysis as you, here is my analysis and I don't observe any displacement or contraints..
Can you tell me if it's working on yours ?
Attached you can see a picture of what I am obtaining

DEBUT()


mesh_lin = LIRE_MAILLAGE(
FORMAT='MED',
UNITE=20)

mesh_jam = LIRE_MAILLAGE(
FORMAT='MED',
UNITE=2)

mesh = ASSE_MAILLAGE(
MAILLAGE_1=mesh_lin,
MAILLAGE_2=mesh_jam,
OPERATION='SUPERPOSE')

mesh = MODI_MAILLAGE(
reuse=mesh,
MAILLAGE=mesh,
ORIE_PEAU_3D=(_F(GROUP_MA=('dis', )),
_F(GROUP_MA=('dis_jambe', ))))

mesh = DEFI_GROUP(
reuse=mesh,
CREA_GROUP_NO=_F(TOUT_GROUP_MA='OUI'),
MAILLAGE=mesh)

model = AFFE_MODELE(AFFE=_F(MODELISATION=('3D', ),
PHENOMENE='MECANIQUE',
TOUT='OUI'),
MAILLAGE=mesh)

silicone = DEFI_MATERIAU(
ELAS=_F(E=0.067,
NU=0.48))

acier = DEFI_MATERIAU(
ELAS=_F(E=210000.0,
NU=0.3))

fieldmat = AFFE_MATERIAU(
AFFE=(_F(GROUP_MA=('liner', ),
MATER=(silicone, )),
_F(GROUP_MA=('jambe', ),
MATER=(acier, ))),
MODELE=model)

listr = DEFI_LIST_REEL(
DEBUT=0.0,
INTERVALLE=_F(JUSQU_A=1.0,
NOMBRE=2))

times = DEFI_LIST_INST(
DEFI_LIST=_F(LIST_INST=listr,
PAS_MINI=1e-10),
METHODE='AUTO')

bc_lin = AFFE_CHAR_MECA(
FACE_IMPO=_F(DZ=0.0,
GROUP_MA=('bc_lin', )),
MODELE=model)

bc_jam = AFFE_CHAR_MECA(
FACE_IMPO=_F(DX=0.0,
DY=0.0,
DZ=0.0,
GROUP_MA=('bc_jambe', )),
MODELE=model)

contact = DEFI_CONTACT(
ALGO_RESO_CONT='NEWTON',
ALGO_RESO_GEOM='POINT_FIXE',
FORMULATION='CONTINUE',
LISSAGE='OUI',
MODELE=model,
NB_ITER_GEOM=2,
REAC_GEOM='CONTROLE',
ZONE=_F(CONTACT_INIT='INTERPENETRE',
GROUP_MA_ESCL=('dis', ),
GROUP_MA_MAIT=('dis_jambe', )))

resnonl = STAT_NON_LINE(
CHAM_MATER=fieldmat,
COMPORTEMENT=_F(DEFORMATION='GROT_GDEP',
RELATION='ELAS'),
CONTACT=contact,
EXCIT=(_F(CHARGE=bc_lin),
_F(CHARGE=bc_jam)),
INCREMENT=_F(LIST_INST=times),
MODELE=model)

stress = CALC_CHAMP(
CONTRAINTE=('SIEF_ELNO', 'SIEF_NOEU'),
CRITERES=('SIEQ_ELGA', 'SIEQ_ELNO', 'SIEQ_NOEU'),
MODELE=model,
RESULTAT=resnonl)

IMPR_RESU(
FORMAT='MED',
RESU=(_F(RESULTAT=resnonl),
_F(RESULTAT=stress)),
UNITE=80)


Attachments:
results.png, Size: 74.83 KiB, Downloads: 22

Offline

#15 2018-11-08 17:13:17

mecour
Member
Registered: 2011-04-04
Posts: 42

Re: [SOLVED] Problem with simulation of a contact

Hello,

i think you did the same mistake as me previuosly. The solution has two steps. Try to change to last step in paravis (VCR control toolbar or Current time controls toolbar)

mecour

Offline

#16 2018-11-08 17:30:43

eva13
Member
From: Lausanne
Registered: 2018-08-24
Posts: 31

Re: [SOLVED] Problem with simulation of a contact

Hi mecour,

You are totally right ! It's working ! Thank you so much for your help smile I am trying to see the deformed configuration (so I can see my results as konyaro), if you know how to do it I am interested wink Otherwise this problem is solved thank you again ! big_smile

Offline

#17 2018-11-08 18:46:02

mecour
Member
Registered: 2011-04-04
Posts: 42

Re: [SOLVED] Problem with simulation of a contact

Hello,

to see deformed mesh you need to Generate vectors in Properties panel and then use filter Warp by vector (you can click on it at Common toolbar) and click Apply in Properties panel. Then you can change the Scale of deformation and other operations.

mecour

Offline

#18 2018-11-08 22:14:04

lsalles
Member
From: Imperial College London
Registered: 2011-09-27
Posts: 33

Re: [SOLVED] Problem with simulation of a contact

Hi Eva,
Nice problem and probably it will useful for other users.
I happy to see that the community was very quick to find a solution to your problem. Looking at your problem I found those two discussions:
forum2/viewtopic.php?id=12967
and
forum2/viewtopic.php?id=20565

They may interest you,

Message for the developers, I think it will be a good idea to have a testcase in the validation basis of Code_Aster showing that contact boundary conditions are enough to solve this type of problem (interference fit).

Rgds,

Loic

Offline

#19 2018-11-09 08:47:45

konyaro
Member
From: Genève
Registered: 2016-04-02
Posts: 118

Re: [SOLVED] Problem with simulation of a contact

The reaction forces are not well balanced around the cylinder (left on the image).

I think that your Young’s modulus is so low that it’s better to use a penalized contact with a very low stiffness (ALGO_CONT='PENALISATION'). The reaction forces look much better (right on the image).

reaction forces

Konyaro

Last edited by konyaro (2018-11-09 08:48:04)


Attachments:
Reaction_forces.png, Size: 195.67 KiB, Downloads: 94

失敗は成功のもと (L'échec est la base de la réussite)

Offline

#20 2018-11-09 09:44:23

mecour
Member
Registered: 2011-04-04
Posts: 42

Re: [SOLVED] Problem with simulation of a contact

Hello Konyaro,

awesome work! Last year I tried to model hyperlelastic system o PDMS in PVC tube. Both material has extremely low moduli. The model didnt converge. Maybe your solution help me.

thanks

mecour

Offline

#21 2018-11-09 14:46:03

eva13
Member
From: Lausanne
Registered: 2018-08-24
Posts: 31

Re: [SOLVED] Problem with simulation of a contact

Hi everybody


mecour wrote:

Hello,

to see deformed mesh you need to Generate vectors in Properties panel and then use filter Warp by vector (you can click on it at Common toolbar) and click Apply in Properties panel. Then you can change the Scale of deformation and other operations.

mecour

mecour, thank you a lot it was exactly what I was searching for !

konyaro wrote:

I think that your Young’s modulus is so low that it’s better to use a penalized contact with a very low stiffness (ALGO_CONT='PENALISATION').
konyaro

konyaro thank you very much for this precision, I hope that it will help other person like mecour !

Isalles wrote:

Hi Eva,
Nice problem and probably it will useful for other users.
I happy to see that the community was very quick to find a solution to your problem. Looking at your problem I found those two discussions:
forum2/viewtopic.php?id=12967
and
forum2/viewtopic.php?id=20565
They may interest you,
Message for the developers, I think it will be a good idea to have a testcase in the validation basis of Code_Aster showing that contact boundary conditions are enough to solve this type of problem (interference fit).
Rgds,
Loic
Isalles

Thank you a lot for the two links they are really interesting ! I hope that my problem will help other people !

Offline

Board footer