Loading...
Searching...
No Matches
q3::NormConservingPlanewaveKohnShamSCFState Struct Reference

#include <init.hpp>

+ Inheritance diagram for q3::NormConservingPlanewaveKohnShamSCFState:

Public Member Functions

 NormConservingPlanewaveKohnShamSCFState ()=default
 
 NormConservingPlanewaveKohnShamSCFState (NormConservingPlanewaveKohnShamSCFState &&)=default
 
 ~NormConservingPlanewaveKohnShamSCFState () override=default
 
const NormConservingPlanewaveKohnShamEnergies & energies () const override
 Return the converged energy breakdown (covariant return).
 
NormConservingPlanewaveKohnShamSCFState & operator= (NormConservingPlanewaveKohnShamSCFState &&)=default
 
const NormConservingPlanewaveKohnShamQuantumSystem & quantum_system () const override
 
- Public Member Functions inherited from q3::PlanewaveKohnShamSCFState
 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 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
 
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

NormConservingPlanewaveKohnShamEnergies energies_data_
 
std::vector< std::vector< Complex > > hubbard_d_matrix_per_spin
 
std::vector< HubbardManifold > hubbard_manifolds
 DFT+U (Hubbard) resolved manifolds at convergence; empty means no correction is active.
 
std::string hubbard_projector_type = "atomic"
 
Matrix< Real > projector_overlap_coefficients
 
std::vector< Matrix< Real > > projector_overlap_coefficients_by_spin
 
std::shared_ptr< NormConservingPlanewaveKohnShamQuantumSystem > quantum_system_snapshot_
 
- Public Attributes inherited from q3::PlanewaveKohnShamSCFState
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 {}
 

Detailed Description

Converged SCF state for a pseudopotential plane-wave Kohn-Sham calculation.

Concrete leaf of the SCFState hierarchy. Owns all converged data:

  • quantum_system_snapshot_: shared_ptr to the NormConservingPlanewaveKohnShamQuantumSystem at convergence. Carries both the electronic state (wavefunction coefficients, eigenvalues, occupations) and all static pseudopotential data (projectors, local potential, core charge). Shared with the iterator to avoid re-initializing the expensive pseudopotential basis.
  • energies_data_: the converged energy breakdown.

Non-owning (iterator-owned, valid for the iterator's lifetime):

Definition at line 31 of file init.hpp.

Constructor & Destructor Documentation

◆ NormConservingPlanewaveKohnShamSCFState() [1/2]

q3::NormConservingPlanewaveKohnShamSCFState::NormConservingPlanewaveKohnShamSCFState ( )
default

Explicitly default move operations: when a base class has a deleted copy constructor the derived class's implicit move constructor is also suppressed. We must restore it.

◆ NormConservingPlanewaveKohnShamSCFState() [2/2]

q3::NormConservingPlanewaveKohnShamSCFState::NormConservingPlanewaveKohnShamSCFState ( NormConservingPlanewaveKohnShamSCFState &&  )
default

◆ ~NormConservingPlanewaveKohnShamSCFState()

q3::NormConservingPlanewaveKohnShamSCFState::~NormConservingPlanewaveKohnShamSCFState ( )
overridedefault

Member Function Documentation

◆ energies()

const NormConservingPlanewaveKohnShamEnergies & q3::NormConservingPlanewaveKohnShamSCFState::energies ( ) const
inlineoverridevirtual

Return the converged energy breakdown (covariant return).

Implements q3::PlanewaveKohnShamSCFState.

Definition at line 87 of file init.hpp.

References energies_data_.

Referenced by q3::ExchangeCorrelationStressTensorCalculator::compute(), and q3::HartreeStressTensorCalculator::compute().

◆ operator=()

NormConservingPlanewaveKohnShamSCFState & q3::NormConservingPlanewaveKohnShamSCFState::operator= ( NormConservingPlanewaveKohnShamSCFState &&  )
default

◆ quantum_system()

Member Data Documentation

◆ energies_data_

NormConservingPlanewaveKohnShamEnergies q3::NormConservingPlanewaveKohnShamSCFState::energies_data_

Definition at line 45 of file init.hpp.

Referenced by energies(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::result().

◆ hubbard_d_matrix_per_spin

std::vector<std::vector<Complex> > q3::NormConservingPlanewaveKohnShamSCFState::hubbard_d_matrix_per_spin

Converged per-spin Hubbard D-matrix, block-diagonal column-major buffers (one per spin), matching accumulate_hubbard_occupation_and_potential()'s own storage convention.

Definition at line 67 of file init.hpp.

Referenced by q3::HubbardStressTensorCalculator::compute(), q3::HubbardForceCalculator::compute(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::result().

◆ hubbard_manifolds

◆ hubbard_projector_type

std::string q3::NormConservingPlanewaveKohnShamSCFState::hubbard_projector_type = "atomic"

◆ projector_overlap_coefficients

Matrix<Real> q3::NormConservingPlanewaveKohnShamSCFState::projector_overlap_coefficients

Projector overlap coefficients ⟨ψ|β_i⟩⟨β_j|ψ⟩ summed over bands. Empty for norm-conserving; populated for ultrasoft by the US iterator.

Definition at line 51 of file init.hpp.

Referenced by q3::ForceCalculator::compute_forces(), q3::compute_stress(), and q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::result().

◆ projector_overlap_coefficients_by_spin

std::vector<Matrix<Real> > q3::NormConservingPlanewaveKohnShamSCFState::projector_overlap_coefficients_by_spin

The same coefficients per spin channel, un-summed. Empty for an unpolarized run and for norm-conserving.

Paired with total_potential_g_by_spin: the augmentation force and stress must contract spin channel against matching spin channel.

Definition at line 59 of file init.hpp.

Referenced by q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::result().

◆ quantum_system_snapshot_

std::shared_ptr<NormConservingPlanewaveKohnShamQuantumSystem> q3::NormConservingPlanewaveKohnShamSCFState::quantum_system_snapshot_

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