Can anyone review the code?

Siddharth K's picture
Submitted by Siddharth K on Wed, 06/10/2015 - 15:50

I am starting out with LIGGGHTS and would appreciate if anyone could take time to review the code that I have written for simulation. There is no error with it. The simulation has been running for last 14 hours and is on 61000 step as of now. I was just wondering if this is efficient way of doing it or it could be made better?

Thanks
--------------------------------------------------------------------------------------------
#################################################

# Wall import from CAD
atom_style granular
boundary m m m
newton off
atom_modify sort 0 0

communicate single vel yes
units si

region reg block -0.15 0.15 -0.15 0.15 -0.1 0.5 units box
region insertionZone cylinder z 0 0 0.10 0.35 0.5 units box
create_box 2 reg
#read_restart restart.e2quil

neighbor 43e-4 bin
neigh_modify delay 0 page 500000 binsize 1

#Material properties required for new pair styles

fix m1 all property/global youngsModulus peratomtype 5.e7 5.e7
fix m2 all property/global poissonsRatio peratomtype 0.45 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.5 0.5 0.5 0.5
fix m4 all property/global coefficientFriction peratomtypepair 2 0.2 0.175 0.175 0.5
fix m5 all property/global characteristicVelocity scalar 2. 2.

#New pair style
pair_style gran model hertz tangential history
pair_coeff * *
timestep 2.5e-6
fix 1 all nve/sphere
fix 2 all gravity 9.81 vector 0.0 0.0 -1.0
fix ts_check all check/timestep/gran 1000 0.1 0.1

#import hopper
fix cad all mesh/surface file hopper.stl type 1 scale 0.001

# Create a Stopper
fix stopper all wall/gran model hertz tangential history primitive type 2 zplane 0.0

#use the imported mesh as granular wall
fix meshwalls all wall/gran model hertz tangential history mesh n_meshes 1 meshes cad

#use the walls to fix
fix z1walls all wall/gran model hertz tangential history primitive type 1 zplane 0.5
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane -0.1
fix zwalls3 all wall/gran model hertz tangential history primitive type 1 xplane 0.15
fix zwalls4 all wall/gran model hertz tangential history primitive type 1 xplane -0.15
fix zwalls5 all wall/gran model hertz tangential history primitive type 1 yplane 0.15
fix zwalls6 all wall/gran model hertz tangential history primitive type 1 yplane -0.15

#distributions for insertion
fix mcc all particletemplate/sphere 1 atom_type 1 density constant 1440 radius constant 42e-5 volume_limit 1e-20
fix lac all particletemplate/sphere 1 atom_type 1 density constant 650 radius constant 203e-5 volume_limit 1e-20
fix pdd1 all particledistribution/discrete 1. 1 lac 1
fix pdd2 all particledistribution/discrete 1. 1 mcc 1
fix ts_check all check/timestep/gran 1000 0.1 0.1

group nve_group region reg

#particle insertion
#fix ins1 all insert/pack seed 100001 distributiontemplate pdd1 vel constant 0. 0. -4.8 &
insert_every 15 overlapcheck yes all_in no particles_in_region 15 region reg2
fix ins1 all insert/rate/region seed 1001 distributiontemplate pdd1 vel constant 0. 0. -4.8 mass 0.850 massrate 10 &
insert_every 2000 overlapcheck yes region insertionZone ntry_mc 10000

fix ts all check/timestep/gran 100 0.0001 0.0001

compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 f_ts[1] f_ts[2] vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes

#dump commands
dump dmp all custom 300 post/dump*.meshGran id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
dump dmpstl all mesh/stl 300 post/dump*.stl
#fix ts_check all check/timestep/gran 1000 0.1 0.1

#insert particles
run 30000 upto
unfix ins1
#run 28000 upto
run 35000 upto
fix ins2 all insert/rate/region seed 1001 distributiontemplate pdd2 vel constant 0. 0. -4.8 mass 0.150 massrate 10 &
insert_every 1000 overlapcheck yes region insertionZone ntry_mc 10000
run 40000 upto
write_restart restart.e3quil

unfix ins2
run 50000 upto
write_restart restart.e4quil

fix ins3 all insert/rate/region seed 1001 distributiontemplate pdd1 vel constant 0. 0. -4.8 mass 0.100 massrate 10 &
insert_every 1000 overlapcheck yes region insertionZone ntry_mc 10000
run 55000 upto
unfix ins3
run 65000 upto
write_restart restart.e5quil

unfix stopper
run 100000 upto
write_restart restart.e6.quil

Siddharth K's picture

Siddharth K | Wed, 06/10/2015 - 16:29

For the first insertion the number of atoms is 15256 particles (mass 0.849991) within 32000 steps, for the second one its around 5000 particles (0.100 g). I am not sure how to use mpirun command. Do you think it can be made faster.

Siddharth Kanungo
-----------------------------
Summer Research Intern
Chemical Engineering
Universite de Sherbrooke