Skip to content

Plane-wave reader - G-vector ordering and k-dependent basis (AO) size #227

@kousuke-nakano

Description

@kousuke-nakano

Dear @scemama and @q-posev

Hello. @selim-tunbul and I(@kousuke-nakano ) are implementing a Quantum ESPRESSO (QE) reader for the plane-wave section. We’ve encountered two issues.

Ordering of reciprocal vectors

One challenge is that the ordering of reciprocal-lattice vectors ($G$-vectors) in QE is not guaranteed to match the ordering (or assumptions) in TREXIO. In QE, the SCF output at each $\mathbf{k}$ point is a set of coefficients $c_{i,k,m}$ for each eigenstate $i$ (band) and each $G$-vector index $m$. The $i$-th molecular orbital at $\mathbf{k}$ expands as

$$ \Psi_{i,\mathbf{k}}(\mathbf{r})=\sum_m c_{i,\mathbf{k},m}, e^{,i(\mathbf{k}+\mathbf{G}_m)\cdot \mathbf{r}}. $$

TREXIO can store the $i$ and $k$ indices, but there appears to be no explicit place to store the ordering (or the list) of G-vectors indexed by $m$.

In QE, we can recover the order because the Miller indices associated with each $G$-vector are provided. In TREXIO’s plane-wave section, however, the only relevant parameter seems to be the cutoff energy (e_cut), and no canonical $G$-vector list or ordering is specified.

We see two paths forward:

  1. Add an explicit dataset for $G$-vectors (or their order) to TREXIO.
    For example, store the Miller indices $(h,k,l)$ for each $m$, or the Cartesian reciprocal vectors, so round-tripping is unambiguous.
  2. Define and document a canonical $G$-vector ordering for TREXIO.
    For example, sort by $|\mathbf{G}|$ and break ties lexicographically by $(h,k,l)$, and require all writers/readers to enforce the same convention.

Which approach do you think better?

Defining the plane-wave basis and the k-dependent number of PWs

Another challenge concerns how TREXIO defines the plane-wave basis. In §3.1 Basis set (basis group), the only PW-related field appears to be e_cut. It may be clearer to define the PW explicitly via the set of G-vectors (e.g., their Miller indices or Cartesian components), as discussed above. Also, PWs have no angular component; the functions $e^{,i\mathbf{G}_m\cdot\mathbf{r}}$ are better regarded as atomic orbitals rather than basis functions.

Relatedly, because the cutoff is applied to $|\mathbf{k}+\mathbf{G}|$, the number of PWs generally depends on $\mathbf{k}$, which we also confirmed from QE output files. TREXIO's AO group (4.1 Atomic orbitals) expects a single num for the number of functions, which makes $k$-dependent PW counts awkward unless we either (a) pad the MO coefficient arrays (4.2 Molecular orbitals: coefficient and coefficient_im) to a common length, or (b) allow per $\mathbf{k}$ arrays (but (b) breaks the backward compatibility?)

We don't have a firm proposal yet and would appreciate feedback from you two.

Thank you in advance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions