yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #19541
Re: [Question #680307]: How can I applied PeriTriaxController on a box of polyhedras?
Question #680307 on Yade changed:
https://answers.launchpad.net/yade/+question/680307
Status: Answered => Open
Gavin He is still having a problem:
Hello Jérôme,
I have solved the verletDist and timestep problems.
However, I can not make the simulation run. It seems that it can only
run when the particles are all spheres or clumps, but not polyhedras.
I change the code as:
_______________________________________________________________________________________________________________________
from yade import pack, polyhedra_utils
gravel = PolyhedraMat()
gravel.density = 2600 #kg/m^3
gravel.young = 1E7 #Pa
gravel.poisson = 20000/1E7
gravel.frictionAngle = 0.5 #rad
polyhedra_utils.fillBox((0,0,0), (10,10,10),gravel,sizemin=[1,1,1],sizemax=[1,1,1],seed=4)
O.materials.append(FrictMat(young=15e6,poisson=.4,frictionAngle=0,density=0,label='frictionless'))
walls=aabbWalls(thickness=1e-10,material='frictionless')
wallIds=O.bodies.append(walls)
triax=TriaxialCompressionEngine(
wall_bottom_id=wallIds[2],
wall_top_id=wallIds[3],
wall_left_id=wallIds[0],
wall_right_id=wallIds[1],
wall_back_id=wallIds[4],
wall_front_id=wallIds[5],
internalCompaction=False,
## define the rest of triax params here
## see in pkg/dem/PreProcessor/TriaxialTest.cpp:524 etc
## which are assigned in the c++ preprocessor actually
sigmaIsoCompaction=-50e3,
sigmaLateralConfinement=-50e3,
max_vel=10,
strainRate=0.01,
label="triax"
)
O.dt=0.25
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Polyhedra_Aabb(),Bo1_Wall_Aabb(),Bo1_Facet_Aabb()],verletDist=5e-6),
InteractionLoop(
[Ig2_Wall_Polyhedra_PolyhedraGeom(), Ig2_Polyhedra_Polyhedra_PolyhedraGeom(), Ig2_Facet_Polyhedra_PolyhedraGeom()],
[Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys()], # collision "physics"
[Law2_PolyhedraGeom_PolyhedraPhys_Volumetric()]),
triax,
# you can add TriaxialStateRecorder and such here…
NewtonIntegrator(damping=.4)
]
from yade import plot
O.engines=O.engines[0:5]+[PyRunner(iterPeriod=20,command='history()',label='recorder')]+O.engines[5:7]
def history():
plot.addData(e11=-triax.strain[0], e22=-triax.strain[1], e33=-triax.strain[2],
s11=-triax.stress(0)[0],
s22=-triax.stress(2)[1],
s33=-triax.stress(4)[2],
i=O.iter)
plot.plots={'i':('e11','e22','e33',None,'s11','s22','s33')}
O.saveTmp()
plot.plot()
_______________________________________________________________________________________________________________________
It is supposed to be like the example in
https://www.youtube.com/watch?v=B2DIXJJvpwM&feature=youtu.be .
But here the walls have not been generated and the simulation has not been started.
--
You received this question notification because your team yade-users is
an answer contact for Yade.