pytint
input file#
The inputfile is yaml
formatted. In this section the possible keys in the inputfile is discussed. The input file consists of two main keys, and four separate blocks. For a sample of the inputfile see the end of this document. The two main keys are as shown below-
main keys#
element
: Chemical symbol(s) of the element(s) in the simulation.
type: string/list of strings
example:element: 'Cu' element: ['Cu', 'Zr']
mass
: Mass of the element(s) in the simulation. It should follow the same order as that ofelement
.
type: float/list of floats
example:mass: 63.546 mass: [63.546, 91.224]
calculation
block#
Other than these two main keys, all other options are specified in blocks. The first block is the calculations
block. This block can list all the calculations that pytint
should perform and it can have more than one entry. A sample calculation block is shown below.
calculations:
- mode: ts
temperature: [1300, 1400]
pressure: [0]
lattice: [FCC]
repeat: [2, 2, 2]
state: solid
nsims: 1
The various keys are-
mode
: Calculation mode. Eitherfe
for free energy calculations orts
for temperature sweep.
type: string,fe
orts
example:mode: fe mode: ts
temperature
: Temperatures for the simulation in Kelvin.
type: list of floats
example:temperature: [1200, 1300]
The way temperature is used
pytint
depends on the selected mode of calculation. If themode
isfe
, a free energy calculation is launched for each temperature on the list. If the mode ists
, a temperature sweep is carried out. In that case, only two values of temperature should be specified.pressure
: Pressure for the simulation in bars.
type: list of floats
example:pressure: [0, 10000]
For each pressure specified in the list, one calculation will be started. For example, in the following combination-
mode: fe temperature: [1000, 1200] pressure: [0, 10000]
A total of 2 temperatures * 2 pressures, 4 calculations will be started. If the mode is
ts
for the same configuration above, 2 calculations will be started.lattice
: Lattice to be used for the calculations.
type: string of list of strings
example:lattice: FCC lattice: [FCC, LQD] lattice: [FCC, conf.data]
The
lattice
option can use either LAMMPS for creation of input structure or use an input file in the LAMMPS data format. To use LAMMPS to create the structure, the keyword specified should be from the following:BCC
,FCC
,HCP
,DIA
,SC
andLQD
. LAMMPS lattice creation can only be used for single species. IfLQD
is specified, a solid structure will be first created and melted within the MD run. Alternatively, a LAMMPS data file can be specified which contains the configuration.state
: The protocol to be used for the calculation.
type: string of list of strings
example:state: solid state: [solid, liquid]
The
state
input is closely related to thelattice
command. It should be of the same length as thelattice
input. For each of the lattice specified,state
command specifies which reference state to use.lattice_constant
: lattice constant for input structures
type: list of floats
example:lattice_constant: 3.68 lattice_constant: [3.68, 5.43]
Lattice constant values to be used for initial structure creation. Only required if the structure is created through LAMMPS. If not specified, the experimental lattice constant will be used.
iso
: Specify if the barostat is isotropic or anisotropic.
type: list of bools
example:iso: True iso: [True, False]
Specify whether the barostat will control the pressure isotropically or anisotropically.
repeat
: The number of unit cells to be replicated in each direction.
type: list of ints of length 3
example:repeat: [3,3,3]
repeat
command specifies the number of unit cells required in each x, y and z directions. This is only used iflattice
command uses one of the LAMMPS structure keywords.nsims
: The number of backward and forward interactions to be carried out.
type: int
example:nsims: 3
md
block#
MD block consists of the various options required for the MD runs. An example block is given below and the keys are discussed.
md:
pair_style: eam/alloy
pair_coeff: "* * Cu_EAM/Cu01.eam.alloy Cu"
timestep: 0.001
tdamp: 0.1
pdamp: 0.1
te: 10000
ts: 15000
pair_style
: The pair style command for LAMMPS.
type: string
example:pair_style: eam/alloy pair_style: eam/fs pair_style: pace
pair_coeff
: The pair coeff command for LAMMPS.
type: string
example:pair_coeff: "* * Cu_EAM/Cu01.eam.alloy Cu" pair_coeff: "* * CuZr_EAM/CuZr.eam.fs Cu Zr"
timestep
: The timestep for MD in picoseconds.
type: float
example:timestep: 0.001
tdamp
: The thermostat damping for MD in time units.
type: float
example:tdamp: 0.1
pdamp
: The pressure damping for MD in time units.
type: float
example:pdamp: 0.1
te
: The number of time steps for equilibrating the system.
type: int
example:te: 10000
ts
: The number of time steps for switching between the system of interest and reference system.
type: int
example:ts: 10000
queue
block#
This block consints of the options for specifying the scheduler for carrying out the calculations. An example block is given below-
queue:
scheduler: local
cores: 2
jobname: ti
walltime: "23:50:00"
queuename: shorttime
memory: 3GB
modules:
- anaconda/4
commands:
- conda activate env
scheduler
: The scheduler to be used for the job. Can belocal
,slurm
orsge
.
type: string
example:scheduler: slurm
The code has been tested only on local and slurm.
cores
: The number of cores to be used for the job.
type: int
example:cores: 4
jobname
: Name of the job.
type: string
example:jobname: cu
Not used for
local
.walltime
: Walltime for the job.
type: string
example:walltime: "23:50:00"
Not used for
local
.queuename
: Name of the queue.
type: string
example:queuename: "shorttime"
Not used for
local
.memory
: memory to be used per core.
type: string
example:memory: 3GB
Not used for
local
.commands
: Command that will be run before the actual calculations are carried out.
type: list of strings
example:command: - source .bashrc - conda activate ace - module load lammps
This section can be used to specify commands that need to be run before the actual calculation. If the calculations are run within a conda environment, the activate command for conda should be specified here. If additional modules need to be loaded, that can also be specified here.
conv
block#
This block helps to tune the internal convergence parameters that pytint
uses. Generally, tuning these parameters are not required.
conv:
k_tol: 0.01
solid_frac: 0.7
liquid_frac: 0.05
p_tol: 0.5
k_tol
: tolerance for the convergence of spring constant calculation.
type: float
example:ktol: 0.01
solid_frac
: The minimum amount of solid particles that should be there in solid.
type: float
example:solid_frac: 0.7
liquid_frac
: Maximum fraction of solid atoms allowed in liquid after melting.
type: float
example:liquid_frac: 0.05
p_tol
: tolerance for the convergence of pressure.
type: float
example:p_tol: 0.5