CAPSChain Assembly and Packing Suite

Theory · 4 methods

DFT surfaces

What CAPS computes, as it computes it: the equation, its symbols with CAPS's defaults, when to use the method, the source file, the tests that check it, and any departure from the cited method.

Termination height from the bond length

A termination on a three-fold hollow sits above the centroid of a nearest-neighbour triangle of the outer layer. Its bond d to the three surface atoms fixes the height: with the in-plane distance r from the site to each of them (r = a/√3 for a hollow of a hexagonal layer, a/2 on a bridge, 0 on top), h follows from Pythagoras. CAPS takes the height from d rather than using d as a vertical offset, which would put the atom too far out.

$$h = \sqrt{d^{2} - r^{2}}, \qquad r = \frac{a}{\sqrt{3}}\ \text{(hollow)},\quad \frac{a}{2}\ \text{(bridge)},\quad 0\ \text{(top)}$$

for Ti–O 2.05 Å on a = 3.0814 Å: h = 1.0186 Å

SymbolMeaningIn CAPS
hheight of the termination above the outer layer's planeÅ
dsurface atom – termination bonddata/sheets/terminations.json, or --bond
rin-plane distance from the site to its surface atomsfrom the outer layer's nearest-neighbour distance
ain-plane lattice constantthe sheet's cell

When to use it

Every terminated sheet (caps terminate, 2D sheets page). d ≤ r is an error: the bond cannot reach the site. Mixed faces get the same counts top and bottom (no net dipole) unless Janus is asked for; the arrangement is NumPy's default_rng(seed) shuffle, identical on every platform.

Source
core/src/slab2d.cpp
Tested by
Slab2D.HeightFromBondLength, Slab2D.ReferenceSlabsRebuiltExactly
Departure from the reference

One k-point density for every cell

Each Γ-centred mesh is chosen from one length, so a 1 × 1 cell and its 5 × 5 supercell sample the Brillouin zone equally finely and their energies can be compared: N_i is the k-density over the cell length, rounded up, and 1 along the vacuum. Γ-centred meshes are needed for hexagonal cells.

$$N_i = \left\lceil \frac{k_{\mathrm{dens}}}{|\mathbf{a}_i|} \right\rceil \quad (i = 1, 2), \qquad N_3 = 1$$

kdens 45 Å: 15 × 15 (a ≈ 3.05 Å), 5 × 5 (3 × 3), 3 × 3 (5 × 5)

SymbolMeaningIn CAPS
N_ik-points along reciprocal vector i
k_densk-point densityÅ, --kdens (45)
a_icell vectorÅ

When to use it

Every VASP set (caps vasp-set, VASP set designer); a molecule in a box uses Γ only. Converge it with caps vasp-conv: E0 within 1 meV/atom and in-plane stress within 1 kB of the densest mesh, for that setting and every denser one.

Source
core/src/vasp_set.cpp
Tested by
DftSets.KpointMeshes, DftSets.ConvergenceChoice
Departure from the reference

Adsorption energy from three runs

The binding energy of a molecule on a slab is the single-point energy of the relaxed complex minus those of the relaxed slab alone and the relaxed molecule alone. The three runs must share every setting that shifts absolute energies — ENCUT, PREC, smearing, dispersion, dipole correction, LREAL, functional — or the difference is meaningless; CAPS writes them from one settings set and compares the INCARs before subtracting. Negative is bound. Values from a relaxation instead of 04_static are flagged as not final.

$$E_{\mathrm{bind}} = E_{0}(\text{complex}) - E_{0}(\text{slab}) - E_{0}(\text{molecule})$$

E0 = energy(σ → 0); 1 eV = 96.485 kJ/mol

SymbolMeaningIn CAPS
E_0energy extrapolated to zero smearing (OUTCAR energy(sigma->0))eV, 04_static

When to use it

caps vasp-bind, DFT results. The best orientation is the lowest; those within 0.05 eV of it are not reliably ordered. The dipole correction is energy-only (IDIPOL = 3 without LDIPOL): on low-work-function surfaces such as OH-terminated MXene LDIPOL lets electrons leak into the vacuum and the energy runs away.

Source
core/src/dft_analysis.cpp
Tested by
DftSets.HealthCheckFlags
Departure from the reference

Work function and charge-density difference

The work function is the vacuum level of the planar-averaged electrostatic potential (LOCPOT, LVHAR) minus the Fermi energy, read on each face in the plateau more than 4 Å from the atoms. Adsorption changes it by Δφ. The charge-density difference subtracts the slab part and the molecule part, computed at the frozen complex geometry on the same FFT grid, from the complex; its plane average integrated along z gives the charge moved across the interface.

$$\phi = V_{\mathrm{vac}} - E_{F}, \qquad \Delta\rho = \rho_{\mathrm{complex}} - \rho_{\mathrm{slab}} - \rho_{\mathrm{molecule}}, \qquad \Delta Q(z) = \int_{0}^{z} A\,\langle \Delta\rho \rangle_{xy}\,dz'$$

ΔQ at the mid-plane > 0: the slab side gained electrons

SymbolMeaningIn CAPS
V_vacplane-averaged potential in the vacuum plateaueV
E_FFermi energyOUTCAR E-fermi
Ain-plane cell areaŲ

When to use it

caps vasp-analyze wf / cdd, DFT results; the charge run (LCHARG, LAECHG, LVHAR) and the cdd set come from caps vasp-derived. The sign must agree with Bader's.

Source
core/src/dft_analysis.cpp
Tested by
Departure from the reference