← Back to team overview

yade-users team mailing list archive

[Question #676980]: PeriTriaxController control

 

New question #676980 on Yade:
https://answers.launchpad.net/yade/+question/676980

Hi,

While learning PeriTriaxController,I think I misunderstood the meaning of the parameters.The goal is the target pressure and relStressTol gives the target a range to float up and down.The condition at the end of compression is that any axis is within the range of goal+or-relStressTol and the unbalanced force is lower than maxUnbalanced.But  the terminal displays this data.
(0.0, 0.0, 0.0, nan)
(0.0, 0.0, 0.0, nan)
(0.0, 0.0, 0.0, nan)
(0.0, 0.0, 0.0, nan)
(0.0, 0.0, 0.0, nan)
(0.0, 0.0, 0.0, nan)
(0.0, 0.0, 0.0, nan)
(0.0, 0.0, 0.0, nan)
Finished

Please point out my mistake, thank you.
Feng

Here's my script

######################
# encoding: utf-8
from yade import pack, qt, plot

O.periodic=True

spheres=O.materials.append(FrictMat(young=64e9,poisson=0.12,density=2650,frictionAngle=0.0005))
s=O.materials.append(FrictMat(young=64e9,poisson=0.12,density=2650,frictionAngle=0.231))

sp=pack.SpherePack()
sp.makeCloud((0,0,0),(5,5,5),rMean=.5,rRelFuzz=.5,periodic=True)
n=sp.toSimulation(material=spheres)

O.engines=[
   ForceResetter(),
   InsertionSortCollider([Bo1_Sphere_Aabb()]),
   InteractionLoop(
      [Ig2_Sphere_Sphere_ScGeom()],
      [Ip2_FrictMat_FrictMat_FrictPhys()],
      [Law2_ScGeom_FrictPhys_CundallStrack()]
   ),
   PeriTriaxController(label='triax',
      goal=(20,20,20),stressMask=7,
      dynCell=True,maxStrainRate=(0.2,0.2,0.2),
      maxUnbalanced=1,relStressTol=1,
      doneHook='compactionFinished()'
   ),
   NewtonIntegrator(damping=.1),
   PyRunner(command='addPlotData()',iterPeriod=300),
]
O.dt=1*PWaveTimeStep()
O.trackEnergy=True
  
def addPlotData():
   print(triax.stress[0],triax.stress[1],triax.stress[2],unbalancedForce())

qt.View()
qt.Controller()
O.saveTmp()

def compactionFinished():
   for i in n:
        O.bodies[i].material = O.materials[s]

   triax.doneHook='triaxFinished()'
   triax.maxUnbalanced=1

def triaxFinished():
   print 'Finished'
   O.pause()

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.