Model reproducibility
Hello All,
My shear cell models seem to have an issue with reproducibility. Has anyone else had a problem, or do you have a suggestion for fixing the issue? Maybe it is just a stability issue and something is wrong with verlet distances or timestep size/stability and I am missing it?
I include some basic info here and put my code below. My code/geometry and a figure showing the issue when starting with the exact same geometry can all be downloaded from:
http://
Shear cell models, both the upper and lower wall move at the same velocity, with and w/o grooved boundaries. 24-32,000 particles, always run on the same 6 core desktop machine.
number of timestep: 500-1000K, dt=0.015, 0.03, 0.04 etc. dy = 0.00015 (for dt=0.03 scale for other dt to keep the same velocity)
Normal_
shear_mix.
k=1.0, kbreak=1000.0
bond_param=
Header and first 2 particles of my .geo file:
LSMGeometry 1.2
BoundingBox 0 0 0 60 60 20
PeriodicBoundaries 1 0 0
Dimension 3D
BeginParticles
Simple
32333
1.00001 1.00001 1.00001 0.4269594383 120 0
1.737196371 0.6055138908 1.605759093 0.6055137908 1464 8
run with: mpirun -np 7 $LSM_PATH/mpipython $LOCAL_
Thanks for any suggestions,
AndyR
from esys.lsm import*
from esys.lsm.util import*
from time import*
#define a Runnable class for compression loading during the simulation
class Loading(Runnable):
def __init_
Runnable.
self.sim=sim
self.dy=dy
self.counter=0
self.t0=t0
self.fn=fn
self.
def run(self):
if(self.
self.
self.
#elif(
# self.sim.
# self.sim.
else: # this part does the ramp
dyt=
self.
self.
self.
self.
self.
if((self.
runtime=
npart=
print "timestep: ",self.
def runSimulation():
cpux=3
cpuy=2
cpuz=1
geometry_
t0=500 #the time we want to be at for full speed
nt=500000
dt=0.03
dt_snap=5000
dt_force=5000
dt_save=5000
xmax=60.0
ymax=58.0
zmax=18.0
dy=0.00003 #change in y each time step
fn=0.0005*
shear_
shear_
shear_
shear_
shear_
# particle interactions
#frictional interactions if they aren't bonded - elastic if they are
fric_coeff=0.5
stiffness=1.0
fric_coeffw=0.1
fric_prmweak1=
fric_prmweak2=
fric_prm=
fric_prmwall1=
fric_prmwall2=
shear_
shear_
shear_
shear_
shear_
# Make bonded interactions
k=1.0
kbreak=1000.0
bond_param=
k,
k*0.2,
k*0.08,
k*0.035,
kbreak*0.00025,
kbreak*0.00125,
kbreak*0.000125,
kbreak*0.000125,
0)
shear_
shear_
shear_
shear_
#create upper and lower walls to move and compress the model
shear_
name="lowerWall",
posn=Vec3(
normal=
)
shear_
name="upperWall",
posn=Vec3(
normal=
)
#side walls to keep the particles from falling out
shear_
name="frontWall",
posn=Vec3(
normal=
)
shear_
name="backWall",
posn=Vec3(
normal=
)
#Make walls interact with grains, first two elastic
wp1=NRotElasti
wp2=NRotElasti
#Make walls bonded to grains
wp3=NRotBonded
wp4=NRotBonded
#Create particle wall interactions
shear_
shear_
shear_
shear_
shear_
shear_
kin_file_
ek_prm=
fieldName="e_kin",
fileName=
fileFormat="SUM",
beginTimeStep=0,
endTimeStep=nt,
timeStepIncr=1
)
shear_
# in matlab add, line by line, epot, epot_w1, epot_w2.dat. Energy at each timestep
ep_prm=
interaction
fieldName=
fileName=
fileFormat=
beginTimeSt
endTimeStep=nt,
timeStepIncr=1
)
shear_
ep_prm=
shear_
ep_prm=
shear_
# Number of frictional interactions for each kind of frictional particle
# either add them line by line - or leave apart for analysis of each one
nf_prm=
interactionNam
fieldName="count",
fileName=
fileFormat="SUM",
beginTimeStep=0,
endTimeStep=nt,
timeStepIncr=1
)
shear_
nf_prm=
shear_
nf_prm=
shear_
nf_prm=
shear_
# Note nfriction+
wf_prm=
shear_
#wall position saver
wp_prm=
shear_
# Create a checker to save snap shots
cp=CheckPointPrms(
fileNamePrefix
beginTimeStep=0,
endTimeStep=nt,
timeStepIncr=
)
#instantiante checkpointer
shear_
#output force chains for strong particles
partforce_
interaction
fieldName=
fileName=
fileFormat=
beginTimeSt
endTimeStep=nt,
timeStepInc
)
shear_
#output force chains for weak particles, can cat together
partforce_
shear_
partforce_
shear_
# Save the simulation to restart
shear_
CheckPointPrms(
fileNamePrefi
beginTimeStep
endTimeStep=nt,
timeStepIncr=
)
)
vrs=shear_
print "Current ESYS Version: ", vrs
load=Loading(
shear_
# execute the simulation
shear_mix.run()
if (__name__ == "__main__"):
runSimulation()
Question information
- Language:
- English Edit question
- Status:
- Answered
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask AndyRathbun for more information if necessary.