-
Notifications
You must be signed in to change notification settings - Fork 176
Relaxation: get started and input examples
All the property tests should be based on the equilibrium state calculated either by VASP
or LAMMPS
. The structure after relaxation is supposed to exist as the file like confs/mp-*/relaxation/relax_task/CONTCAR
and the further property tests would normally start from this configuration.
{
"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}
}
}
For VASP relaxation and all the property calculations, the initial INCAR file must be given by user and the package would change the ISIF
and NSW
parameter according to the property type. Besides, users can also set the cal_setting
dictionary in the relaxation
part to make the final changes on INCAR.
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" | the path for INCAR file in vasp |
potcar_prefix | String | "vasp_input" | the 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 | the 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 EDIFF parameter in INCAR files |
ediffg | Float | -0.01 | set EDIFFG parameter in INCAR files |
encut | Int | 650 | set encut parameter in INCAR files |
kspacing | Float | 0.1 | set KSPACING parameter in INCAR files |
kgamma | Boolean | false | set KGAMMA parameter in INCAR files |
{
"structures": ["confs/std-*"],
"interaction": {
"type": "deepmd",
"model": "frozen_model.pb",
"in_lammps": "lammps_input/in.lammps",
"type_map": {"Al": 0}
},
"relaxation": {
"cal_setting":{"etol": 1e-12,
"ftol": 1e-6,
"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 | 1e-12 | stopping tolerance for energy |
ftol | Float | 1e-6 | 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.
everything starts here
Universal for all property tests
Universal for all property tests except for elastic