Ip2_CohFrictMat_CohFrictMat_CohFrictPhys

Asked by ytang on 2020-10-25

As we all know, Ip2 class is used to set the interactions for the particles.

Ip2_CohFrictMat_CohFrictMat_CohFrictPhys() is one of the Ip2 classes.

for this Ip2: CohFrictMat is the material properties for the sphere particles [1]
For instance, I can set the material properties like this:
sphereMat=O.materials.append(CohFrictMat(young=young,poisson=0.3,frictionAngle=radians(finalcompFricDegree),isCohesive=False,alphaKr=0.2,alphaKtw=0,etaRoll=0.5,momentRotationLaw=True,density=2648))
############################################################
 If I only search for this part: CohFrictPhys [2] (class yade.wrapper.CohFrictPhys). Under this class, there are some properties, for example, kn, ks, kr, etc..
############################################
If I only search for the whole class: ( Ip2_CohFrictMat_CohFrictMat_CohFrictPhys() )[3] .Under this class, there is one parameter which is named: frictAngle
################################################
################################################
Here are my questions:
[1]
################################
young=4e8
finalcompFricDegree=19.5
sphereMat=O.materials.append(CohFrictMat(young=young,poisson=0.3,frictionAngle=radians(finalcompFricDegree),isCohesive=False,alphaKr=0.2,alphaKtw=0,etaRoll=0.5,momentRotationLaw=True,density=2648)) #####(material properties)
###############
O.engines=[
 ForceResetter(),
 InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
 InteractionLoop(
   [Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Facet_Sphere_ScGeom()],
   [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()],
     [Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm=True,always_use_moment_law=True,label='cohesiveLaw')]
 ),
 GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.8),
 NewtonIntegrator(gravity=(0,0,-9.81),damping=0.0),
