No interactions while buiding small packing compared to the cell dimensions
Hello,
I met a surprising behaviour while preparing a sample of spheres, could you tell me if there is a rational answer to it ?
With the script given in this message, I build a packing of 100 spheres in a cell of dimensions 0.15*0.15*0.15. Then in a second and third time I compact it with internal and external compaction.
During the 2nd phase, my sphere should swell and should enter in contact with each other and/or the walls. However, it seems that there is no interactions between spheres and between spheres and walls, the spheres just merge and their radius blow up...
The very interesting thing is that if I make the cell smaller (0.05*0.05*0.05 in line 21 of the script ) or if I increase the number of spheres (500 in line 14), then it works perfectly...
What could explain that ?
####SCRIPT####
from yade import pack, plot
from math import pi
#######
### DEFINING VARIABLES AND MATERIALS ###
#######
load1=-20*10**3
load2=-100*10**3
young=356e6
poisson=0.42
frictAngle=32
density=2400
radiusRange=
num_spheres=100
stabilityThresh
EcTarget=10**-5
damp=0.05
# Create 6 bounding walls in order : left, right, bottom, top, back, front
O.materials.
dimCell=
wall_ids=[]
wall_ids+
wall_ids+
wall_ids+
wall_ids+
wall_ids+
wall_ids+
# Create the sphere assembly
O.materials.
sp=pack.
sp.makeCloud(
sp.toSimulation()
#######
# Engine definitions
#######
triax=TriaxialS
# Isotropic initial compression
# Comment if internalCompact
# Uncomment if internalCompact
)
O.engines=[
),
# GlobalStiffness
# timestepSafetyC
triax,
]
#######
# Start isotropic compression with internal compaction
#######
O.dt=0.
test=False
while test==False:
O.run(
unb=
mean=
test=
print '\r unbalanced force:',unb,' mean stress: ',triax.meanStress, O.iter,
sys.
O.save(
print "\n ### Isotropic state saved ###"
#######
# Start isotropic compression without internal compaction
#######
triax.internalC
triax.goal1=
# Enable energy tracking
O.trackEnergy=True
with open('record_
f.write('Iter Ec\n')
test=False
while test==False:
O.run(
Ec=
mean=
test=
with open('record_
print '\r Ec:',Ec,' mean stress: ',triax.meanStress, O.iter,
sys.
Question information
- Language:
- English Edit question
- Status:
- Expired
- For:
- Ubuntu yade Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply: