Loading...
Searching...
No Matches
q3::PlanewavePseudoAtomicOrbitalSet Class Reference

#include <pseudo_atomic_orbital_set.hpp>

+ Inheritance diagram for q3::PlanewavePseudoAtomicOrbitalSet:

Public Member Functions

 PlanewavePseudoAtomicOrbitalSet (const Crystal &crystal_structure, const PseudopotentialSet &pseudopotential_set, const std::map< std::string, std::vector< int > > &trial_shells={})
 
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 override
 
std::vector< Vector3D > centers_crystal () const override
 The atom each orbital is centred on; atom-centred by construction.
 
std::string description () const override
 One line for logs, naming the source and the count.
 
int number_of_orbitals () const override
 
const std::vector< AtomicOrbitalLabel > & orbital_labels () const
 
- Public Member Functions inherited from q3::PlanewaveLocalOrbitalSet
virtual ~PlanewaveLocalOrbitalSet ()=default
 

Detailed Description

Definition at line 39 of file pseudo_atomic_orbital_set.hpp.

Constructor & Destructor Documentation

◆ PlanewavePseudoAtomicOrbitalSet()

q3::PlanewavePseudoAtomicOrbitalSet::PlanewavePseudoAtomicOrbitalSet ( const Crystal &  crystal_structure,
const PseudopotentialSet &  pseudopotential_set,
const std::map< std::string, std::vector< int > > &  trial_shells = {} 
)
inline

One label per rendered orbital, in the order build_atomic_orbitals_g_space fills them.

Definition at line 41 of file pseudo_atomic_orbital_set.hpp.

Member Function Documentation

◆ build()

void q3::PlanewavePseudoAtomicOrbitalSet::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
inlineoverridevirtual

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.

Implements q3::PlanewaveLocalOrbitalSet.

Definition at line 76 of file pseudo_atomic_orbital_set.hpp.

References q3::build_atomic_orbitals_g_space(), and number_of_orbitals().

◆ centers_crystal()

std::vector< Vector3D > q3::PlanewavePseudoAtomicOrbitalSet::centers_crystal ( ) const
inlineoverridevirtual

The atom each orbital is centred on; atom-centred by construction.

Implements q3::PlanewaveLocalOrbitalSet.

Definition at line 106 of file pseudo_atomic_orbital_set.hpp.

◆ description()

std::string q3::PlanewavePseudoAtomicOrbitalSet::description ( ) const
inlineoverridevirtual

One line for logs, naming the source and the count.

Implements q3::PlanewaveLocalOrbitalSet.

Definition at line 110 of file pseudo_atomic_orbital_set.hpp.

References number_of_orbitals().

◆ number_of_orbitals()

int q3::PlanewavePseudoAtomicOrbitalSet::number_of_orbitals ( ) const
inlineoverridevirtual

Implements q3::PlanewaveLocalOrbitalSet.

Definition at line 68 of file pseudo_atomic_orbital_set.hpp.

Referenced by build(), and description().

◆ orbital_labels()

const std::vector< AtomicOrbitalLabel > & q3::PlanewavePseudoAtomicOrbitalSet::orbital_labels ( ) const
inline

Definition at line 72 of file pseudo_atomic_orbital_set.hpp.


The documentation for this class was generated from the following file: