yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #06879
[Question #217304]: contact stiffness in samples
New question #217304 on Yade:
https://answers.launchpad.net/yade/+question/217304
Dear yade users,
I made a bouncing of 4 spheres with different diameters.
I varied the value of the damping (0.1 and 0.7) and I get the different value of contact stiffness (kn) used in the simulation.
My question:
How do you compute the contact stiffness? Is it kn is computed from the firs contact detected between the spheres?
Your answer would be appreciated. Thank you
I give you my script:
# -*- coding: utf-8 -*-
from yade import pack, plot
# basic simulation showing sphere falling ball gravity,
# bouncing against another sphere representing the support with cohesive contact law
# DATA COMPONENTS
# Geometry parameter to adapt
rad1 = 0.2
rad2 = 0.4
rad3 = 0.6
rad4 = 0.8
young_val = 1e7 # normal contact stiffness (N/m2)
# --- young_val= normal_contact_stiffness/radius
pois_val = 1.0 # shear contact stiffness (N/m2)
# --- pois_val= shear_contact_stiffness/normal_contact_stiffness
dens_sp = 2600 # density of the spheres (kg/m3)
angle_frict = 30.0 # friction angle (in degree)
c_normal = 1e6 # normal cohesion in contact (N/m2)
c_shear = 1e6 # shear cohesion in contact (N/m2)
## create materials for spheres and plates
O.materials.append(CohFrictMat(
young=young_val,
poisson=pois_val,
density=dens_sp,
frictionAngle=radians(angle_frict),
normalCohesion=c_normal,
shearCohesion=c_shear,
momentRotationLaw=False,
isCohesive=True,
alphaKr=0.0,
alphaKtw=0.0,
etaRoll=0.0,
label='spheres'))
# Blocked certain degress of freedom to make 2D-Model in plane-XZ
for k in O.bodies:
if isinstance(k.shape, Sphere): k.state.blockedDOFs='yXZ'
# add 2 particles to the simulation
# they the default material (utils.defaultMat)
O.bodies.append([
# fixed: particle's position in space will not change (support)
utils.sphere(center=(0,0,0),radius=rad1,fixed=True, material='spheres'),
# this particles is free, subject to dynamics
utils.sphere((0,0,2),rad2, material='spheres'),
# this particles is free, subject to dynamics
utils.sphere((0,0,4),rad3, material='spheres'),
# this particles is free, subject to dynamics
utils.sphere((0,0,6),rad4, material='spheres')
])
# FUNCTIONAL COMPONENTS
# simulation loop -- see presentation for the explanation
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom6D()], # collision geometry
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow = True, setCohesionOnNewContacts = True)], # collision "physics"
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(always_use_moment_law=False)] # contact law -- apply forces
),
# apply gravity force to particles
GravityEngine(gravity=(0,0,-9.81)),
# damping: numerical dissipation of energy
NewtonIntegrator(damping=0.7)
]
# set timestep to a fraction of the critical timestep
# the fraction is very small, so that the simulation is not too fast
# and the motion can be observed
O.dt=.5e-4*utils.PWaveTimeStep()
--
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.