float particles
Dear all,
I have run a very simple script to prepare a packing with 10,000 particles. But when this process is finished with unbalancedForce lower than 0.01, I find there are more than 2,000 particles out of the total 10,000 particles without any interactions with other particles or walls ('float particles' for which O.bodies[
from yade import pack, qt, plot
import time
import numpy as np
#######
### DEFINING VARIABLES AND MATERIALS ###
#######
ts = time.time()
pressure = -1e5
r = 0.005
n = 10000
size0 = 0.3
mn,mx=Vector3(
## create materials for spheres and plates
O.materials.
O.materials.
## create walls around the packing
walls=aabbWalls
wallIds=
## use a SpherePack object to generate a random loose particles packing
sp=pack.
sp.makeCloud(
sp.toSimulation
print(len(
#######
### DEFINING ENGINES ###
#######
triax=TriaxialS
## TriaxialStressC
## this control of boundary conditions was used for instance in http://
#maxMultiplier
#finalMaxMulti
thickness = 0,
## switch stress/strain control using a bitmask. What is a bitmask, huh?!
## Say x=1 if stess is controlled on x, else x=0. Same for for y and z, which are 1 or 0.
## Then an integer uniquely defining the combination of all these tests is: mask = x*1 + y*2 + z*4
## to put it differently, the mask is the integer whose binary representation is xyz, i.e.
## "100" (1) means "x", "110" (3) means "x and y", "111" (7) means "x and y and z", etc.
stressMask = 7,
internalCompac
goal1 = pressure,
goal2 = pressure,
goal3 = pressure,
max_vel = 1,
)
newton=
O.engines=[
ForceResetter(),
InsertionSortC
InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),
## We will use the global stiffness of each body to determine an optimal timestep (see https:/
GlobalStiffnes
triax,
#TriaxialState
newton,
]
def addPlotData():
pp = utils.porosity() #this is the porosity of the cell.
ee = pp / (1-pp) #this is the void ratio of the 3D cell.
a = [i for i in O.bodies if i.intrs()==[]]
plot.
s11 = -getStress()[0,0],
s22 = -getStress()[1,1],
s33 = -getStress()[2,2],
Num = len(a)
)
plot.plots=
' i ':('void',),' i':('Num')
}
# show the plot
plot.plot()
yade.qt.
def savePack():
O.save(
def check():
unb=unbalance
if unb<0.01 and abs(pressure-
print('Packing generated!')
print('time: '+str((
O.save(
O.pause()
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Bruno Chareyre
- Solved:
- Last query:
- Last reply: