Tutorials
We recommend starting off by looking at the dedicated tutorials. These Jupyter notebooks will guide you through most of the functionality of the package.
The tutorials can also be run interactively on Binder.
Using configuration dictionaries
One of the most powerful parts of surfaxe is its ability to make all VASP input files needed for convergence testing. To do so surfaxe makes use of configuration dictionaries (config dicts for short). These are python dictionaries that contain information used to set up INCAR, KPOINTS and POTCAR files.
For example, if we were interested in setting up a single shot PBEsol calculation on SnO2 slabs, we could set up the config dict as follows:
config_dict = {
"INCAR": {
"ALGO": "Normal",
"EDIFF": 1e-06,
"EDIFFG": -0.01,
"ENCUT": 500,
"GGA": "PS",
"ISMEAR": 0,
"ISYM": 2,
"IWAVPR": 1,
"LASPH": true,
"LORBIT": 11,
"LREAL": "auto",
"NELM": 200,
"NSW": 0,
"PREC": "Accurate",
"SIGMA": 0.02
},
"KPOINTS": {
"reciprocal_density": 55
},
"POTCAR": {
"Sn": "Sn_d",
"O" : "O"
}
}
Alternatively, one of the ready-made surfaxe
config dicts (PBEsol.json
,
PBEsol_relax.json
, PBE.json
, PBE_relax.json
or HSE06.json
)
can be used and further modified using user_incar_settings
,
user_kpoints_settings
and user_potcar_settings
. The relax
config dicts
contain additional parameters necessary for geometric relaxations of slabs.
The POTCAR functional (i.e. PBE, PBE_54) can be chosen with user_potcar_functional
.
Pymatgen documentation
covers exact behaviour of the user_incar_settings
, user_kpoints_settings
and user_potcar_settings
and all additional keyword arguments that can be supplied to slab generation scripts.