yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #12588
Re: [Question #293096]: incrememntal compression with engine
Question #293096 on Yade changed:
https://answers.launchpad.net/yade/+question/293096
Yor1 posted a new comment:
Hello Bruno,
Yes this loop is not doing anything.
In fact when i simulate with one list of engines, this loop is working.
It means that the loop is correct.
I think that i have the old engine dead to use a new engine
When i replace the engines with this portion of code, the loop is working
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Box_Aabb(),Bo1_Sphere_Aabb(aabbEnlargeFactor=intR,label='Saabb')]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR,label='SSgeom'),Ig2_Box_Sphere_ScGeom()],
[Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')],
[Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,Key=OUT,label='interactionLaw')]
),
TriaxialStressController(internalCompaction=False,label='triax'),
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.4, defaultDt=0.1*utils.PWaveTimeStep()),
NewtonIntegrator(damping=DAMP,label="newton"),
PyRunner(iterPeriod=int(saveData),initRun=True,command='recorder()',label='data'),
VTKRecorder(iterPeriod=int(saveVTK),initRun=True,fileName=OUT+'-',recorders=['spheres','jcfpm','cracks'],Key=OUT,label='vtk')
]
triax.stressMask=7
triax.goal1=confinement
triax.goal2=confinement
triax.goal3=confinement
triax.max_vel=0.01
while 1:
if confinement==0:
O.run(1000,True) # to stabilize the system
break
O.run(100,True)
unb=unbalancedForce()
#note: triax.stress(k) returns a stress vector, so we need to keep only the normal component
meanS=abs(triax.stress(triax.wall_right_id)[0]+triax.stress(triax.wall_top_id)[1]+triax.stress(triax.wall_front_id)[2])/3
print 'unbalanced force:',unb,' mean stress: ',meanS
if unb<0.005 and abs(meanS-abs(confinement))/abs(confinement)<0.001:
O.run(1000,True) # to stabilize the system
e10=triax.strain[0]
e20=triax.strain[1]
e30=triax.strain[2]
break
triax.stressMask=7
triax.goal1=confinement
triax.goal2=confinement
triax.goal3=confinement
triax.max_vel=0.1
for i in range(0,int(-1e-6*stress_max)):
if ( abs(triax.goal2) < abs(stress_max) ):
O.run(200,True)
triax.goal2+=delta_stress
triax.stressMask=5
triax.goal1=confinement
triax.goal2=strainRate
triax.goal3=confinement
triax.max_vel=1
Regards
Jabrane
--
You received this question notification because your team yade-users is
an answer contact for Yade.