yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #19566
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.