Launch pARTn
E/F engine inputs
For a proper execution of pARTn, there are some restrictions on the variables specified in the input files of E/F engines.
For a proper execution of pARTn within QE, three variables must always be specified in the QE input file, namely:
in the
CONTROLnamelist, the calculation type must be specified ascalculation = "relax",in the
SYSTEMnamelist, the use of symmetries disablednosym = .true.,in the
IONSnamelist, the dynamics must be specified asion_dynamics="fire".
minimal example of QE input file:
&CONTROL
calculation = 'relax'
/
&SYSTEM
nosym = .true.
/
&IONS
ion_dynamics = 'fire'
/
In LAMMPS, pARTn is implemented as a class fix, and must be used together with the FIRE optimizer:
min_style fire
The fix artn passes through the class plugin.
It can be used only after loading the dynamic library libartn-lmp.so, through plugin load command:
plugin load /path/to/pARTn/lib/libartn-lmp.so
fix ID group-ID artn args value
For the moment, only group-ID = all is available.
It is possible to customize the FIRE parameters you want to use with the fix artn.
For each parameter you give the args followed by value.
The args can be:
alphaalphashrinkdtshrinkdmaxtmaxtminfilin: change the name of input fileartn.in.
Finally, the script is launched with minimize command:
minimize etol ftol maxiter maxeval
NOTE: The function delete_atoms of LAMMPS should be used with the keyword compress yes.
minimal example of LAMMPS input file:
plugin load /path/to/artn-plugin/lib/libartn-lmp.so
fix ID all artn dmax value
min_style fire
minimize etol ftol maxiter maxeval
The pARTn-Siesta interface works via external control of Siesta through LUA.
The calculation is thus controlled by a specified LUA script.
It is available in the file artn.lua in the directory examples/Siesta.Si-vac.d.
The script artn.lua is general, and does not need modification to run.
Before launching, make sure that Lua knows where to search for the file artn-plugin/lib/libartn_lua.so.
This can be done by either:
export LUA_CPATH=$LUA_CPATH:";$HOME/artn-plugin/lib/?.so;"
or by declaring it at the beginning of the Lua script, as (with correct path):
package.cpath = package.cpath .. ";/path/to/artn-plugin/lib/libartn_lua.so"
In the input file for Siesta, i.e. input.fdf, the MD type needs to be specified to Lua, and the name of Lua script specified:
# Enable Lua
MD.TypeOfRun Lua
# name of the Lua script
Lua.Script artn.lua
The Siesta interface uses artn_step() functionality, thus the internal FIRE is used.
Its parameters can be modified by adding a namelist &fire_params / into artn.in, unless a different infile was specified.
To use pARTn with VASP, the keyword ARTN_is_active = TRUE should be set in the INCAR file, and
also the parameters:
IBRION = -1
ISYM = 0
POTIM = 0
ARTN_is_active = TRUE
The VASP interface uses artn_step() functionality, thus the internal FIRE is used.
Its parameters can be modified by adding a namelist &fire_params / into artn.in, unless a different infile was specified.
Running the calculation
QE calculation with pARTn must be launched with the flag -partn, as follows:
QE/bin/pw.x -partn -inp input_pw
LAMMPS calculation is run the same way as any other LAMMPS calculation.
The calculation is run the same way as any other Siesta calculation.
The calculation is run the same way as any other VASP calculation.