← Back to team overview

yade-users team mailing list archive

[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.