yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #20725
[Question #684027]: How to use MatchMaker for two Ip2
New question #684027 on Yade:
https://answers.launchpad.net/yade/+question/684027
Hi,
I'd like to ask how to use MatchMaker for the case that there are two Ip2.
For example, in a triaxial simulation, there are 3 kinds of bodies : wall, sand and cement.
What I want to achieve for the simulation is that cement-cement and cement-sand contacts are CohFrictPhys (with cohesion) and wall-cement, wall-sand, sand-sand contacts are FrictPhys because I suppose adhesion only exists between cement-cement as well as cement-sand. And thanks for Jan's suggestion in [1], "using just CohFrictMat/CohFrictPhys and using MatchMaker for sand-sand contacts to behave like FrictPhys", I set the engines like below:
#########
wall=O.materials.append(FrictMat(young=30e9,poisson=0.5,frictionAngle=0,density=0,label='wall'))
sand=O.materials.append(CohFrictMat(isCohesive=True,young=30e9,poisson=0.5,frictionAngle=radians(30),density=2600.0,normalCohesion=1e6, shearCohesion=1e6,label='sand'))
cement=O.materials.append(CohFrictMat(isCohesive=True,young=30e9,poisson=0.5,frictionAngle=radians(30),density=2600.0,normalCohesion=1e6, shearCohesion=1e6,label='cement'))
##########
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Box_Sphere_ScGeom()],
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(
normalCohesion=MatchMaker(matches=((wall,wall,0),(wall,sand,0),(wall,cement,0),(sand,sand,0),(sand,cement,1e6),(cement,cement,1e6))),
shearCohesion=MatchMaker(matches=((wall,wall,0),(wall,sand,0),(wall,cement,0),(sand,sand,0),(sand,cement,1e6),(cement,cement,1e6))),
setCohesionNow=True),
Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),Law2_ScGeom_FrictPhys_CundallStrack()]
),
triax,
TriaxialStateRecorder(iterPeriod=100),
newton
]
My questions are:
1. Is there any conflict between MatchMaker and setCohesionNow=True? setCohesionNow is for assigning cohesion to all existing contacts in current time-step, I am afraid that MatchMaker makes normalCohesion of sand-cement equals 1e6 in all steps.
2.Is there any unnecessary coding such as (wall,wall,0) or (wall,sand,0) that I need to remove?
Many thanks
Leonard
[1]https://answers.launchpad.net/yade/+question/683706
--
You received this question notification because your team yade-users is
an answer contact for Yade.