Loading...
Searching...
No Matches
q3::NormConservingPlanewaveEffectivePotentialCalculator Class Reference

#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_
 

Detailed Description

Definition at line 22 of file init.hpp.

Constructor & Destructor Documentation

◆ NormConservingPlanewaveEffectivePotentialCalculator()

q3::NormConservingPlanewaveEffectivePotentialCalculator::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 
)
inline

Definition at line 25 of file init.hpp.

Member Function Documentation

◆ build_exchange_correlation_density()

void q3::NormConservingPlanewaveEffectivePotentialCalculator::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
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().


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