#include <exchange_correlation.hpp>
Inheritance diagram for q3::ExchangeCorrelationStressTensorCalculator:Public Member Functions | |
| ExchangeCorrelationStressTensorCalculator (const Crystal &crystal_structure, const PlanewaveBasis &planewave_basis, const NormConservingPlanewaveKohnShamSCFState &scf_state, StressTensorContributions &result) | |
| virtual | ~ExchangeCorrelationStressTensorCalculator ()=default |
| void | compute () |
Public Member Functions inherited from q3::ExchangeCorrelationStressDensitySource | |
| virtual | ~ExchangeCorrelationStressDensitySource ()=default |
Protected Member Functions | |
| std::vector< Complex > | build_spin_charge_density_g (int spin_index) const override |
| std::vector< Complex > | build_total_charge_density_g () const override |
Protected Attributes | |
| const Crystal & | crystal_structure_ |
| const PlanewaveBasis & | planewave_basis_ |
| StressTensorContributions & | result_ |
| const NormConservingPlanewaveKohnShamSCFState & | scf_state_ |
Definition at line 34 of file exchange_correlation.hpp.
|
inline |
Definition at line 36 of file exchange_correlation.hpp.
|
virtualdefault |
|
inlineoverrideprotectedvirtual |
Build the per-spin charge density in G-space for spin-polarized (LSDA) GGA gradient corrections. Base implementation FFTs the valence spin channel from the SCF state. Subclasses override to split additional contributions evenly across spins (e.g., NLCC core charge, which carries no net moment).
Implements q3::ExchangeCorrelationStressDensitySource.
Reimplemented in q3::PseudopotentialExchangeCorrelationStressTensorCalculator.
Definition at line 97 of file exchange_correlation.hpp.
References q3::PlanewaveKohnShamSCFState::charge_density_real, planewave_basis_, q3::PlanewaveBasis::rho_r_to_g(), and scf_state_.
Referenced by q3::PseudopotentialExchangeCorrelationStressTensorCalculator::build_spin_charge_density_g().
|
inlineoverrideprotectedvirtual |
Build the total charge density in G-space for GGA gradient corrections. Base implementation returns the valence charge density from the SCF. Subclasses override to include additional contributions (e.g., NLCC core charge). Declared public on ExchangeCorrelationStressDensitySource, which is how the gradient-stress strategy reaches them; protected here keeps them out of this class's own public surface.
Implements q3::ExchangeCorrelationStressDensitySource.
Reimplemented in q3::PseudopotentialExchangeCorrelationStressTensorCalculator.
Definition at line 82 of file exchange_correlation.hpp.
References q3::PlanewaveKohnShamSCFState::charge_density_g, q3::PlanewaveBasis::number_of_g_vectors(), planewave_basis_, and scf_state_.
Referenced by q3::PseudopotentialExchangeCorrelationStressTensorCalculator::build_total_charge_density_g().
|
inline |
Any gradient (GGA) term is the strategy's business: local functionals resolve to the Null object, so there is no branching on the functional's capabilities here.
Definition at line 48 of file exchange_correlation.hpp.
References q3::Crystal::cell_volume(), q3::create_exchange_correlation_gradient_stress_calculator(), crystal_structure_, q3::NormConservingPlanewaveKohnShamSCFState::energies(), q3::PlanewaveKohnShamSCFState::exchange_correlation, q3::StressTensorContributions::exchange_correlation, q3::KohnShamEnergies::exchange_correlation_energy, q3::KohnShamEnergies::exchange_correlation_potential_energy, planewave_basis_, result_, and scf_state_.
Referenced by q3::NormConservingPlanewaveStressTensorCalculator::compute().
|
protected |
Definition at line 103 of file exchange_correlation.hpp.
Referenced by compute().
|
protected |
Definition at line 104 of file exchange_correlation.hpp.
Referenced by build_spin_charge_density_g(), build_total_charge_density_g(), and compute().
|
protected |
Definition at line 106 of file exchange_correlation.hpp.
Referenced by compute().
|
protected |
Definition at line 105 of file exchange_correlation.hpp.
Referenced by build_spin_charge_density_g(), build_total_charge_density_g(), and compute().