← Back to team overview

yade-users team mailing list archive

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.