SIRIUS 7.5.0
Electronic structure library and applications
|
Helper class to manage G-vector shells and redistribute G-vectors for symmetrization. More...
#include <gvec.hpp>
Public Member Functions | |
Gvec_shells (Gvec const &gvec__) | |
void | print_gvec (std::ostream &out__) const |
int | gvec_count_remapped () const |
Local number of G-vectors in the remapped distribution with complete shells on each rank. More... | |
r3::vector< int > | gvec_remapped (int igloc__) const |
G-vector by local index (in the remapped set). More... | |
int | index_by_gvec (r3::vector< int > G__) const |
Return local index of the G-vector in the remapped set. More... | |
int | gvec_shell_remapped (int igloc__) const |
Index of the G-vector shell by the local G-vector index (in the remapped set). More... | |
template<typename T > | |
auto | remap_forward (T *data__) const |
template<typename T > | |
void | remap_backward (std::vector< T > buf__, T *data__) const |
Gvec const & | gvec () const |
Private Attributes | |
mpi::block_data_descriptor | a2a_send_ |
Sending counts and offsets. More... | |
mpi::block_data_descriptor | a2a_recv_ |
Receiving counts and offsets. More... | |
splindex_block_cyclic | spl_num_gsh_ |
Split global index of G-shells between MPI ranks. More... | |
sddk::mdarray< int, 2 > | gvec_remapped_ |
List of G-vectors in the remapped storage. More... | |
sddk::mdarray< int, 1 > | gvec_shell_remapped_ |
Mapping between index of local G-vector and global index of G-vector shell. More... | |
mpi::Communicator const & | comm_ |
Alias for the G-vector communicator. More... | |
Gvec const & | gvec_ |
std::map< r3::vector< int >, int > | idx_gvec_ |
A mapping between G-vector and it's local index in the new distribution. More... | |
Helper class to manage G-vector shells and redistribute G-vectors for symmetrization.
G-vectors are remapped from default distribution which balances both the local number of z-columns and G-vectors to the distribution of G-vector shells in which each MPI rank stores local set of complete G-vector shells such that the "rotated" G-vector remains on the same MPI rank.
sirius::fft::Gvec_shells::Gvec_shells | ( | Gvec const & | gvec__ | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |