#include <init.hpp>
Inheritance diagram for q3::PlanewaveLocalOrbitalSet:Public Member Functions | |
| virtual | ~PlanewaveLocalOrbitalSet ()=default |
| virtual void | build (int kpoint_index, int number_of_plane_waves, const std::vector< int > &g_vector_indices, const Crystal &crystal_structure, const KPointsGrid &kpoint_grid, const PlanewaveBasis &planewave_basis, std::vector< std::vector< Complex > > &orbitals) const =0 |
| virtual std::vector< Vector3D > | centers_crystal () const =0 |
| virtual std::string | description () const =0 |
| One line for logs, naming the source and the count. | |
| virtual int | number_of_orbitals () const =0 |
|
virtualdefault |
|
pure virtual |
Render every orbital at one k-point: on return orbitals[orbital_index][g_index] holds the coefficient of the g_vector_indices[g_index]-th plane wave, so the result is stored against exactly the G-vector list the wavefunctions at that k-point use and can be contracted with them directly.
Normalisation is left to the implementation; consumers that need orthonormal orbitals in a given metric orthonormalize them.
Implemented in q3::PlanewaveHydrogenicOrbitalSet, and q3::PlanewavePseudoAtomicOrbitalSet.
Referenced by q3::PlanewaveTrialOrbitalProjectionCalculator::compute_projections_at_kpoint().
|
pure virtual |
Where each orbital sits, in crystal (fractional) coordinates, in orbital order. A localiser needs these: the branch of Im ln M_nn is fixed by choosing, for each diagonal overlap, the value nearest the one a known centre implies, and the trial orbital's own position is the one thing known about the Wannier function before anything has been minimised. Deriving a guide from the projection gauge's Berry-phase centres instead was tried and fails on exactly the structures that need guiding – when the branches are inconsistent across k, those centres are already wrong.
Implemented in q3::PlanewaveHydrogenicOrbitalSet, and q3::PlanewavePseudoAtomicOrbitalSet.
|
pure virtual |
One line for logs, naming the source and the count.
Implemented in q3::PlanewaveHydrogenicOrbitalSet, and q3::PlanewavePseudoAtomicOrbitalSet.
|
pure virtual |
Implemented in q3::PlanewaveHydrogenicOrbitalSet, and q3::PlanewavePseudoAtomicOrbitalSet.
Referenced by q3::PlanewaveTrialOrbitalProjectionCalculator::number_of_orbitals().