#include <init.hpp>
Inheritance diagram for q3::PlanewaveKohnShamSCFState:Public Member Functions | |
| PlanewaveKohnShamSCFState ()=default | |
| PlanewaveKohnShamSCFState (const PlanewaveKohnShamSCFState &)=delete | |
| PlanewaveKohnShamSCFState (PlanewaveKohnShamSCFState &&)=default | |
| const std::vector< Real > & | charge_density_for_spin (int spin_index) const |
| Real | eigenvalue (int kpoint_index, int band_index) const |
| const PlanewaveKohnShamEnergies & | energies () const override=0 |
| Narrow the energies return type to the planewave level. | |
| const std::vector< int > & | g_vector_indices_at_kpoint (int kpoint_index) const |
| int | number_of_bands () const |
| int | number_of_occupied_bands_per_spin () const |
| int | number_of_plane_waves (int kpoint_index) const |
| int | number_of_spin_components () const |
| Real | occupation (int kpoint_index, int band_index) const |
| PlanewaveKohnShamSCFState & | operator= (const PlanewaveKohnShamSCFState &)=delete |
| PlanewaveKohnShamSCFState & | operator= (PlanewaveKohnShamSCFState &&)=default |
| virtual const PlanewaveKohnShamQuantumSystem & | quantum_system () const =0 |
| Real | spin_degeneracy () const |
| Complex | wavefunction_coefficient (int kpoint_index, int band_index, int g_vector_index) const |
Public Member Functions inherited from q3::SCFState | |
| SCFState ()=default | |
| SCFState (const SCFState &)=default | |
| SCFState (SCFState &&)=default | |
| virtual | ~SCFState ()=default |
| SCFState & | operator= (const SCFState &)=default |
| SCFState & | operator= (SCFState &&)=default |
Public Attributes | |
| std::vector< Complex > | charge_density_g |
| std::vector< std::vector< Real > > | charge_density_real |
| const Crystal * | crystal_structure {nullptr} |
| const XCFunctional * | exchange_correlation {nullptr} |
| std::vector< Complex > | exchange_correlation_potential_g |
| const execution::PlanewaveExecutionPolicy * | execution_policy {nullptr} |
| const KPointsGrid * | kpoint_grid {nullptr} |
| const PlanewaveBasis * | planewave_basis {nullptr} |
| std::vector< std::vector< Real > > | real_space_potential |
| std::vector< Complex > | total_potential_g |
| std::vector< std::vector< Complex > > | total_potential_g_by_spin |
Public Attributes inherited from q3::SCFState | |
| bool | converged {false} |
| int | scf_iterations {} |
Converged SCF state for a plane-wave Kohn-Sham calculation.
Extends SCFState with the fields that are specific to a plane-wave representation: charge density, effective potential, and non-owning pointers to the basis and XC functional (which are owned by the iterator).
The quantum system snapshot is declared as a pure virtual accessor here (covariant return), so that concrete subtypes can own the correctly typed quantum system by value.
|
default |
|
default |
|
delete |
|
inline |
Definition at line 94 of file init.hpp.
References charge_density_real.
|
inline |
Definition at line 87 of file init.hpp.
References q3::PlanewaveKohnShamQuantumSystem::eigenvalue(), and quantum_system().
Referenced by q3::NonlocalPseudopotentialStressTensorCalculator::compute(), and q3::NonlocalPseudopotentialForceCalculator::compute().
|
overridepure virtual |
Narrow the energies return type to the planewave level.
Implements q3::SCFState.
Implemented in q3::NormConservingPlanewaveKohnShamSCFState.
|
inline |
Definition at line 80 of file init.hpp.
References q3::PlanewaveBasis::g_vector_indices_by_kpoint_index(), and planewave_basis.
Referenced by q3::KineticStressTensorCalculator::compute(), q3::HubbardStressTensorCalculator::compute(), q3::NonlocalPseudopotentialStressTensorCalculator::compute(), q3::HubbardForceCalculator::compute(), and q3::NonlocalPseudopotentialForceCalculator::compute().
|
inline |
Definition at line 103 of file init.hpp.
References q3::PlanewaveKohnShamQuantumSystem::number_of_bands(), and quantum_system().
Referenced by q3::KineticStressTensorCalculator::compute(), q3::HubbardStressTensorCalculator::compute(), q3::NonlocalPseudopotentialStressTensorCalculator::compute(), q3::HubbardForceCalculator::compute(), and q3::NonlocalPseudopotentialForceCalculator::compute().
|
inline |
Definition at line 97 of file init.hpp.
References q3::PlanewaveKohnShamQuantumSystem::number_of_occupied_bands_per_spin(), and quantum_system().
|
inline |
Definition at line 77 of file init.hpp.
References q3::PlanewaveBasis::number_of_plane_waves_by_kpoint_index(), and planewave_basis.
Referenced by q3::KineticStressTensorCalculator::compute(), q3::HubbardStressTensorCalculator::compute(), q3::NonlocalPseudopotentialStressTensorCalculator::compute(), q3::HubbardForceCalculator::compute(), and q3::NonlocalPseudopotentialForceCalculator::compute().
|
inline |
Definition at line 106 of file init.hpp.
References q3::KohnShamQuantumSystem< QuantumStateType >::number_of_spin_components, and quantum_system().
Referenced by q3::GradientCorrectedExchangeCorrelationGradientStressCalculator::add_gradient_stress(), q3::build_mean_field_record(), q3::KineticStressTensorCalculator::compute(), q3::HubbardStressTensorCalculator::compute(), q3::NonlocalPseudopotentialStressTensorCalculator::compute(), q3::HubbardForceCalculator::compute(), and q3::NonlocalPseudopotentialForceCalculator::compute().
|
inline |
Definition at line 90 of file init.hpp.
References q3::PlanewaveKohnShamQuantumSystem::occupation_by_kpoint_state_index_and_band_index(), and quantum_system().
Referenced by q3::KineticStressTensorCalculator::compute(), q3::HubbardStressTensorCalculator::compute(), q3::NonlocalPseudopotentialStressTensorCalculator::compute(), q3::HubbardForceCalculator::compute(), and q3::NonlocalPseudopotentialForceCalculator::compute().
|
delete |
|
default |
|
pure virtual |
Return the correctly typed quantum system snapshot. Overridden with covariant return in each concrete subtype.
Implemented in q3::NormConservingPlanewaveKohnShamSCFState.
Referenced by eigenvalue(), number_of_bands(), number_of_occupied_bands_per_spin(), number_of_spin_components(), occupation(), spin_degeneracy(), and wavefunction_coefficient().
|
inline |
Definition at line 100 of file init.hpp.
References quantum_system(), and q3::PlanewaveKohnShamQuantumSystem::spin_degeneracy().
|
inline |
Definition at line 84 of file init.hpp.
References quantum_system(), and q3::PlanewaveKohnShamQuantumSystem::wavefunction().
Referenced by q3::KineticStressTensorCalculator::compute(), q3::HubbardStressTensorCalculator::compute(), q3::NonlocalPseudopotentialStressTensorCalculator::compute(), q3::HubbardForceCalculator::compute(), and q3::NonlocalPseudopotentialForceCalculator::compute().
| std::vector<Complex> q3::PlanewaveKohnShamSCFState::charge_density_g |
Definition at line 36 of file init.hpp.
Referenced by q3::ExchangeCorrelationStressTensorCalculator::build_total_charge_density_g(), q3::NormConservingPlanewaveForceCalculator::compute(), q3::HartreeStressTensorCalculator::compute(), q3::LocalPseudopotentialStressTensorCalculator::compute(), q3::PlanewavePseudopotentialKohnShamSCFIterator::result(), and q3::QEPlanewaveKohnShamChargeDensityCheckpoint::write_to_file().
| std::vector<std::vector<Real> > q3::PlanewaveKohnShamSCFState::charge_density_real |
Definition at line 37 of file init.hpp.
Referenced by q3::build_mean_field_record(), q3::ExchangeCorrelationStressTensorCalculator::build_spin_charge_density_g(), charge_density_for_spin(), q3::MakovPayneCorrectionCalculator::compute(), q3::MartynaTuckermanCorrectionCalculator::compute(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::result().
| const Crystal* q3::PlanewaveKohnShamSCFState::crystal_structure {nullptr} |
Definition at line 55 of file init.hpp.
Referenced by q3::add_kleinman_bylander_projectors_to_mean_field_record(), q3::build_mean_field_record(), q3::MakovPayneCorrectionCalculator::compute(), q3::MartynaTuckermanCorrectionCalculator::compute(), q3::ForceCalculator::compute_forces(), q3::compute_stress(), q3::ScfStateMeanFieldProjectorSource::projectors(), q3::PlanewavePseudopotentialKohnShamSCFIterator::result(), and q3::QEPlanewaveKohnShamChargeDensityCheckpoint::write_to_file().
| const XCFunctional* q3::PlanewaveKohnShamSCFState::exchange_correlation {nullptr} |
Definition at line 54 of file init.hpp.
Referenced by q3::GradientCorrectedExchangeCorrelationGradientStressCalculator::add_gradient_stress(), q3::ExchangeCorrelationStressTensorCalculator::compute(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::result().
| std::vector<Complex> q3::PlanewaveKohnShamSCFState::exchange_correlation_potential_g |
Definition at line 50 of file init.hpp.
Referenced by q3::build_mean_field_record(), q3::NormConservingPlanewaveForceCalculator::compute(), q3::CoreCorrectionStressTensorCalculator::compute(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::result().
| const execution::PlanewaveExecutionPolicy* q3::PlanewaveKohnShamSCFState::execution_policy {nullptr} |
Non-owning pointer to the execution policy, set by the iterator.
Forces and stress calculators use this to perform pool-level reductions (MPI_Allreduce across k-point pools) after accumulating k-point-local contributions. Null in serial mode; non-null in MPI mode.
Definition at line 64 of file init.hpp.
Referenced by q3::HubbardStressTensorCalculator::compute(), q3::HubbardForceCalculator::compute(), q3::NonlocalPseudopotentialForceCalculator::compute(), q3::MakovPayneCorrectionCalculator::compute(), q3::MartynaTuckermanCorrectionCalculator::compute(), q3::ForceCalculator::compute_forces(), q3::compute_stress(), q3::PlanewavePseudopotentialKohnShamSCFIterator::result(), and q3::QEPlanewaveKohnShamWavefunctionCheckpoint::write_to_file().
| const KPointsGrid* q3::PlanewaveKohnShamSCFState::kpoint_grid {nullptr} |
Definition at line 56 of file init.hpp.
Referenced by q3::build_mean_field_record(), q3::ForceCalculator::compute_forces(), q3::compute_stress(), q3::ScfStateMeanFieldProjectorSource::projectors(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::result().
| const PlanewaveBasis* q3::PlanewaveKohnShamSCFState::planewave_basis {nullptr} |
Definition at line 53 of file init.hpp.
Referenced by q3::build_mean_field_record(), q3::MakovPayneCorrectionCalculator::compute(), q3::MartynaTuckermanCorrectionCalculator::compute(), q3::ForceCalculator::compute_forces(), q3::compute_stress(), g_vector_indices_at_kpoint(), number_of_plane_waves(), q3::ScfStateMeanFieldProjectorSource::projectors(), q3::PlanewavePseudopotentialKohnShamSCFIterator::result(), q3::QEPlanewaveKohnShamChargeDensityCheckpoint::write_to_file(), and q3::QEPlanewaveKohnShamWavefunctionCheckpoint::write_to_file().
| std::vector<std::vector<Real> > q3::PlanewaveKohnShamSCFState::real_space_potential |
Definition at line 51 of file init.hpp.
Referenced by q3::PlanewavePseudopotentialKohnShamSCFIterator::result().
| std::vector<Complex> q3::PlanewaveKohnShamSCFState::total_potential_g |
Definition at line 38 of file init.hpp.
Referenced by q3::build_mean_field_record(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::result().
| std::vector<std::vector<Complex> > q3::PlanewaveKohnShamSCFState::total_potential_g_by_spin |
The same potential per spin channel, un-averaged. Empty for an unpolarized run, where total_potential_g already is the whole story.
Layer 5 needs both: the augmentation force and stress contract the potential against the projector occupancies, and doing that with the spin average against the spin sum drops ∫(V↑−V↓)(ρ↑−ρ↓) dQ/dR / 2 — identically zero without a moment, and not zero with one.
Definition at line 49 of file init.hpp.
Referenced by q3::build_mean_field_record(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::result().