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.

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to