#include <init.hpp>
Inheritance diagram for q3::NormConservingPlanewaveEffectivePotentialCalculator:Public Member Functions | |
| NormConservingPlanewaveEffectivePotentialCalculator (const PlanewaveBasis &planewave_basis, const Crystal &crystal_structure, const XCFunctional &exchange_correlation, const execution::PlanewaveExecutionPolicy &execution_policy, const std::vector< Complex > &core_charge_density_g) | |
Public Member Functions inherited from q3::PlanewaveEffectivePotentialCalculator | |
| PlanewaveEffectivePotentialCalculator (const PlanewaveBasis &planewave_basis, const Crystal &crystal_structure, const XCFunctional &exchange_correlation, const execution::PlanewaveExecutionPolicy &execution_policy) | |
| virtual | ~PlanewaveEffectivePotentialCalculator ()=default |
| EffectivePotentialResult | compute (const std::vector< std::vector< Real > > &charge_density_real, int number_of_spin_components, const std::vector< Complex > &local_ionic_potential_g) const |
Protected Member Functions | |
| void | build_exchange_correlation_density (const std::vector< std::vector< Real > > &charge_density_real, int number_of_spin_components, std::vector< std::vector< Real > > &exchange_correlation_density, std::vector< std::vector< Complex > > &exchange_correlation_density_g) const override |
Additional Inherited Members | |
Protected Attributes inherited from q3::PlanewaveEffectivePotentialCalculator | |
| std::vector< Real > | cached_local_ionic_potential_real_ |
| const Crystal & | crystal_structure_ |
| const XCFunctional & | exchange_correlation_ |
| std::unique_ptr< ExchangeCorrelationPotentialCalculator > | exchange_correlation_potential_calculator_ |
| V_xc evaluation strategy (local-density vs gradient-corrected), fixed at construction. | |
| const execution::PlanewaveExecutionPolicy & | execution_policy_ |
| const PlanewaveBasis & | planewave_basis_ |
|
inline |
|
inlineoverrideprotectedvirtual |
Build the XC density including the NLCC core charge. Adds the core charge density (split equally among spin channels) to the valence charge density, in both real and reciprocal space. Caches the real-space core charge density to avoid redundant FFTs.
Reimplemented from q3::PlanewaveEffectivePotentialCalculator.
Definition at line 42 of file init.hpp.
References q3::PlanewaveBasis::fft_rho(), q3::FFTGrid::local_grid_points(), q3::PlanewaveBasis::number_of_g_vectors(), q3::PlanewaveEffectivePotentialCalculator::planewave_basis_, q3::PlanewaveBasis::rho_g_to_r(), and q3::PlanewaveBasis::rho_r_to_g().