Relaxation: get started and input examples - deepmodeling/dpgen GitHub Wiki
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.
Input example
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}
}
}
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 |
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": 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.