#include <init.hpp>
Public Member Functions | |
| void | build_shells (const Crystal &crystal_structure, const PlanewaveBasis &planewave_basis) |
| Precompute the symmetry operations and G-vector shells for the given cell/basis. | |
| bool | is_initialized () const |
| int | number_of_shells () const |
| int | number_of_symmetry_operations () const |
| int | number_of_systematically_absent_g_vectors () const |
| G-vectors whose component a screw axis or glide forbids; zero unless the group is polar. | |
| void | symmetrize (const PlanewaveBasis &planewave_basis, std::vector< std::vector< Real > > &charge_density_real, int number_of_spin_components) const |
| void | symmetrize_from_g_space (const PlanewaveBasis &planewave_basis, std::vector< std::vector< Complex > > &charge_density_g_components, std::vector< std::vector< Real > > &charge_density_real, int number_of_spin_components) const |
| Symmetrize the spin-resolved real-space charge density in place. | |
|
inline |
Precompute the symmetry operations and G-vector shells for the given cell/basis.
Definition at line 66 of file init.hpp.
References q3::PlanewaveBasis::g_vectors(), q3::SymmetryAnalyzer::get_symmetry_operations(), q3::log::info(), q3::PlanewaveBasis::is_gamma_only(), q3::PlanewaveBasis::number_of_g_vectors(), and number_of_symmetry_operations().
Referenced by q3::PlanewaveKohnShamSCFIterator::initialize_representation().
|
inline |
Definition at line 270 of file init.hpp.
Referenced by q3::PlanewaveKohnShamSCFIterator::log_representation_summary().
|
inline |
Definition at line 273 of file init.hpp.
Referenced by q3::PlanewaveKohnShamSCFIterator::log_representation_summary().
|
inline |
Definition at line 276 of file init.hpp.
Referenced by build_shells(), q3::PlanewaveKohnShamSCFIterator::log_representation_summary(), symmetrize(), and symmetrize_from_g_space().
|
inline |
|
inline |
Definition at line 222 of file init.hpp.
References number_of_symmetry_operations(), q3::PlanewaveBasis::rho_g_to_r(), q3::PlanewaveBasis::rho_r_to_g(), and q3::math::tolerances::zero_vector_magnitude_threshold.
Referenced by q3::PlanewaveKohnShamSCFIterator::symmetrize_density().
|
inline |
Symmetrize the spin-resolved real-space charge density in place.
Symmetrize charge density given in G-space and produce both symmetrized G-space and R-space outputs with a single G→R FFT.
This avoids the R→G FFT that the real-space interface would require, saving ~100ms per call for large grids. The caller provides the G-space density (typically available from construct_density_from_states or add_augmentation), and receives the symmetrized G-space density in-place plus the symmetrized R-space density in the output parameter.
Definition at line 173 of file init.hpp.
References number_of_symmetry_operations(), q3::PlanewaveBasis::rho_g_to_r(), and q3::math::tolerances::zero_vector_magnitude_threshold.
Referenced by q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::symmetrize_density().