|
Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
|
#include <local.hpp>
Public Member Functions | |
| LocalPseudopotentialForceCalculator (const Crystal &crystal_structure, const PlanewaveBasis &planewave_basis, const NormConservingPlanewaveBasis &pseudopotential_basis) | |
| std::vector< Vector3D > | compute (const std::vector< Complex > &charge_density_g) |
|
inline |
|
inline |
Gamma-only stores only the positive half sphere, and this summand is even under G -> -G (the imaginary part is odd and G_alpha is odd), so the omitted half contributes as much again. Verified against QE's own force decomposition at Gamma (‘verbosity='high’`), where Q3 was exactly half.
F_{α,na} = Ω · G_α · Im[ V_loc(G) · ρ(G) · e^{+iGτ} ] (full sphere) Full-sphere sum over both G and -G: the -G term contributes the same as G, so no extra factor of 2 needed (it's already implicit in summing all G).
Definition at line 33 of file local.hpp.
References q3::Crystal::cell_volume(), q3::Crystal::convert_from_crystal_to_cartesian(), q3::PlanewaveBasis::first_nonzero_g_index(), q3::PlanewaveBasis::g_vectors(), q3::PlanewaveBasis::is_gamma_only(), q3::NormConservingPlanewaveBasis::local_potential_g(), q3::Crystal::number_of_atoms(), q3::PlanewaveBasis::number_of_g_vectors(), q3::Crystal::species_type_index(), q3::constants::two_pi, and q3::Crystal::two_pi_over_lattice_parameter().
Referenced by q3::NormConservingPlanewaveForceCalculator::compute().