yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #26852
[Question #700030]: When using the Hertz contact model, the consolidation can not be achieved
New question #700030 on Yade:
https://answers.launchpad.net/yade/+question/700030
When using the Hertz contact model, the consolidation can not be achieved, and the length of each side of the area is quite different, becoming a cuboid.
The main code is as follows:
num_spheres=3000
confiningPressure=-50000
## material parameters
compFricDegree=30#contact friction during the confining phase
finalFricDegree=30#contact friction during the deviatoric loading
young=7e10
poisson=.3
density=2650
en=0.2,
eta=0,
krot=0,
## control parameters
damp=0.3,
stabilityThreshold=.001,
## output specifications
filename='suffusion',
unknowOk=True
mn,mx=Vector3(0,0,0),Vector3(0.01,0.01,0.01)
psdSizes=[0.00042,0.0005,0.00208,0.0024]
psdCumm=[0.0,0.25,0.25,1.0]
# create materials for spheres
#shear strength is the sum of friction and adhesion, so the momentRotationLaw=True
O.materials.append(FrictMat(young=young,poisson=poisson,frictionAngle=radians(compFricDegree),density=density,label='spheres'))
O.materials.append(FrictMat(young=young,poisson=poisson,frictionAngle=0,density=0,label='walls'))
walls=aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)
# generate particles packing
sp=pack.SpherePack()
sp.makeCloud(mn,mx,psdSizes=psdSizes,psdCumm=psdCumm,distributeMass=True,num=num_spheres,seed=1)
sp.toSimulation(material='spheres')
## the krot is determined by kr=ks*ar*R1*R2,ar=1.25
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_MindlinPhys(en=en,es=en,eta=eta,krot=krot)],
[Law2_ScGeom_MindlinPhys_Mindlin(includeMoment=True)],
),
#GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
TriaxialStressController(label='triax',
# specify target values and whether they are strains or stresses
goal1=confiningPressure,goal2=confiningPressure,goal3=confiningPressure, stressMask=7,
# type of servo-control, external walls compaction
internalCompaction=False,
thickness=0,
),
NewtonIntegrator(damping=0.3)
]
After trying the above code but not working, in order to speed up the consolidation, I increased the damping to 0.7, and reduced the particle velocity to zero every two thousand steps, as shown below:
def reset_sphere_velocity():
for b in O.bodies:
if (isinstance(b.shape,Sphere)):
b.state.vel=(0,0,0)
O.engines=O.engines+[PyRunner(command='reset_sphere_velocity()',iterPeriod=2000)]
After the above attempts, it still cannot be consolidated as quickly as a linear model and the overall shape cannot be approximately maintained as a cube.
Is there any way to solve it, thank you very much!
--
You received this question notification because your team yade-users is
an answer contact for Yade.