forked from lijiext/lammps
182 lines
4.6 KiB
Plaintext
182 lines
4.6 KiB
Plaintext
# This script reproduces stress trajectories from Fig. 1 in
|
|
# Ravelo, Holian, Germann, and Lomdahl, PRB 70 014103 (2004)
|
|
#
|
|
# Three thermostatting scenarios are visited: undamped (nodrag),
|
|
# damped (drag) and Nose-Hoover chain (nhchains).
|
|
#
|
|
# The axial and shear stress trajectories are printed to the
|
|
# file "stress_vs_t.dat". For the damped case, the original figure
|
|
# seems to be a plot of 2*tau, rather than tau.
|
|
#
|
|
# The script also demonstrates how to
|
|
# orient a crystal along <110>,
|
|
# and how to use the lj/cubic pair style.
|
|
|
|
units lj
|
|
boundary p p p
|
|
|
|
atom_style atomic
|
|
|
|
# Set up FCC lattice with z axis along <110>
|
|
|
|
lattice fcc 1.4142136 &
|
|
orient x 0 0 1 &
|
|
orient y 1 -1 0 &
|
|
orient z 1 1 0
|
|
|
|
region mycell block 0.0 5.0 0.0 5.0 0.0 5.0 units lattice
|
|
create_box 1 mycell
|
|
mass * 1.0
|
|
create_atoms 1 box
|
|
|
|
# Using units of Rmin, so sigma = 2^-1/6 = 0.8908987
|
|
|
|
pair_style lj/cubic
|
|
pair_coeff * * 1.0 0.8908987
|
|
|
|
# Relax box dimensions
|
|
|
|
fix 3 all box/relax aniso 0.0 vmax 1.0e-4 nreset 100
|
|
|
|
thermo 100
|
|
thermo_style custom step temp pe etotal pxx pyy pzz lx ly lz
|
|
|
|
min_modify line quadratic
|
|
minimize 0.0 1.0e-6 10000 100000
|
|
|
|
# Define initial velocity
|
|
|
|
velocity all create 0.01 87287 mom yes rot yes dist gaussian
|
|
write_restart restart.equil
|
|
|
|
# Start Run #1
|
|
|
|
log log.nodrag
|
|
|
|
clear
|
|
read_restart restart.equil
|
|
|
|
neighbor 0.2 bin
|
|
neigh_modify every 1 delay 0 check yes
|
|
timestep 0.001
|
|
reset_timestep 0
|
|
|
|
# Pzz = 40.0, drag/damping term off
|
|
|
|
fix myhug all nphug temp 1.0 1.0 10.0 z 40.0 40.0 70.0 drag 0.0 tchain 1 pchain 0
|
|
|
|
# Specify reference state from paper, times 1000 atoms
|
|
|
|
fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519
|
|
|
|
# Add fix energy to ouput etotal
|
|
|
|
fix_modify myhug energy yes
|
|
|
|
# Define output
|
|
|
|
variable dele equal f_myhug[1] # energy delta [temperature]
|
|
variable us equal f_myhug[2] # shock velocity [distance/time]
|
|
variable up equal f_myhug[3] # particle velocity [distance/time]
|
|
variable pzz equal pzz # axial stress
|
|
variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress
|
|
variable time equal dt*step
|
|
|
|
thermo 1000
|
|
thermo_style custom step temp ke epair etotal pzz v_tau lz f_myhug v_dele v_us v_up
|
|
|
|
fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (no drag)'
|
|
|
|
#dump id all atom 500 dump.hugoniostat
|
|
|
|
#dump 2 all image 500 image.*.jpg type type &
|
|
# axes yes 0.8 0.02 view 60 -30
|
|
#dump_modify 2 pad 5
|
|
|
|
#dump 3 all movie 500 movie.mpg type type &
|
|
# axes yes 0.8 0.02 view 60 -30
|
|
#dump_modify 3 pad 5
|
|
|
|
run 10000
|
|
|
|
# Start Run #2
|
|
|
|
log log.drag
|
|
|
|
clear
|
|
read_restart restart.equil
|
|
|
|
neighbor 0.2 bin
|
|
neigh_modify every 1 delay 0 check yes
|
|
timestep 0.001
|
|
reset_timestep 0
|
|
|
|
# Pzz = 40.0, drag/damping term on
|
|
|
|
fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0 drag 200.0 tchain 1 pchain 0
|
|
|
|
# Specify reference state from paper, times 1000 atoms
|
|
|
|
fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519
|
|
|
|
# Add fix energy to ouput etotal
|
|
|
|
fix_modify myhug energy yes
|
|
|
|
# Define output
|
|
|
|
variable dele equal f_myhug[1] # energy delta [temperature]
|
|
variable us equal f_myhug[2] # shock velocity [distance/time]
|
|
variable up equal f_myhug[3] # particle velocity [distance/time]
|
|
variable pzz equal pzz # axial stress
|
|
variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress
|
|
variable time equal dt*step
|
|
|
|
thermo 1000
|
|
thermo_style custom step temp ke epair etotal pzz v_tau lz f_myhug v_dele v_us v_up
|
|
|
|
fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (with drag)'
|
|
|
|
run 10000
|
|
|
|
# Start Run #3
|
|
|
|
log log.nhchains
|
|
|
|
clear
|
|
read_restart restart.equil
|
|
|
|
neighbor 0.2 bin
|
|
neigh_modify every 1 delay 0 check yes
|
|
timestep 0.001
|
|
reset_timestep 0
|
|
|
|
# Pzz = 40.0, drag/damping term off, Nose-Hoover chains
|
|
|
|
fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0
|
|
|
|
# Specify reference state from paper, times 1000 atoms
|
|
|
|
fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519
|
|
|
|
# Add fix energy to ouput etotal
|
|
|
|
fix_modify myhug energy yes
|
|
|
|
# Define output
|
|
|
|
variable dele equal f_myhug[1] # energy delta [temperature]
|
|
variable us equal f_myhug[2] # shock velocity [distance/time]
|
|
variable up equal f_myhug[3] # particle velocity [distance/time]
|
|
variable pzz equal pzz # axial stress
|
|
variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress
|
|
variable time equal dt*step
|
|
|
|
thermo 1000
|
|
thermo_style custom step temp ke epair etotal pzz v_tau lz f_myhug v_dele v_us v_up
|
|
|
|
fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (Nose-Hoover chain)'
|
|
|
|
run 10000
|
|
|