35 return projector_overlap_coefficients_;
38 return projector_overlap_coefficients_;
43 int maximum_projector_channels) {
44 projector_overlap_coefficients_.
assign(
45 number_of_atoms, maximum_projector_channels * maximum_projector_channels, 0.0);
50 for (
size_t row_index = 0; row_index < projector_overlap_coefficients_.
rows();
52 for (
size_t column_index = 0; column_index < projector_overlap_coefficients_.
cols();
54 projector_overlap_coefficients_(row_index, column_index) = 0.0;
61 return norm_conserving_quantum_system_ && norm_conserving_quantum_system_->
has_ultrasoft();
67 return *norm_conserving_quantum_system_;
void assign(size_t rows, size_t cols, const T &initial_value)
Norm-conserving (and ultrasoft) planewave charge density.
void reset_projector_overlap_coefficients()
Reset the projector overlap coefficients to zero.
const Matrix< Real > & projector_overlap_coefficients() const
NormConservingPlanewaveChargeDensity(const PlanewaveBasis &basis, int number_of_spin_components, const NormConservingPlanewaveKohnShamQuantumSystem &norm_conserving_quantum_system)
NormConservingPlanewaveChargeDensity()=default
const NormConservingPlanewaveKohnShamQuantumSystem & norm_conserving_quantum_system() const
Matrix< Real > & projector_overlap_coefficients()
void initialize_projector_overlap_coefficients(int number_of_atoms, int maximum_projector_channels)
Initialize the coefficient storage for given number of atoms and max channels.
bool needs_augmentation() const
virtual bool has_ultrasoft() const
Planewave charge density — stores ρ(r) on FFT grid.
const PlanewaveBasis & basis() const
int number_of_spin_components() const