dpgen init_surf parameters

init_surf_jdata:
type: dict
argument path: init_surf_jdata

Generate initial data for surface systems.

stages:
type: list
argument path: init_surf_jdata/stages

Stages for init_surf.

elements:
type: list
argument path: init_surf_jdata/elements

Atom types.

potcars:
type: list, optional
argument path: init_surf_jdata/potcars

Path of POTCAR.

cell_type:
type: str, optional
argument path: init_surf_jdata/cell_type

Specifying which typical structure to be generated. Options include fcc, hcp, bcc, sc, diamond.

super_cell:
type: list
argument path: init_surf_jdata/super_cell

Size of supercell.

from_poscar:
type: bool, optional, default: False
argument path: init_surf_jdata/from_poscar

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.

from_poscar_path:
type: str, optional
argument path: init_surf_jdata/from_poscar_path

Path of POSCAR for VASP or STRU for ABACUS. Necessary if from_poscar is true.

latt:
type: float
argument path: init_surf_jdata/latt

Lattice constant for single cell.

layer_numb:
type: int, optional
argument path: init_surf_jdata/layer_numb

Number of atom layers constructing the slab.

z_min:
type: int, optional
argument path: init_surf_jdata/z_min

Thickness of slab without vacuum (Angstrom). If layer_numb is set, z_min will be ignored.

vacuum_max:
type: float
argument path: init_surf_jdata/vacuum_max

Maximal thickness of vacuum (Angstrom).

vacuum_min:
type: float, optional
argument path: init_surf_jdata/vacuum_min

Minimal thickness of vacuum (Angstrom). Default value is 2 times atomic radius.

vacuum_resol:
type: list
argument path: init_surf_jdata/vacuum_resol

Interval of thickness of vacuum. If size of vacuum_resol is 1, the interval is fixed to its value. If size of vacuum_resol is 2, the interval is vacuum_resol[0] before mid_point, otherwise vacuum_resol[1] after mid_point.

vacuum_numb:
type: int, optional
argument path: init_surf_jdata/vacuum_numb

The total number of vacuum layers Necessary if vacuum_resol is empty.

mid_point:
type: float, optional
argument path: init_surf_jdata/mid_point

The mid point separating head region and tail region. Necessary if the size of vacuum_resol is 2 or 0.

head_ratio:
type: float, optional
argument path: init_surf_jdata/head_ratio

Ratio of vacuum layers in the nearby region with denser intervals(head region). Necessary if vacuum_resol is empty.

millers:
type: list
argument path: init_surf_jdata/millers

Miller indices.

relax_incar:
type: str, optional
argument path: init_surf_jdata/relax_incar

Path of INCAR for relaxation in VASP. Necessary if stages include 1.

scale:
type: list
argument path: init_surf_jdata/scale

Scales for isotropic transforming cells.

skip_relax:
type: bool
argument path: init_surf_jdata/skip_relax

If it’s true, you may directly run stage 2 (perturb and scale) using an unrelaxed POSCAR.

pert_numb:
type: int
argument path: init_surf_jdata/pert_numb

Number of perturbations for each scaled (key scale) POSCAR.

pert_box:
type: float
argument path: init_surf_jdata/pert_box

Anisotropic Perturbation for cells (independent changes of lengths of three box vectors as well as angel among) in decimal formats. 9 elements of the 3x3 perturbation matrix will be randomly sampled from a uniform distribution (default) in the range [-pert_box, pert_box]. Such a perturbation matrix adds the identity matrix gives the actual transformation matrix for this perturbation operation.

pert_atom:
type: float
argument path: init_surf_jdata/pert_atom

Perturbation of atom coordinates (Angstrom). Random perturbations are performed on three coordinates of each atom by adding values randomly sampled from a uniform distribution in the range [-pert_atom, pert_atom].

coll_ndata:
type: int
argument path: init_surf_jdata/coll_ndata

Maximal number of collected data.