Skip to content

Commit b3db59d

Browse files
Liu-RXLiuRenxi
andauthored
Added ABACUS pw interface for dpgen init_bulk (#590)
* delete unnecessary files * remove ABACUS codes in relabel.py, fix test files. * Add files via upload * Add files via upload * added abacus interface for init_bulk * modify abacus init_bulk interface in accordance with earlier prs * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Update test_coll_abacus.py * Update README.md * replace STRU_unit functions with poscar_unit functions plus dpdata conversion * added relax_kspacing and md_kspacing for KPT generation. Co-authored-by: LiuRenxi <LiuRenxi@MacBook-Air.local>
1 parent 7a8ae82 commit b3db59d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+8025
-51
lines changed

README.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,10 @@ If you want to specify a structure as starting point for `init_bulk`, you may se
189189
"from_poscar": true,
190190
"from_poscar_path": "....../C_mp-47_conventional.POSCAR",
191191
```
192+
`init_bulk` support both VASP and ABACUS for first-principle calculation. You can choose the software by specifying the key `init_fp_style`. If `init_fp_style` is not specified, the default software will be VASP.
193+
194+
When using ABACUS for `init_fp_style`, the keys of the paths of `INPUT` files for relaxation and MD simulations are the same as `INCAR` for VASP, which are `relax_incar` and `md_incar` respectively. You have to additionally specify `relax_kspacing` and `md_kspacing` for k points spacing, and dpgen will automatically generate `KPT` files according to them. You may also use `relax_kpt` and `md_kpt` instead of them for the relative path for `KPT` files of relaxation and MD simulations. However, either `relax_kspacing` and `md_kspacing`, or `relax_kpt` and `md_kpt` is needed. If `from_poscar` is set to `false`, you have to specify `atom_masses` in the same order as `elements`.
195+
192196
The following table gives explicit descriptions on keys in `PARAM`.
193197

194198
The bold notation of key (such as **Elements**) means that it's a necessary key.
@@ -200,9 +204,9 @@ The bold notation of key (such as **Elements**) means that it's a necessary key.
200204
| cell_type | String | "hcp" | Specifying which typical structure to be generated. **Options** include fcc, hcp, bcc, sc, diamond.
201205
| latt | Float | 4.479 | Lattice constant for single cell.
202206
| from_poscar | Boolean | True | Deciding whether to use a given poscar as the beginning of relaxation. If it's true, keys (`cell_type`, `latt`) will be aborted. Otherwise, these two keys are **necessary**.
203-
| from_poscar_path | String | "....../C_mp-47_conventional.POSCAR" | Path of POSCAR. **Necessary** if `from_poscar` is true.
204-
| relax_incar | String | "....../INCAR" | Path of INCAR for relaxation in VASP. **Necessary** if `stages` include 1.
205-
| md_incar | String | "....../INCAR" | Path of INCAR for MD in VASP. **Necessary** if `stages` include 3.|
207+
| from_poscar_path | String | "....../C_mp-47_conventional.POSCAR" | Path of POSCAR for VASP or STRU for ABACUS. **Necessary** if `from_poscar` is true.
208+
| relax_incar | String | "....../INCAR" | Path of INCAR for VASP or INPUT for ABACUS for relaxation in VASP. **Necessary** if `stages` include 1.
209+
| md_incar | String | "....../INCAR" | Path of INCAR for VASP or INPUT for ABACUS for MD in VASP. **Necessary** if `stages` include 3.|
206210
| **scale** | List of float | [0.980, 1.000, 1.020] | Scales for transforming cells.
207211
| **skip_relax** | Boolean | False | If it's true, you may directly run stage 2 (pertub and scale) using an unrelaxed POSCAR.
208212
| **pert_numb** | Integer | 30 | Number of pertubations for each POSCAR.
@@ -211,6 +215,12 @@ The bold notation of key (such as **Elements**) means that it's a necessary key.
211215
| **md_nstep** | Integer | 10 | Steps of AIMD in stage 3. If it's not equal to settings via `NSW` in `md_incar`, DP-GEN will follow `NSW`.
212216
| **coll_ndata** | Integer | 5000 | Maximal number of collected data.
213217
| type_map | List | [ "Mg", "Al"] | The indices of elements in deepmd formats will be set in this order.
218+
| init_fp_style | String | "ABACUS" or "VASP" | First-principle software. If this key is abscent, the default value will be "VASP".
219+
| relax_kpt | String | "....../KPT" | Path of `KPT` file for relaxation in stage 1. Only useful if `init_fp_style` is "ABACUS".
220+
| relax_kspacing | Integer or List of 3 integers | 10 | kspacing parameter for relaxation in stage 1. Only useful if `init_fp_style` is "ABACUS".
221+
| md_kpt | String | "....../KPT" | Path of `KPT` file for MD simulations in stage 3. Only useful if `init_fp_style` is "ABACUS".
222+
| md_kspacing | Integer or List of 3 integers | 10 | kspacing parameter for MD simulations in stage 3. Only useful if `init_fp_style` is "ABACUS".
223+
| atom_masses | List of float | [24] | List of atomic masses of elements. The order should be the same as `Elements`. Only useful if `init_fp_style` is "ABACUS".
214224

215225
### Init_surf
216226

0 commit comments

Comments
 (0)