← Back to team overview

yade-users team mailing list archive

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