yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #15501
[Question #656214]: problem replacing TriaxialStressController with PeriTriaxController
New question #656214 on Yade:
https://answers.launchpad.net/yade/+question/656214
Hi All,
I am trying to compress a packing of aggregates periodically. The packing contains sets of clumps which are rigid.
I originally compressed the volume using the TriaxialStressController, and now I want a periodic packing and am trying to use the PeriTriaxController. However, the simulation doesnt want to run. I get one timestep where the periodic spheres appear at the boarder and then nothing moves. I have been trying to read through the documentation for PeriTriaxController but nothing stands out.
Could someone please point me in the right direction here? Is the problem the rigidclumps which is then immediately stopping the simulation?
The code for the triax controller is below in comments along with the PeriTriax controller.
Thank you in advance!
Jesse
########################
from yade import export,ymport
import random
random.seed(1)
dim = Vector3(2e-6,2e-6,2e-6)
#walls = aabbWalls((-dim,dim))
#wallIds = O.bodies.append(walls)
#print(wallIds)
#for wall in wallIds:
# print(O.bodies[wall].state.pos)
O.materials.append(FrictMat(density=1e6,frictionAngle=0))
O.periodic=True
O.cell.setBox(2e-6,2e-6,2e-6)
attrs = []
sp = ymport.textExt('/tmp/divided.txt',format='x_y_z_r_attrs',attrs=attrs)
n = max(int(a[0]) for a in attrs)+1
colors = [randomColor() for _ in xrange(n)]
agglomerates = [[] for _ in xrange(n)]
for s,a in zip(sp,attrs):
aa = int(a[0])
s.agglomerate = aa
s.shape.color = colors[aa]
agglomerates[aa].append(s)
for a in agglomerates:
O.bodies.appendClumped(a)
print('Number of particles = ' , len(O.bodies))
O.engines = [
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
#[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()], ##triax only
[Ig2_Sphere_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
#TriaxialStressController(
#thickness = 0,
#stressMask = 7,
#internalCompaction = False,
#label = 'compressor',
#),
PeriTriaxController(
#thickness = 0,
stressMask = 7,
#internalCompaction = False,
# type of servo-control
dynCell=True,
#maxStrainRate=(10,10,10),
# wait until the unbalanced force goes below this value
maxUnbalanced=.1,relStressTol=1e-9,
# call this function when goal is reached and the packing is stable
doneHook='compactionFinished()',
label = 'compressor'
),
#NewtonIntegrator(damping=.6), ##Triaxonly
NewtonIntegrator(damping=.2),
]
factor = .5
O.dt = factor * PWaveTimeStep()
#compressor.allowBiggerThanPeriod=True
#print(compressor.height)
#compressor.goal1 = compressor.goal2 = compressor.goal3 = -1e-3
#compressor.goal1 = compressor.goal2 = compressor.goal3 = -1e-5
sigmaIso = -1e-10
compressor.goal = (sigmaIso,sigmaIso,sigmaIso)
O.run(50000,True)
--
You received this question notification because your team yade-users is
an answer contact for Yade.