##################################
If I set the material properties by the code above (sphereMat).
What is the function of the CohFrictPhys?? (Here, I mean if we set the sphere's material properties by CohFrictMat. How can we use the properties under the CohFrictPhys?? <For example, where should I add the kn, ks, kr during the simulation?>)
####################################################################
2: If I set the frictionangle in CohFrictMat, what is the purpose of the frictAngle in Ip2 class?
For instance, if I set this class like this: Ip2_CohFrictMat_CohFrictMat_CohFrictPhys (frictAngle = 30).
Does this mean there are two friction angle for this kind of material??
##################################################################################

I know these are some basic knowledge, but I didn't fully understand before. I hope someone can give me some clear thoughts.

best,
Yong

references: [1] https://yade-dem.org/doc/yade.wrapper.html?highlight=cohfrictmat#yade.wrapper.CohFrictMat
[2] https://yade-dem.org/doc/yade.wrapper.html?highlight=cohfrictphys#yade.wrapper.CohFrictPhys
[3] https://yade-dem.org/doc/yade.wrapper.html?highlight=ip2_cohfrictmat_cohfrictmat_cohfrictphys#yade.wrapper.Ip2_CohFrictMat_CohFrictMat_CohFrictPhys

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Jan Stránský
Solved:
2020-10-26
Last query:
2020-10-26
Last reply:
2020-10-26

This question was reopened

Jan Stránský (honzik) said : #1

Hello,

> If I only search for the whole class: ( Ip2_CohFrictMat_CohFrictMat_CohFrictPhys() )[3] .Under this class, there is one parameter which is named: frictAngle

I see much more parameters, normalCohesion, shearCohesion, ...

> What is the function of the CohFrictPhys?? (Here, I mean if we set the sphere's material properties by CohFrictMat.

Simple resolution:

Mat is a property of particle. Usually (but not necessarily) there are a few materials and many particles share the same material.

Phys is a property of interaction. Always one IPhys instance belongs to one interaction (interactions does not share IPhys).

Ip2 takes two (possibly different) Materials and create IPhys.

You can modify both Mat and IPhys relatively independently (e.g. changing b.material has no effect on existing interactions, modifying i.phys has no effect on Material)

> How can we use the properties under the CohFrictPhys??
> For example, where should I add the kn, ks, kr during the simulation?

ideally nohow and nowhere, as it should be determined "automatically".
If you need to modify it, then it is an "advanced" manipulation, assuming you know what you are doing.

> 2: If I set the frictionangle in CohFrictMat, what is the purpose of the frictAngle in Ip2 class?
> For instance, if I set this class like this: Ip2_CohFrictMat_CohFrictMat_CohFrictPhys (frictAngle = 30).

Concerning frictAngle, doc says "Instance of MatchMaker determining how to compute interaction’s friction angle. If None, minimum value is used."
Please be more specific, what is not clear.

In this case, Ip2.firctAngle determines, how to set IPhys.tangensOfFrictionAngle according to Material(s).frictionAngle.
The interaction can connect bodies with different materials, with different values of firctionAngle. What should be the fractionAngle of the interaction? minimum? average? There is something default (minimum here for friction angle, but e.g. for stiffness it is a harmonic mean ) and for certain properties there is an option to adjust this behavior (using MatchMaker)

> Does this mean there are two friction angle for this kind of material??

see above for Ip2, Material and IPhys "definitions".

If you have just one material, it may seem that some of the values and properties are redundant.
But consider interactions connecting bodies with different materials, and the purpose should be clear.

cheers
Jan

ytang (ytang116) said : #2

Hi Jan,

> I see much more parameters, normalCohesion, shearCohesion, ...

You are right, there are more parameters. I just want to mention that under this class there is also one friction angle parameter.

> Ip2 takes two (possibly different) Materials and create IPhys.

If I understand correctly, for this ip2 class. we can define the material properties and then get the properties of the contacts.
###############################
For instance, I set the material properties as follows:
young=4e8
finalcompFricDegree=19.5
sphereMat=O.materials.append(CohFrictMat(young=young,poisson=0.3,frictionAngle=radians(finalcompFricDegree),isCohesive=False,alphaKr=0.2,alphaKtw=0,etaRoll=0.5,momentRotationLaw=True,density=2648)) #####(material properties)
###############
Then, by using this Ip2 class (Ip2_CohFrictMat_CohFrictMat_CohFrictPhys), the properties of the contact will be calculated automatically. these properties are the properties that contained under the CohFrictPhys <For example, the kn, ks, kr )
put it simply, we use the young and Poisson of the material to calculate the kn, ks, kr of the contacts (interactions).
the material properties here are properties that the user can modify it, while the interaction properties (kn, ks, kr) are read-only parameters here (however, these parameters can be changed by advanced manipulation).
##########################################
InYADE, the physical properties can be set through the material properties and the contact properties, or both.
(1) In the above case, we set the material properties to get the contact properties.
(2) for this case( Law2_ScGeom_MindlinPhys_Mindlin), we can set the contact properties in this class.

for example: Ip2_FrictMat_FrictMat_MindlinPhys(gamma=40e-3, betan = 0.6, betas = 0.3)
(3) we can also set the material properties for this class (Law2_ScGeom_MindlinPhys_Mindlin )
#######################################################################
#######################################################################
As for the friction angle, here is my understanding.
we set the friction angle for the materials and then we use the criteria (Ip2_CohFrictMat_CohFrictMat_CohFrictPhys() -----this is the criteria) to determine the friction angle of the contacts (interactions) ( IPhys.tangensOfFrictionAngle ).
If there is just one kind of material, the friction angle of the material will be the friction angle of the contacts (interactions).
for example: O.materials[0].frictionAngle=.5 # radians
for i in O.interactions: i.phys.tangensOfFrictionAngle=tan(.5)
################################################
If there are two kinds of materials, we have to use the criteria to determine the friction angle between the interface of material A and material B.
##############################
the above notes are my humble opinion. Please correct if I was wrong.

thanks!
Yong

references:[1]https://yade-dem.org/doc/yade.wrapper.html?highlight=ip2%20mindlinphys#yade.wrapper.Ip2_FrictMat_FrictMat_MindlinPhys

Best Jan Stránský (honzik) said : #3

Hello,

all yes, except below

> while the interaction properties (kn, ks, kr) are read-only parameters here (however, these parameters can be changed by advanced manipulation).

they are not read-only (only "a few" parameters in Yade are truly read-only), but yes, I consider modifying interaction properties as "advanced manipulation".

> If there is just one kind of material, the friction angle of the material will be the friction angle of the contacts (interactions).

by default. But if you e.g. use Ip2(frictAngle=0.1), then the interaction friction angle will be 0.1, regardless material values.

>If there are two kinds of materials, we have to use the criteria to determine the friction angle between the interface of material A and material B.

you do not have to use, there always is (should be) a reasonable default criteria

cheers
Jan

ytang (ytang116) said : #4

Thanks Jan Stránský, that solved my question.