Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
Loading...
Searching...
No Matches
q3::BetaFunctionTable Class Reference

#include <init.hpp>

+ Inheritance diagram for q3::BetaFunctionTable:

Public Member Functions

 BetaFunctionTable ()=default
 
virtual ~BetaFunctionTable ()=default
 
void initialize (const PlanewaveBasis &planewave_basis, const PseudopotentialSet &pseudopotential_set, int number_of_species_types)
 
void initialize (const UniformQGrid &q_grid, const PseudopotentialSet &pseudopotential_set, int number_of_species_types)
 
Real interpolate (int species_type_index, int beta_index, Real q_value) const
 
Real interpolate_derivative (int species_type_index, int beta_index, Real q_value) const
 
int number_of_q_points () const
 
const UniformQGrid & q_grid () const
 
Real q_spacing () const
 

Protected Member Functions

virtual void tabulate_projector (const Pseudopotential &pseudopotential, int projector_index, const std::vector< Real > &q_point_values, std::vector< Real > &destination) const
 

Detailed Description

Definition at line 35 of file init.hpp.

Constructor & Destructor Documentation

◆ BetaFunctionTable()

q3::BetaFunctionTable::BetaFunctionTable ( )
default

◆ ~BetaFunctionTable()

virtual q3::BetaFunctionTable::~BetaFunctionTable ( )
virtualdefault

Member Function Documentation

◆ initialize() [1/2]

void q3::BetaFunctionTable::initialize ( const PlanewaveBasis &  planewave_basis,
const PseudopotentialSet &  pseudopotential_set,
int  number_of_species_types 
)
inline

Initialize the q-grid and tabulate beta functions for all species.

Definition at line 43 of file init.hpp.

References q3::PlanewaveBasis::charge_density_energy_cutoff(), q3::math::tolerances::default_q_grid_spacing, and q3::UniformQGrid::from_maximum_q().

◆ initialize() [2/2]

void q3::BetaFunctionTable::initialize ( const UniformQGrid &  q_grid,
const PseudopotentialSet &  pseudopotential_set,
int  number_of_species_types 
)
inline

Initialize using a pre-built shared q-grid.

Definition at line 58 of file init.hpp.

References q_grid().

◆ interpolate()

Real q3::BetaFunctionTable::interpolate ( int  species_type_index,
int  beta_index,
Real  q_value 
) const
inline

Definition at line 65 of file init.hpp.

Referenced by q3::compute_kleinman_bylander_projectors().

◆ interpolate_derivative()

Real q3::BetaFunctionTable::interpolate_derivative ( int  species_type_index,
int  beta_index,
Real  q_value 
) const
inline

Definition at line 70 of file init.hpp.

◆ number_of_q_points()

int q3::BetaFunctionTable::number_of_q_points ( ) const
inline

Definition at line 78 of file init.hpp.

References q3::UniformQGrid::number_of_q_points.

◆ q_grid()

const UniformQGrid & q3::BetaFunctionTable::q_grid ( ) const
inline

Definition at line 74 of file init.hpp.

Referenced by initialize().

◆ q_spacing()

Real q3::BetaFunctionTable::q_spacing ( ) const
inline

Definition at line 82 of file init.hpp.

References q3::UniformQGrid::q_spacing.

◆ tabulate_projector()

virtual void q3::BetaFunctionTable::tabulate_projector ( const Pseudopotential &  pseudopotential,
int  projector_index,
const std::vector< Real > &  q_point_values,
std::vector< Real > &  destination 
) const
inlineprotectedvirtual

Fill one projector's β(q) at the given q values.

The base implementation is the spherical Bessel transform of the dataset's radial r·β(r). Subclasses override this per projector when the dataset supplies β in another representation, and may call this base implementation as the fallback for species they do not handle.

Reimplemented in q3::PawBetaFunctionTable.

Definition at line 95 of file init.hpp.

References q3::Pseudopotential::projectors, q3::Pseudopotential::radial_grid, q3::Pseudopotential::radial_grid_derivative, and q3::transform_spherical_bessel().

Referenced by q3::PawBetaFunctionTable::tabulate_projector().


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