Hello,
I am trying to make reflective walls similar to the fix wall/reflect command (which, for some reason, is no longer available in the current versions of LIGGGHTS). The reason for this is I have the simulation spheres passing directly through rapidly moving walls, rather than impacting them. In order to try to solve this, I have tried using higher Young's moduli (Y= 1e10 Pa), reducing the timestep (once to .0000000005 sec, which still caused wall penetration), none of which worked. My question is
1) how can I create a rapid wall impact that cannot be penetrated by particles (similar to fix wall/reflect in LAMMPS)
2) if this is not possible, as I have read (many) posts of people having this problem where there is not a clear answer on how to proceed, how can I create a shock wave that propagates through my granular packing?
I attach some pictures that show my particles penetrating the moving wall, even at timestep <<< 0.00000001
Thank you for your time and help
Best,
Carlos
paul | Tue, 01/16/2018 - 09:14
Would you mind sharing your
Would you mind sharing your input script or a minimal working example?
How rapidly is your wall moving? Do you fulfill the Hertz criterion? Is U_{rel,max} * dt << r_P ?
An alternative to using a moving wall is setting the velocity of particles within a region (the first layer of particles) to a high value, using the set command.
- Paul
c97 | Tue, 01/16/2018 - 20:33
Paul,
Paul,
First of all, thank you for your response.
In the script I include below (CAD is included and attached to the original question), (U_{rel,max} * dt)/ (r_P) = 1000 , so the Hertz criterion is satisfied. I have gone up as far as (U_{rel,max} * dt)/ (r_P) = 100000 with similar results.
### Shock wave generation
###
###
###
### This simulation establishes a static packing within the first 25000
### timesteps, and then produces a wall impact.
###
###
###
### Particle pos/vel are obtained at each timestep for visualization
### purposes, along with sequential images of the cad model
###
### Initialization
# Preliminaries
units si
atom_style granular
boundary f f f
newton off
communicate single vel yes
hard_particles yes
# Declare domain
region reg block -.5 .5 -.6 .5 -1 1 units box
create_box 2 reg
neighbor 0.05 bin
neigh_modify delay 0
#Material properties
fix m1 all property/global youngsModulus peratomtype 10.e9 1e99
fix m2 all property/global poissonsRatio peratomtype 0.45 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.9 0.9 0.9 0.9
fix m4 all property/global coefficientFriction peratomtypepair 2 0.05 0.05 0.05 0.05
fix m5 all property/global characteristicVelocity scalar 2.
#pair style
pair_style gran model hertz tangential history
pair_coeff * *
timestep 0.00005
fix 1 all nve/sphere
fix 2 all gravity 50 vector 0.0 0.0 -1.0
#box walls
fix boxwalls_x1 all wall/gran model hertz tangential history primitive type 1 xplane -0.5
fix boxwalls_x2 all wall/gran model hertz tangential history primitive type 1 xplane +0.5
fix boxwalls_y1 all wall/gran model hertz tangential history primitive type 1 yplane -.6
fix boxwalls_y2 all wall/gran model hertz tangential history primitive type 1 yplane +0.5
fix boxwalls_z1 all wall/gran model hertz tangential history primitive type 1 zplane -1.0
fix boxwalls_z2 all wall/gran model hertz tangential history primitive type 1 zplane +1.0
fix cad1 all mesh/surface file meshes/square_wall.stl type 2 scale .99 move 0. 0. -.5 rotate axis 1. 0. 0. angle 90.
# Particle insertion
#region of insertion
region bc block -0.5 0.5 -.6 .4 -.9 .9 units box
#particle distributions
fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant 2500 radius constant 0.025
fix pdd1 all particledistribution/discrete 15485867 1 pts1 1.0
fix ins all insert/pack seed 32452843 distributiontemplate pdd1 vel constant 0. 0. 0. &
insert_every 22000 overlapcheck yes all_in yes particles_in_region 8000 region bc
#thermo settings
thermo_style custom step atoms ke vol
thermo 1000
thermo_modify lost ignore norm no
### Execution and further settings
### Settle particles in simulation domain.
fix wall1 all wall/gran model hertz tangential history mesh n_meshes 1 meshes cad1
run 2000 upto
velocity all set 0. 0. 0.
unfix ins
run 6000 upto
velocity all set 0. 0. 0.
unfix 2
fix 2 all gravity 9.81 vector 0.0 0.0 -1.0
velocity all set 0. 0. 0.
run 7000 upto
velocity all set 0. 0. 0.
run 24000 upto
velocity all set 0. 0. 0.
run 25000 upto
### RUN ACTUAL SIMULATION. SET UP DUMP. PRODUCE PLATE IMPACT
timestep .00000005
dump dmp all custom 500 post/movingWallCAD_*.post id type x y z vx vy vz radius fx fy fz
dump dumpstl all mesh/stl 500 post/dump*.stl
# impact
fix movecad1 all move/mesh mesh cad1 linear 0. -500 0.
run 10000
unfix movecad1
run 20000
What you suggest is a fine alternative, and I will try to implement that in the code. Since my wall is granular, it may be the case that the particles will interact with the moving particle layer that you mentioned the same way that the granular wall is acting currently. I will try it and come back with any findings. If you find anything intrinsically wrong with the script may you please let me know!
Thank you again, it is always nice when someone is trying to help
Carlos
paul | Wed, 01/17/2018 - 20:27
Your Youngs modulus for the
Your Youngs modulus for the wall is 1e99. That is not sane, the contact forces will be huge and no matter what your timestep is, it will not be able to resolve that "collision".
- Paul