lammps-analyser 0.1.0-pre-release-3

A CLI tool and language server for LAMMPS simulation input scripts.
Documentation
#
# Runs LAMMPS simulation electrolyte solutions
# echo            screen
variable        dcdfreq index 10000 
variable        thermofreq index 100
variable        rand equal 990416
variable        nlayers equal 100
variable        nsteps index 10000000
variable        temp index 250
variable        deltat equal 20
variable        Thot equal (v_temp+v_deltat)
variable        Tcold equal (v_temp-v_deltat)
variable        dofh  equal 1.5925
variable        dofo  equal 2.8151
variable        seedH equal 35543
variable        seedC equal 3356
variable        unused equal 69420
variable        dz equal 4.0
variable        inputname  index startnemd
variable        outputname string nemd1.TH${Thot}.TC${Tcold}
# variable        outputname index run3-113

# Define simulation conditios
units           real
boundary        p p p
atom_style      full

# Forcefield
pair_style      lj/long/tip4p/long long long  1 2 1 1 0.1546 10 10
pair_style      goop
pair_modify     mix arithmetic
kspace_style    pppm/disp/tip4p 1.0e-5
kspace_modify   force/disp/real 0.0001
kspace_modify   force/disp/kspace 0.0002


# Reads in previous configurations
read_data       ${inputname}.data


# Intramolecular interactions
bond_style      hybrid harmonic # OW-HW
bond_coeff      1 harmonic 5.102 0.9572
angle_style     hybrid harmonic # HW-OW-HW
angle_coeff     1 harmonic 2.198 104.52

# Intermolecular interactions: Define pair coefficients
pair_coeff 1 1 0.1852 3.1589 # O O TIP4P/2005 x
pair_coeff 1 2 0.0000 0.0000 # O H TIP4P/2005 x
pair_coeff 2 2 0.0000 0.0000 # H H TIP4P/2005 x

# Define Masses
mass 1 15.9994 # OW
mass 2 1.00794 # HW
# Define groups
group           water type 1 2
group           oxygen type 1
group           hydrogen type 2


#SIMULATION
neighbor        2 bin
neigh_modify    delay 5 every 1

# Thermostats
# Regions
#set up the  at the left end of the box
variable lx equal lx
variable ly equal ly
variable lz equal lz


variable  cbl equal $(-v_lz)/2.0+${dz}
variable  cbh equal ${lz}/2.0-${dz}
region cold1 block INF INF INF INF INF  ${cbl} units box
region cold2 block INF INF INF INF ${cbh} INF   units box

#set up the "cold region" in the middle of the box
#region hot_region block INF INF INF INF ${cbl} ${cbh} units box
region hot_region block INF INF INF INF -${dz} ${dz} units box

#cold regions  unification
region cold_region union 2 cold1 cold2 units box

#Apply thermostats
compute T_hot water temp/region hot_region
compute T_cold water temp/region cold_region
fix thermostatH water temp/csvr $(v_Thot*2/3) $(v_Thot*2/3) $(500*dt) $(v_seedH)
fix thermostatC water temp/csvr $(v_Tcold*2/3) $(v_Tcold*2/3) $(500*dt) $(v_seedC)
fix_modify thermostatH temp T_hot
fix_modify thermostatC temp T_cold

fix cons_mom all momentum 1 linear 1 1 1
compute mymom all momentum
compute mymomwater water momentum


variable function equal 12*sqrt(-1260) # Just for testing
variable pi equal PI

# Reset timestep
reset_timestep 0

timestep        1

fix 2 all nve what 

log ${outputname}.log

fix shakew water rattle 0.00001 200 0 b 1 a 1 # FB Shake Water

fix shakew2 water raatle  0.00001 200 0 b 1 a 1 # FB Shake Water

compute mom all mumentum
thermo          ${thermofreq}

thermo_style    custom step time etotal pe ke temp press pxx pyy pzz vol lx ly lz atoms density f_thermostatH f_thermostatC c_T_hot c_T_cold  c_mymom[*] c_mymomwater[*] f_imaginary
# dump            1 all dcd ${dcdfreq} ${outputname}.dcd
# dump_modify     1 unwrap yes
dump            2 all custom ${dcdfreq} ${outputname}.dump id type x y z vx vy vz ix iy iz
dump_modify     2 append no

# Compute profile water and ions
compute lwater water chunk/atom bin/1d z lower $(lz/v_nlayers) units box
fix profw water  ave/chunk 1 $(v_nsteps) $(v_nsteps) lwater  density/number density/mass  temp file ${outputname}water.profiles adof 2

# Compute prodile Oxygen and hydrogen
compute loxygen oxygen chunk/atom bin/1d z lower $(lz/v_nlayers) units box
fix tempoxy oxygen ave/chunk 1 $(v_nsteps) $(v_nsteps) loxygen density/number density/mass temp adof $(v_dofo) file ${outputname}oxygen.profiles
compute lhydrogen hydrogen chunk/atom bin/1d z lower $(lz/v_nlayers) units box
fix temphyd hydrogen ave/chunk 1 $(v_nsteps) $(v_nsteps) lhydrogen density/number density/mass temp adof $(v_dofh) file ${outputname}hydrogen.profiles

run   $(v_nsteps)
write_data      ${outputname}.data pair ij

compute  1 all rdf

# Invalid fix styles
compute  1 all temp

fix  12 all what

fix nvt all nvt water temp "hello"

invalid_command

run  2 

fix # Here to show what happens with in-complete commands.