Schema for LAMMPS input¶
The schema to configure the LAMMPS input file to perform atomistic simulations.
The sections of the schema are:
-
Define the atomic structure.
structure
(dict): Define the atomic structure.
-
Define the simulation
md
(dict): Define parameters for the molecular dynamics simulation.optimize
(dict): Define parameters for the optimization.
Schema:¶
### Schema for YAML configuration to generate LAMMPS input script
### Similar to [ASE's schema](https://thangckt.github.io/alff_doc/schema/config_ase/), except the key `calc` is removed.
structure: ### ANCHOR: Define atomic structure
type: dict
required: True
schema:
read_data: # the path to the *.lammps_data file as initial structure
type: string
read_restart: # the path to the *.lammps_restart file as initial structure
type: string
pbc: # set periodic bounday condition. Default [1, 1, 1]
type: list
units: # units for LAMMPS. Default is 'metal'. Choices: 'metal', 'real', 'lj'
type: string
atom_style: # atom style for LAMMPS. Default is 'atomic'. Choices: 'atomic', 'charge', 'molecular',...
type: string
dimension: # dimension of the simulation. Default is 3
type: integer
pair_style: # pair style for LAMMPS. Default is ['eam/alloy']
type: list
pair_coeff: # pair coefficients for LAMMPS. Default is ['* * Cu_Mishin2001.eam.alloy Cu']
type: list
optimize: ### ANCHOR: Parameters to run optimization the structure
type: dict
schema:
fmax: # force convergence criteria. Default is 0.05 eV/Ang
type: float
mask: # 1x6 array of booleans: 1 for relax, 0 for fixed; indicating which of the six independent components of the strain are relaxed. Default is: pbc + [1,1,1]
type: list
max_steps: # maximum number of steps for optimization. Default is 10000
type: integer
min_style: # minimization style. Default is 'cg'. Choices: 'cg', 'sd', 'fire', ....
type: string
etol: # energy convergence criteria. Default is 1.0e-9 eV
type: float
ftol: # force convergence criteria. Default is 1.0e-9 eV/Ang
type: float
maxiter: # maximum number of iterations for minimization. Default is 100000
type: integer
maxeval: # maximum number of evaluations for minimization. Default is 100000
type: integer
dmax: # maximum displacement for each step. Default is 0.01 Ang
type: float
press: # control stress. Default is [None, None, None]
type: [list, float, boolean]
mask: # 1x3 array of booleans: 1 for relax, 0 for fixed; indicating which of the three independent components of the stress are relaxed. Default is [1,1,1]
type: list
couple: # couple the stress and strain. Default is 'none'. Choices: 'none', 'xyz', 'xy', 'yz', 'xz'.
type: string
md: ### ANCHOR: Parameters to run AIMD/MD simulation. Supported: NVE, NVT, NPT
## NVT with thermostat: 'langevin', 'nose_hoover_chain'
## NPT with: - 'nose_hoover_chain' barostat + 'langevin' thermostat
# - 'nose_hoover_chain' barostat + 'nose_hoover_chain' thermostat
type: dict
schema:
ensemble: # ensemble name. Choices: NVE, NVT, NPT. Default is NVE
type: string
dt: # timestep in fs. Default is 0.001 ps
type: float
traj_freq: # dump frames every `traj_freq` steps. Default is 1.
type: integer
num_frames: # number of frames to be collected. Then total MD nsteps = (num_frames * traj_freq)
type: integer
equil_steps: # number of equilibration steps before running production. Default is 0.
type: integer
plumed_file: # path to the plumed file. Default is None.
type: string
thermo_freq: # frequency to print thermodynamic properties. Default is 5000 steps.
type: integer
### temperature control
temp: # temperature in K. Default is 300 K
type: float
tdamp: # damping timesteps for thermostat. Default is 100.
type: integer
thermostat: # thermostat. Default is 'nose_hoover_chain'. Choices: 'langevin', 'nose_hoover_chain'
type: string
allowed: ['langevin', 'nose_hoover_chain']
### pressure control
press: # external stress in GPa. Default is None if not set. Accept: float, 3-vector.
type: [list, float, boolean]
mask: # periodic dimensions to relax. Set to (1,1,1) to allow fully flexible box. Set to (1,1,0) to disallow elongations along the z-axis, etc. Default is [1,1,1]
type: list
couple: # couple the stress and strain. Default is 'none'. Choices: 'none', 'xyz', 'xy', 'yz', 'xz'.
type: string
pdamp: # damping timesteps for barostat. Default is 1000.
type: integer
barostat: # barostat. Default is 'nose_hoover_chain'. Choices: 'nose_hoover_chain'
type: string
allowed: ['nose_hoover_chain']
custom: ### ANCHOR: Custom parameters
type: dict
allow_unknown: True
schema:
output_script: # path to the output script. Default is 'run.lammps'
type: string