#include <init.hpp>
Inheritance diagram for q3::PlanewaveEffectivePotentialCalculator:Public Member Functions | |
| 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 | |
| virtual 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 |
Protected Attributes | |
| 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 |
|
virtualdefault |
|
inlineprotectedvirtual |
Build the density seen by the XC functional. Base implementation copies the valence charge density directly. Subclasses override to include additional contributions (e.g., NLCC core charge).
Reimplemented in q3::NormConservingPlanewaveEffectivePotentialCalculator.
Definition at line 126 of file init.hpp.
References q3::PlanewaveBasis::fft_rho(), q3::FFTGrid::local_grid_points(), q3::PlanewaveBasis::number_of_g_vectors(), planewave_basis_, and q3::PlanewaveBasis::rho_r_to_g().
Referenced by compute().
|
inline |
Reduce XC energy and XC potential energy within this pool. Both are real-space slab integrals (over local_grid_points) and each rank in the band communicator holds only its slab of the grid. With 1-rank-per-pool this is a no-op; with multiple ranks per pool the partial sums must be combined.
Definition at line 52 of file init.hpp.
References build_exchange_correlation_density(), q3::EffectivePotentialResult::charge_density_g, q3::EffectivePotentialResult::exchange_correlation_energy, q3::EffectivePotentialResult::exchange_correlation_potential_energy, execution_policy_, q3::PlanewaveBasis::fft_rho(), q3::FFTGrid::local_grid_points(), planewave_basis_, q3::execution::PlanewaveExecutionPolicy::reduce_within_pool_scalar(), q3::PlanewaveBasis::rho_r_to_g(), and q3::FFTGrid::total_grid_points().
Referenced by q3::PlanewavePseudopotentialKohnShamSCFIterator::valence_exchange_correlation_potential_g_of().
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Definition at line 112 of file init.hpp.
Referenced by build_exchange_correlation_density(), q3::NormConservingPlanewaveEffectivePotentialCalculator::build_exchange_correlation_density(), and compute().