80 lines
2.7 KiB
Plaintext
80 lines
2.7 KiB
Plaintext
# NOTE: This script can be modified for different atomic structures,
|
|
# units, etc. See in.elastic for more info.
|
|
#
|
|
# Define MD parameters
|
|
# These can be modified by the user
|
|
# These settings replicate the 1477~K benchmark of
|
|
# Kluge, Ray, and Rahman (1986) that is Ref.[15] in:
|
|
# Y. Zhen, C. Chu, Computer Physics Communications 183(2012) 261-265
|
|
|
|
# set log file
|
|
|
|
variable logsuffix index ortho
|
|
log log.elastic.${logsuffix}
|
|
|
|
# select temperature and pressure (lattice constant)
|
|
|
|
variable temp index 1477.0 # temperature of initial sample
|
|
variable a index 5.457 # lattice constant
|
|
|
|
# select sampling parameters, important for speed/convergence
|
|
|
|
variable nthermo index 1500 # interval for thermo output
|
|
variable nevery index 10 # stress sampling interval
|
|
variable neveryborn index 100 # Born sampling interval
|
|
variable timestep index 0.000766 # timestep
|
|
variable nlat index 3 # number of lattice unit cells
|
|
|
|
# other settings
|
|
|
|
variable mass1 index 28.06 # mass
|
|
variable tdamp index 0.01 # time constant for thermostat
|
|
variable seed index 123457 # seed for thermostat
|
|
variable thermostat index 1 # 0 if NVE, 1 if NVT
|
|
variable delta index 1.0e-6 # Born numdiff strain magnitude
|
|
|
|
# hard-coded rules-of-thumb for run length, etc.
|
|
|
|
variable nfreq equal ${nthermo} # interval for averaging output
|
|
variable nrepeat equal floor(${nfreq}/${nevery}) # number of samples
|
|
variable nrepeatborn equal floor(${nfreq}/${neveryborn}) # number of samples
|
|
variable nequil equal 10*${nthermo} # length of equilibration run
|
|
variable nrun equal 100*${nthermo} # length of equilibrated run
|
|
|
|
# this generates a general triclinic cell
|
|
# conforming to LAMMPS cell (upper triangular)
|
|
|
|
units metal
|
|
box tilt large
|
|
|
|
# unit lattice vectors are
|
|
# a1 = (a1x 0 0)
|
|
# a2 = (a2x a2y 0)
|
|
# a3 = (a3x a3y a3z)
|
|
|
|
variable a1x index 1
|
|
variable a2x index 0
|
|
variable a2y index 1
|
|
variable a3x index 0
|
|
variable a3y index 0
|
|
variable a3z index 1
|
|
variable atmp equal $a
|
|
variable l index $a
|
|
variable basis index "basis 0 0 0 basis 0.25 0.25 0.25 basis 0 0.5 0.5 basis 0.25 0.75 0.75 basis 0.5 0 0.5 basis 0.75 0.25 0.75 basis 0.5 0.5 0 basis 0.75 0.75 0.25"
|
|
lattice custom ${l} &
|
|
a1 ${a1x} 0 0 &
|
|
a2 ${a2x} ${a2y} 0 &
|
|
a3 ${a3x} ${a3y} ${a3z} &
|
|
${basis} &
|
|
spacing 1 1 1
|
|
|
|
region box prism 0 ${a1x} 0 ${a2y} 0 ${a3z} ${a2x} ${a3x} ${a3y}
|
|
|
|
create_box 1 box
|
|
create_atoms 1 box
|
|
mass 1 ${mass1}
|
|
replicate ${nlat} ${nlat} ${nlat}
|
|
velocity all create ${temp} 87287
|
|
|
|
|