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.
_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help : https://help.launchpad.net/ListHelp