← 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,

With your responses, I have been able to generate aabbwalls surrounding
polyhedra specimen.

However, after I modify the code of triax-basic.py, trying to run fast
triaxial test on polyhedrons, I found the aabbwalls cannot run as the
same way as the example does. Eventually I found I need an IPhysFunctor
like "Ig2_Box_Polyhedra_ScGeom" (like "Ig2_Box_Sphere_ScGeom" when
simulating with spheres or clumps) to make the aabbwalls able to
interact with polyhedras, which I cannot find.

So now the question looks to be "how to make aabbwalls able to interact
with polyhedras"?

Could you help me with this problem?

_______________________________________________________________________________________________________________________

CODE:

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

mn,mx=Vector3(0,0,0),Vector3(10,10,10)

O.materials.append(PolyhedraMat(young=15e6,poisson=.4,frictionAngle=0,density=0,label='frictionless'))

walls=aabbWalls(extrema=(mn,mx),thickness=1e-10,material='frictionless')
wallIds=O.bodies.append(walls)

polyhedra_utils.fillBox((0,0,0),
(10,10,10),gravel,sizemin=[1,1,1],sizemax=[0.1,0.1,0.1],seed=4)

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.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()]   # contact law -- apply forces
   	),
	GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
	triax,
	# you can add TriaxialStateRecorder and such here…
	NewtonIntegrator(damping=.4)
]
O.dt=polyhedra_utils.PWaveTimeStep()

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