particles go out of the container

Asked by ytang

Hi all,

I'm doing the cone penetration test, which means a cylinder and a cone combined together and then give it a vertical velocity to penetrate into the soil. I also applied a rotational velocity to the cone.

when the particles go out of the container, most of the time it's related to the timestep. In my code, I already set the maximum timestep. but the particles still go out of the container.

Here is the code:
####################################
from yade import ymport
from yade import pack,export,geom
import itertools
from numpy import *
import numpy as np
from yade import pack, plot, export, utils
import math
target=0.05
young=4e8
finalcompFricDegree=19.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.txt",material = sphereMat))

################################################ create the penetrator and shaft and the cylinder ##############################
facetMat=O.materials.append(FrictMat(young=young,poisson=0.3,frictionAngle=radians(finalcompFricDegree),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))

x0=0.2;y0=0.2;z0=0.39665
cylinderIDS= O.bodies.append(geom.facetCylinder((x0,y0,z0-0.02-0.0125),
 radius=0.0125,height=0.15,orientation=Quaternion((1, 0, 0), 0),wallMask=7,segmentsNumber=50, angleRange=None,material=facetMat))
coneIDS= O.bodies.append(geom.facetCone((x0,y0,z0-0.085825-0.02-0.0125),
 radiusTop=0.0125,radiusBottom=0.0,height=0.02165,orientation=Quaternion((1, 0, 0), 0),wallMask=7,segmentsNumber=50, angleRange=None,material=facetMat))
conecheck=O.bodies[-1].id
################################################ 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,maxDt = 0.6*PWaveTimeStep()), # here I limited the maximum timestep.
 NewtonIntegrator(gravity=(0,0,-9.81),damping=0.0),
 HelixEngine(angularVelocity=0,linearVelocity=-0.04,rotateAroundZero=True,zeroPoint=(x0,y0,z0),rotationAxis=(0,0,1),ids=cylinderIDS),
 HelixEngine(angularVelocity=(0*(2*pi/60)),linearVelocity=-0.04,rotateAroundZero=True,zeroPoint=(x0,y0,z0),rotationAxis=(0,0,1),ids=coneIDS),
 VTKRecorder(fileName='3d-vtk-',recorders=['all','bstresses'],iterPeriod=50000),
 #PyRunner(command='position_get()',iterPeriod=10000),
 #PyRunner(command='contact_info()',iterPeriod=10000),
 PyRunner(command='stop_loading()',iterPeriod=10000),
 PyRunner(command='displacement()',iterPeriod=10000),
 #PyRunner(command='coon()',iterPeriod=10000),
]

O.dt=.5*PWaveTimeStep() # here I set the timestep smaller than the critical timestep.
################################ get the displacement field #####################################################
vtk = export.VTKExporter("displacement")
def displacement():
 vtk.exportSpheres(ids="all",what=[('disp','b.state.displ()')],useRef=True)
########################## stop the simulation ###################################################################
def stop_loading():
 if ((O.bodies[conecheck].state.pos[2]-O.bodies[conecheck].state.refPos[2])*(-1))>target:
  O.pause()

O.run(5000000,True)
O.save('rotation_awn.yade.gz')
O.saveTmp()
#######################################

even though I set the timestep smaller than the critical timestep and also limited the maximum timestep. the particles still go out of the container.

here is a picture when the particles go out.
https://www.dropbox.com/sh/90mkb44qu9efw1h/AAAsgaXK2G0NL66gj3sphEu2a?dl=0

I'm wondering what's the possible reasons that the particles go out the box, except for the timestep.

thank you!
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
Best Jan Stránský (honzik) said :
#1

Hi,

> young=4e8
> facetMat=O.materials.append(FrictMat(young=young
> I'm wondering what's the possible reasons that the particles go out the box, except for the timestep.

e.g. stiffness :-) try to increase stiffness of the walls

> maxDt = 0.6*PWaveTimeStep()
> O.dt=.5*PWaveTimeStep()
> even though I set the timestep smaller than the critical timestep and also limited the maximum timestep. the particles still go out of the container.

here I am betting on the stiffness, but in general a time step below the critical value makes the simulation stable, but it does not necessarily help in this problem - e.g. if by some circumstances the velocity of particles is such high that it goes through the wall without even detecting the contact, the critical time step has no way how to help in this situation.

The factors 0.6 and 0.5 might easily be on the edge of the actual system critical time step for dense packing. PWaveTimeStep just computes the critical value for a single sphere-sphere pair, but in the dense packing there might be several interactions "in the same direction", making the system "stiffer" and you might need even lower value.

cheers
Jan

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

Hi Jan,

For my particles, I don't need to change the parameters, I just need to change the stiffness of the container.

How about the parameters of the cylinder and cone. Does the stiffness of the cylinder and the cone will also affect the particles go out the container?

thanks!
Yong

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

Hi Jan,
anyway, I 'll try your idea first.
thanks!
Yong

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

> How about the parameters of the cylinder and cone. Does the stiffness of the cylinder and the cone will also affect the particles go out the container?

not much I would say.. test it :-)

cheers
Jan

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

Hi Jan,

I will test it. Thank you!

best,
Yong

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

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