mirror of
https://github.com/cp2k/cp2k.git
synced 2026-07-28 06:05:29 -04:00
Extend k-point symmetry backends to closed GENERAL sets (#5173)
Co-authored-by: Thomas D. Kuehne <tkuehne@cp2k.org>
This commit is contained in:
parent
c77770f004
commit
02caa0904f
13 changed files with 1303 additions and 82 deletions
|
|
@ -1,8 +1,115 @@
|
|||
# K-Points
|
||||
|
||||
Unfortunately no one has gotten around to writing this page yet :-(
|
||||
Periodic Quickstep calculations can sample the Brillouin zone through the `&DFT%KPOINTS` section.
|
||||
The most common setup is a Monkhorst-Pack mesh:
|
||||
|
||||
In the meantime, the following links might be helpful:
|
||||
```text
|
||||
&DFT
|
||||
&KPOINTS
|
||||
SCHEME MONKHORST-PACK 6 6 6
|
||||
WAVEFUNCTIONS COMPLEX
|
||||
&END KPOINTS
|
||||
&END DFT
|
||||
```
|
||||
|
||||
`SCHEME GAMMA` uses only the Gamma point. `SCHEME MONKHORST-PACK` and `SCHEME MACDONALD` generate
|
||||
regular meshes. `SCHEME GENERAL` uses explicitly listed k-points:
|
||||
|
||||
```text
|
||||
&KPOINTS
|
||||
SCHEME GENERAL
|
||||
KPOINT 0.0 0.0 0.0 1.0
|
||||
KPOINT 0.5 0.0 0.0 1.0
|
||||
&END KPOINTS
|
||||
```
|
||||
|
||||
K-points are given in reciprocal lattice-vector coordinates by default (`UNITS B_VECTOR`). Cartesian
|
||||
coordinates can be selected with `UNITS CART_BOHR` or `UNITS CART_ANGSTROM`.
|
||||
|
||||
## Symmetry Reduction
|
||||
|
||||
Atomic symmetry can reduce the number of k-points that have to be solved explicitly:
|
||||
|
||||
```text
|
||||
&KPOINTS
|
||||
SCHEME MONKHORST-PACK 8 8 8
|
||||
SYMMETRY ON
|
||||
SYMMETRY_BACKEND SPGLIB
|
||||
WAVEFUNCTIONS COMPLEX
|
||||
&END KPOINTS
|
||||
```
|
||||
|
||||
`SYMMETRY_BACKEND` selects the backend that provides and applies atom and k-point symmetry
|
||||
operations:
|
||||
|
||||
- `K290`: the established CP2K default.
|
||||
- `SPGLIB`: use the space-group operations returned by SPGLIB, including fractional translations.
|
||||
|
||||
`SYMMETRY_REDUCTION_METHOD` selects the method used to build the irreducible k-point set. If
|
||||
`SYMMETRY_BACKEND` is set explicitly and `SYMMETRY_REDUCTION_METHOD` is omitted, the reduction
|
||||
method follows the backend. `SYMMETRY_REDUCTION_METHOD SPGLIB` with `SYMMETRY_BACKEND K290` can be
|
||||
used as a comparison mode: SPGLIB proposes the k-point orbits, while only mappings represented by
|
||||
the K290 backend are used for the actual transformations.
|
||||
|
||||
`INVERSION_SYMMETRY_ONLY ON` restricts the reduction to time-reversal/inversion symmetry.
|
||||
`FULL_GRID ON` disables symmetry reduction while still generating the regular mesh.
|
||||
|
||||
For general atomic k-point symmetry, use complex wavefunctions. Real wavefunctions are only valid
|
||||
for Gamma and special k-points with real Bloch phases.
|
||||
|
||||
## Explicit K-Point Sets
|
||||
|
||||
`SCHEME GENERAL` can be used with symmetry reduction when the explicit k-point set is equally
|
||||
weighted and closed under the requested symmetry operations:
|
||||
|
||||
```text
|
||||
&KPOINTS
|
||||
SCHEME GENERAL
|
||||
SYMMETRY ON
|
||||
SYMMETRY_BACKEND SPGLIB
|
||||
KPOINT -0.25 -0.25 -0.25 1.0
|
||||
KPOINT -0.25 -0.25 0.25 1.0
|
||||
KPOINT -0.25 0.25 -0.25 1.0
|
||||
KPOINT -0.25 0.25 0.25 1.0
|
||||
KPOINT 0.25 -0.25 -0.25 1.0
|
||||
KPOINT 0.25 -0.25 0.25 1.0
|
||||
KPOINT 0.25 0.25 -0.25 1.0
|
||||
KPOINT 0.25 0.25 0.25 1.0
|
||||
&END KPOINTS
|
||||
```
|
||||
|
||||
The same closure requirement applies to K290, SPGLIB, and mixed SPGLIB-reduction/K290-backend
|
||||
setups. For band paths or other intentionally nonuniform explicit lists, keep `SYMMETRY OFF`,
|
||||
because the order and weights of the points are part of the requested property.
|
||||
|
||||
## Cell Convention
|
||||
|
||||
CP2K's k-point machinery assumes the standard CP2K cell convention: vector `A` lies along the
|
||||
Cartesian X axis and vector `B` lies in the XY plane. Using `ABC` together with `ALPHA_BETA_GAMMA`,
|
||||
or reading a CIF file, lets CP2K construct the cell in that convention from orientation-independent
|
||||
lattice parameters.
|
||||
|
||||
## Moving Geometries
|
||||
|
||||
For moving geometries (`GEO_OPT`, `CELL_OPT`, `MD`, and related run types), atomic k-point symmetry
|
||||
is rebuilt from the current cell and coordinates instead of reusing operations from the initial
|
||||
geometry. This applies to regular Monkhorst-Pack/MacDonald meshes and to closed `GENERAL` k-point
|
||||
sets. If the current geometry no longer supports a symmetry operation, the reduced set changes
|
||||
accordingly or the explicit `GENERAL` set is rejected if it is no longer symmetry-closed.
|
||||
|
||||
`KEEP_SPACE_GROUP T` is the safest way to combine geometry optimization with full atomic k-point
|
||||
symmetry. `KEEP_SYMMETRY T` constrains the cell metric, but does not by itself keep atoms on
|
||||
space-group-related positions.
|
||||
|
||||
## Wannier90
|
||||
|
||||
The Wannier90 interface already has its own k-point path controlled by
|
||||
`DFT%PRINT%WANNIER90%MP_GRID`. It builds and diagonalizes a full Monkhorst-Pack grid for the
|
||||
Wannier90 export. Atomic k-point symmetry from the SCF setup is not reused, because Wannier90
|
||||
expects the full mesh and its nearest-neighbour connectivity. Explicit `SCHEME GENERAL` lists and
|
||||
symmetry-reduced SCF k-point sets are therefore not exported directly to Wannier90.
|
||||
|
||||
## Related Pages
|
||||
|
||||
- <https://www.cp2k.org/faq:kpoints>
|
||||
- [](hartree-fock/ri_kpoints)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue