interface friction angle

Asked by ytang

Hi All,

I hope you are doing well.
####################################################
Recently, I am doing a cone penetration simulation. the following is part of the code.
##############################################################
from yade import ymport
import itertools
from numpy import *
import numpy as np
from yade import pack, plot, export, utils,geom
import math
target=0.12
young=4e8
finalcompFricDegree=19.5
frictDegree = 39.5
############################################# sphere particles material properties ########################
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))
O.bodies.append(ymport.text("rotation-loose-sample-Dr-03.txt",material = sphereMat))
################################################ create the penetrator and shaft and the cylinder ##############################
facetMat=O.materials.append(FrictMat(young=young,poisson=0.3,frictionAngle=radians(frictDegree),density=0))
O.materials.append(FrictMat(young=young,poisson=0.3,frictionAngle=0,density=0,label='walls'))
facets = O.bodies.append(geom.facetCylinder((200e-3,200e-3,300e-3),200e-3,600e-3,wallMask=6,material='walls',segmentsNumber=100))
############################################### coloring #####################################################
############################ cone and shaft geometry parameter #######################
x0=0.2;y0=0.2;z0=0.39665
####################################################################################
cylinderIDS= O.bodies.append(geom.facetCylinder((x0,y0,0.416651),
 radius=0.0125,height=0.15,orientation=Quaternion((1, 0, 0), 0),wallMask=5,segmentsNumber=10, angleRange=None,material=facetMat))
################################################################################
coneIDS= O.bodies.append(geom.facetCone((x0,y0,0.3308255),
 radiusTop=0.0125,radiusBottom=0.0,height=0.021651,orientation=Quaternion((1, 0, 0), 0),wallMask=6,segmentsNumber=10, angleRange=None,material=facetMat))
conecheck=O.bodies[-1].id
############################ cone and shaft geometry parameter ############################
###########################################################################################
############################## set the global engine for the simulation####################
O.engines=[
 ForceResetter(),
 InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
 InteractionLoop(
   [Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Facet_Sphere_ScGeom()],
   [Ip2_FrictMat_FrictMat_FrictPhys(),Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()],
     [Law2_ScGeom_FrictPhys_CundallStrack(),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)]
#####################################################################
#####################################################################

Generally speaking, the friction angle for particles is 19.5 degrees, while the friction angle for the penetrator (cylindyer+cone) is 39.5 degrees.
I also set the friction angle for the penetrator as 29.5 degrees. (I just changed the friction angle for the penetrator, the friction angle for the particle remains the same. )

when I compare the penetration resistance on the cone for the 29.5-degree case and the 39.5-degree case. the penetration resistance on the cone is exactly the same.
###########################################
my question is:
how does Yade choose the interface friction angle between the interactions when the friction angles were not the same for the particles and the penetrator?

best,

Yong

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Jan Stránský
Solved:
Last query:
Last reply:
Revision history for this message
Luc Scholtès (luc) said :
#1

Hello,

I think the rule for the contact laws you are using is:

contact friction angle = min (friction angle body1, friction angle body2)

In your case, the cone/particle contact friction angle is thus always equal to 19.5 degrees (particle friction angle) if I understood correctly.

Unfortunately, I don't know any "python workaround" to change this rule. From my knowledge, only a change in the C++ code would allow you to have a different behavior. To be confirmed...

Luc

Revision history for this message
Best Jan Stránský (honzik) said :
#2

Hello,

The combination of material parameters into interaction parameters is usually done inside Ip2.
In your code specifically Ip2_FrictMat_FrictMat_FrictPhys, Ip2_CohFrictMat_CohFrictMat_CohFrictPhys.
The resulting interaction value is in both cases documented ([1,2]) as given MatchMaker, or minimum value by default.
You can also see source code [3,4].

In your case, minimum value is in both cases 19.5 deg.
So your results corresponds to the implementation choice.

Cheers
Jan

[1] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_FrictPhys.frictAngle
[2] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Ip2_CohFrictMat_CohFrictMat_CohFrictPhys.frictAngle
[3] https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/FrictPhys.cpp#L39
[4] https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/CohesiveFrictionalContactLaw.cpp#L289

Revision history for this message
ytang (ytang116) said :
#3

Hi Luc and Jan,

Thank you very much!

I'm not trying to change the source code right now. I just want to double-check the reason for this question.

best,
Yong

Revision history for this message
ytang (ytang116) said :
#4

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