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

#include <hydrogenic_orbital_set.hpp>

+ Inheritance diagram for q3::PlanewaveHydrogenicOrbitalSet:

Public Member Functions

 PlanewaveHydrogenicOrbitalSet (std::vector< HydrogenicOrbital > orbitals)
 
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
 Exactly the centres the manifest named, in the order it named them.
 
std::string description () const override
 One line for logs, naming the source and the count.
 
int number_of_orbitals () const override
 
const std::vector< HydrogenicOrbital > & orbitals () const
 
- Public Member Functions inherited from q3::PlanewaveLocalOrbitalSet
virtual ~PlanewaveLocalOrbitalSet ()=default
 

Detailed Description

Definition at line 64 of file hydrogenic_orbital_set.hpp.

Constructor & Destructor Documentation

◆ PlanewaveHydrogenicOrbitalSet()

q3::PlanewaveHydrogenicOrbitalSet::PlanewaveHydrogenicOrbitalSet ( std::vector< HydrogenicOrbital >  orbitals)
inlineexplicit

Definition at line 66 of file hydrogenic_orbital_set.hpp.

Member Function Documentation

◆ build()

void q3::PlanewaveHydrogenicOrbitalSet::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

Follows the same conventions as build_atomic_orbitals_g_space: the structure factor is e^{-i 2*pi (k+G).tau} with both the k-point and the centre in alat-relative Cartesian units, and |k+G| carries the 2*pi/alat factor to become a physical wavevector.

The centre arrives in crystal coordinates; carry it to the alat-relative Cartesian frame the structure factor below uses, exactly as Crystal::convert_from_crystal_to_cartesian does for an atom.

g(q) = 8 sqrt(pi a^3) / (1 + a^2 q^2)^2 is the transform of the unit-normalized 1s orbital; the 1/sqrt(Omega) carries it to the plane-wave coefficient convention the Kleinman-Bylander projectors and the pseudo-atomic orbitals use.

Implements q3::PlanewaveLocalOrbitalSet.

Definition at line 91 of file hydrogenic_orbital_set.hpp.

References q3::Crystal::cell_volume(), q3::HydrogenicOrbital::center_crystal, q3::compute_phase_factor(), q3::HydrogenicOrbital::decay_length_bohr, q3::GVector::g_cart, q3::PlanewaveBasis::g_vectors(), q3::Crystal::lattice_vectors(), orbitals(), q3::constants::pi, q3::Crystal::reciprocal_lattice_vectors(), q3::constants::two_pi, q3::Crystal::two_pi_over_lattice_parameter(), q3::Vector3D::x, q3::Vector3D::y, and q3::Vector3D::z.

◆ centers_crystal()

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

Exactly the centres the manifest named, in the order it named them.

Implements q3::PlanewaveLocalOrbitalSet.

Definition at line 171 of file hydrogenic_orbital_set.hpp.

◆ description()

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

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

Implements q3::PlanewaveLocalOrbitalSet.

Definition at line 180 of file hydrogenic_orbital_set.hpp.

References number_of_orbitals().

◆ number_of_orbitals()

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

Implements q3::PlanewaveLocalOrbitalSet.

Definition at line 77 of file hydrogenic_orbital_set.hpp.

Referenced by description().

◆ orbitals()

const std::vector< HydrogenicOrbital > & q3::PlanewaveHydrogenicOrbitalSet::orbitals ( ) const
inline

Definition at line 81 of file hydrogenic_orbital_set.hpp.

Referenced by build().


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