yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #25153
[Question #695934]: Compression won't stop when the goal of TriaxialStressController is reached
New question #695934 on Yade:
https://answers.launchpad.net/yade/+question/695934
Hi,
I'm currently doing a simple compression test. I set the stressMask to be 0 and goal1, goal2, goal3 to be -0.1 in the TriaxialStressController. However, when the strain reaches -0.1, the compression does not stop. I continue the simulation and the strain reaches -0.7 with no tendency to stop. I'm confused why this happens. Can anyone help me out?
Here's my code:
############################################
############################################
from yade import pack
SoilMat=CohFrictMat(young=2e9,poisson=0.3,density=2650,frictionAngle=0.7,alphaKr=50,alphaKtw=50,momentRotationLaw=True)
WallMat=CohFrictMat(young=2e20,poisson=0.5,frictionAngle=0.7,density=1000,label='walls',momentRotationLaw=True)
O.materials.append((SoilMat,WallMat))
mn,mx=Vector3(0,0,0),Vector3(100,100,100)
walls=aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)
Particle_num=8000
sp=pack.SpherePack()
sp.makeCloud((0,0,0),(100,100,100),rMean=.5,num=Particle_num)
sp.toSimulation(material=SoilMat)
triax=TriaxialStressController(
stressMask = 7,
thickness = 0,
max_vel=0.05,
internalCompaction=True, # If true the confining pressure is generated by growing particles
wall_bottom_activated=False,
wall_back_activated=False,
wall_left_activated=False,
goal1 = -30000, goal2 = -30000, goal3 = -30000,
)
newton=NewtonIntegrator(damping=0.2)
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Box_Aabb(),Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Box_Sphere_ScGeom6D(),Ig2_Facet_Sphere_ScGeom6D()],
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment()]
),
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
triax,
newton,
PyRunner(command='Step1()',realPeriod=1,label='SLM'),
]
def Step1():
print(abs((30000+triax.meanStress)/30000))
if abs((30000+triax.meanStress)/30000)<0.05:
triax.stressMask=0
triax.internalCompaction=False
triax.goal1=triax.goal2=triax.goal3=-0.1
SLM.command='Step2()'
def Step2():
print("%s: %s, %s" % (O.iter,triax.depth,triax.strain))
############################################
############################################
--
You received this question notification because your team yade-users is
an answer contact for Yade.