New question #682985 on Yade:
https://answers.launchpad.net/yade/+question/682985
Hello, everyone!
I'm trying to take a constant-p simulation under different b(intermediate
principal stress ratio) with Yade but the result seems to be a bit strange. I
used non-spherical clumped particle consisting of two identical spheres and
periodic boundary condition. And this is the Stress ratio-Deviation strain
curve with different b.
As you can see, when b=0.0 and 1.0, the curve is quite normal whose stress
ratio has a peak and then drops, becomes steady. But when b=0.25 and 0.25,
after the peak, the stress ratio drops and then rises. The residual value of it
is even higher than the stress ratio when deviation strain is 0.3.
In my mind, this phenomenon would not happen in reality. Actually, some
researchers also do constant-p simulation with PFC-3D or Liggghts, but their
results didn't show this phenomenon.
Looking forward to your help, Thanks!
This is parts of my code:
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
PeriTriaxController(label='triax',
# specify target values and whether they are strains or stresses
goal=(sigmaIso1,sigmaIso1,sigmaIso1),stressMask=7,
# type of servo-control
dynCell=True,maxStrainRate=(10,10,10),
# wait until the unbalanced force goes below this value
maxUnbalanced=0.01,relStressTol=1e-3,
# call this function when goal is reached and the packing is
stable
doneHook='compactionFinished1()'
),
NewtonIntegrator(damping=.2),
PyRunner(command='check()',iterPeriod=100),
]
O.dt=.5*PWaveTimeStep()
def compactionFinished():
O.cell.trsf=Matrix3.Identity
triax.goal=(sigmaIso,sigmaIso,-.8)
triax.stressMask=3
triax.maxStrainRate=(1.,1.,.01)
triax.doneHook='triaxFinished()'
O.engines = O.engines +
[PyRunner(command='history()',iterPeriod=200,label='recorder')]
O.engines = O.engines +
[PyRunner(command='changeGoalStress()',iterPeriod=50,label='checker')]
triax.maxUnbalanced=10
def changeGoalStress():
s11=-triax.stress[0]
s22=-triax.stress[1]
s33=-triax.stress[2]
r=-((b + 1.0) * s33 -1 * 3 * 100000) / (b - 2.0)
s=-((1.0 - 2 * b ) * s33 + (b - 1) * 3 * 100000) / (b - 2.0)
triax.goal=(r,s,-0.8)
--
You received this question notification because your team yade-users 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