Relaxation get started and input examples#
The relaxation of a structure should be carried out before calculating all other properties.
First, we need input parameter file and we name it relax.json
here. All the relaxation calculations should be taken either by VASP
, ABACUS
, or LAMMPS
. Here are two input examples for VASP
and LAMMPS
respectively.
An example of the input file for relaxation by VASP:
{
"structures": ["confs/std-*"],
"interaction": {
"type": "vasp",
"incar": "vasp_input/INCAR",
"potcar_prefix": "vasp_input",
"potcars": {"Al": "POTCAR.al"}
},
"relaxation": {
"cal_type": "relaxation",
"cal_setting": {"relax_pos": true,
"relax_shape": true,
"relax_vol": true,
"ediff": 1e-6,
"ediffg": -0.01,
"encut": 650,
"kspacing": 0.1,
"kgamma": false}
}
}
Key words | data structure | example | description |
---|---|---|---|
structures | List of String | [“confs/std-*”] | path of different structures |
interaction | Dict | See above | description of the task type and atomic interaction |
type | String | “vasp” | task type |
incar | String | “vasp_input/INCAR” | path for INCAR file in vasp |
potcar_prefix | String | “vasp_input” | prefix of path for POTCAR file in vasp, default = “” |
potcars | Dict | {“Al”: “POTCAR.al”} | key is element type and value is potcar name |
relaxation | Dict | See above | calculation type and setting for relaxation |
cal_type | String | “relaxation” or “static” | calculation type |
cal_setting | Dict | See above | calculation setting |
relax_pos | Boolean | true | relax atomic position or not, default = true for relaxation |
relax_shape | Boolean | true | relax box shape or not, default = true for relaxation |
relax_vol | Boolean | true | relax box volume or not, default = true for relaxation |
ediff | Float | 1e-6 | set |
ediffg | Float | -0.01 | set |
encut | Int | 650 | set |
kspacing | Float | 0.1 | set |
kgamma | Boolean | false | set |
An example of the input file for relaxation by LAMMPS:
{
"structures": ["confs/std-*"],
"interaction": {
"type": "deepmd",
"model": "frozen_model.pb",
"in_lammps": "lammps_input/in.lammps",
"type_map": {"Al": 0}
},
"relaxation": {
"cal_setting":{"etol": 0,
"ftol": 1e-10,
"maxiter": 5000,
"maximal": 500000}
}
}
Other key words different from vasp:
Key words | data structure | example | description |
---|---|---|---|
model | String or List of String | “frozen_model.pb” | model file for atomic interaction |
in_lammps | String | “lammps_input/in.lammps” | input file for lammps commands |
type_map | Dict | {“Al”: 0} | key is element type and value is type number. DP starts from 0, others starts from 1 |
etol | Float | 0 | stopping tolerance for energy |
ftol | Float | 1e-10 | stopping tolerance for force |
maxiter | Int | 5000 | max iterations of minimizer |
maxeval | Int | 500000 | max number of force/energy evaluations |
For LAMMPS relaxation and all the property calculations, package will help to generate in.lammps
file for user automatically according to the property type. We can also make the final changes in the minimize
setting (minimize etol ftol maxiter maxeval
) in in.lammps
. In addition, users can apply the input file for lammps commands in the interaction
part. For further information of the LAMMPS relaxation, we refer users to minimize command.