# Kn and Ks value for Hertz-Mindilin model

Asked by SayedHessam on 2019-04-23

This was an issue I ran into before with the Cundall-Strack law, and I am now also seeing with Hertz-Mindlin law. Hence, I am trying to input specific value for kn and ks for this contact model and the formulation proposed by yade, but I do not know what I can consider them in my simulation.

Is there a way to use these values? Would a simple Ip2_FrictMat_FrictMat_MindlinPhys(kn=5e5, ks=5e5)?

You can find herein the necessary part of my script.

Sam

############################## material new parameters ###############################
young =3e5 # elastic modulus [Pa]
poisson = 0.25
finalFricDegree=30
density = 1950
mn,mx=Vector3(-0.52e-3, -1e-3,-1e-3),Vector3(0.52e-3, 1e-3, 1e-3) #size of particle
identifier=str(particleDiameter)
output='./out/'+identifier
rate = strainRate*10000
stabilityThreshold=0.01
iterper=1000 # Periodicity criterion using step number (deactivated if <= 0)
kn=5e1 # Normal stiffness
ks=5e1 # Shear Stiffness
kr=0 # Rotational stiffness
Bn=0
Bs=0
##########################################################################################

Friction=O.materials.append(FrictMat(young=young, density=density, frictionAngle=radians(finalFricDegree), poisson=poisson, label='sphere'))

#frictionless walls
wallmat = O.materials.append(FrictMat(young=80e9, poisson=.45, frictionAngle=radians(finalFricDegree), density=7000, label='Walls'))

walls=aabbWalls([mn,mx], material='Walls')
wallIds=O.bodies.append(walls)

sp = O.bodies.append(ymport.textExt('sandGrain_0-6mmdiameter.spheres', 'x_y_z_r',color=(0,0.2,0.7), material='sphere'))

triax = TriaxialStressController(
thickness=0,
internalCompaction=False,
)

O.engines=[
ForceResetter(),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_MindlinPhys(betan=Bn,betas=Bs,ktwist=0.0,krot=ks,label='ContactModel')],
),
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.5),
triax,
NewtonIntegrator(damping=0.9)
]

O.dt = 0.3 * utils.PWaveTimeStep()

## Question information

Language:
English Edit question
Status:
Solved
For:
Assignee:
No assignee Edit question
Solved by:
SayedHessam
Solved:
2019-04-24
Last query:
2019-04-24
2019-04-23
 Robert Caulk (rcaulk) said on 2019-04-23: #1

Nope, I believe you need to make your own material class in C++. FrictMat uses the values Young and Poisson in collaboration with interacting particle radii to estimate Kn and Ks . There are a couple benefits to particle size based stiffnesses, one of which is the scale independence of macroscopic behaviors IINM, the other being the radii distribution based stiffness heterogeneity distribution.

 SayedHessam (samb6661) said on 2019-04-23: #2

Dear Robert,

thanks for your quick response.

BTW, for Hertz-Mindlin there are these parameters kn and ks , but you say I should make my material class in C++.

Cheers
Sam

 Robert Caulk (rcaulk) said on 2019-04-23: #3

You reference the physics of a single interaction, those values are computed inside Yade. Now that I think about it, you could let Yade compute those values and then overwrite them by looping through all interactions. From what I can see in the source, you will only need to do this once anytime new interactions are created.

for i in O.interactions:
i.phys.kn = 10
i.phys.ks = 5

 SayedHessam (samb6661) said on 2019-04-24: #4

Thanks Robert, that solved my question.

To post a message you must log in.