Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
Loading...
Searching...
No Matches
q3::WavefunctionTransformer Class Reference

#include <wavefunction_transformer.hpp>

Static Public Member Functions

static void g_to_r (const GVectorsGrid &g_vectors_grid, const FFTGrid &fft_wave, const std::vector< Complex > &coefficients_g_space, const std::vector< int > &g_vector_indices, int number_of_plane_waves, std::vector< Complex > &coefficients_real_space)
 
static void r_to_g (const GVectorsGrid &g_vectors_grid, const FFTGrid &fft_wave, const std::vector< Complex > &coefficients_real_space, const std::vector< int > &g_vector_indices, int number_of_plane_waves, std::vector< Complex > &coefficients_g_space)
 

Detailed Description

Definition at line 17 of file wavefunction_transformer.hpp.

Member Function Documentation

◆ g_to_r()

static void q3::WavefunctionTransformer::g_to_r ( const GVectorsGrid &  g_vectors_grid,
const FFTGrid &  fft_wave,
const std::vector< Complex > &  coefficients_g_space,
const std::vector< int > &  g_vector_indices,
int  number_of_plane_waves,
std::vector< Complex > &  coefficients_real_space 
)
inlinestatic

With slab-aligned G-vectors, fft_grid_index MUST be >= 0 if the partitioning is correct. We keep the check as a safety measure but it should never trigger.

Definition at line 19 of file wavefunction_transformer.hpp.

References q3::FFTGrid::g_vector_to_fft_grid_index(), q3::GVectorsGrid::g_vectors(), q3::FFTGrid::inverse(), q3::FFTGrid::local_g_space_points(), and q3::FFTGrid::local_grid_points().

Referenced by q3::PlanewaveBasis::g_to_r().

◆ r_to_g()

static void q3::WavefunctionTransformer::r_to_g ( const GVectorsGrid &  g_vectors_grid,
const FFTGrid &  fft_wave,
const std::vector< Complex > &  coefficients_real_space,
const std::vector< int > &  g_vector_indices,
int  number_of_plane_waves,
std::vector< Complex > &  coefficients_g_space 
)
inlinestatic

REDUNDANCY REMOVED: In band-parallel mode, G-space coefficients are now truly partitioned. Collectives like dot_product or the Hamiltonian application (kinetic) handle the reduction themselves. We no longer need to Allreduce the entire wavefunction after every FFT.

Definition at line 49 of file wavefunction_transformer.hpp.

References q3::FFTGrid::forward(), q3::FFTGrid::g_vector_to_fft_grid_index(), q3::GVectorsGrid::g_vectors(), q3::FFTGrid::local_g_space_points(), and q3::FFTGrid::local_grid_points().

Referenced by q3::PlanewaveBasis::r_to_g().


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