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

#include <projections.hpp>

Public Member Functions

 PlanewaveTrialOrbitalProjectionCalculator (const PlanewaveLocalOrbitalSet &trial_orbitals)
 
std::vector< std::vector< Complex > > compute_projections_at_kpoint (int kpoint_index, int kpoint_state_index, int number_of_plane_waves, int number_of_bands, const std::vector< int > &g_vector_indices, const Crystal &crystal_structure, const KPointsGrid &kpoint_grid, const PlanewaveBasis &planewave_basis, const PlanewaveKohnShamQuantumSystem &quantum_system, const OverlapOperator *overlap_operator, int first_band_index=0) const
 
int number_of_orbitals () const
 

Detailed Description

Definition at line 38 of file projections.hpp.

Constructor & Destructor Documentation

◆ PlanewaveTrialOrbitalProjectionCalculator()

q3::PlanewaveTrialOrbitalProjectionCalculator::PlanewaveTrialOrbitalProjectionCalculator ( const PlanewaveLocalOrbitalSet &  trial_orbitals)
inlineexplicit

Definition at line 40 of file projections.hpp.

Member Function Documentation

◆ compute_projections_at_kpoint()

std::vector< std::vector< Complex > > q3::PlanewaveTrialOrbitalProjectionCalculator::compute_projections_at_kpoint ( int  kpoint_index,
int  kpoint_state_index,
int  number_of_plane_waves,
int  number_of_bands,
const std::vector< int > &  g_vector_indices,
const Crystal &  crystal_structure,
const KPointsGrid &  kpoint_grid,
const PlanewaveBasis &  planewave_basis,
const PlanewaveKohnShamQuantumSystem &  quantum_system,
const OverlapOperator *  overlap_operator,
int  first_band_index = 0 
) const
inline

Compute A_mn(k) = <psi_mk|S|g'_n>, where g'_n is the trial-orbital set Löwdin-orthogonalized in the S metric: projections[band_index] [orbital_index]. overlap_operator is null for norm-conserving pseudopotentials (S = I); ultrasoft/PAW callers pass create_overlap_operator()'s result, built from the live SCF state at this k-point (the projector matrix it needs is k-point dependent, so it cannot be cached across k-points inside this calculator).

Definition at line 59 of file projections.hpp.

References q3::apply_overlap_operator_to_orbitals(), q3::PlanewaveLocalOrbitalSet::build(), q3::compute_orbital_overlap_matrix_in_s_metric(), q3::lowdin_orthogonalize_orbitals(), and q3::PlanewaveKohnShamQuantumSystem::wavefunction_band_data().

◆ number_of_orbitals()

int q3::PlanewaveTrialOrbitalProjectionCalculator::number_of_orbitals ( ) const
inline

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