ExaDG
Loading...
Searching...
No Matches
Public Member Functions | List of all members
dealspectrum::Permutator Class Reference

#include <permutation.h>

Public Member Functions

 Permutator (MPI_Comm const &comm, Setup &s)
 
template<typename MAPPING , typename FFTW >
void init (MAPPING &MAP, FFTW &FFT)
 
virtual ~Permutator ()
 
void ipermute (double *source, double *target)
 
void iwait ()
 

Detailed Description

Class for permuting dofs from cellwise-sfc-order to lexicographical order such that processes own complete rows (2D) or complete planes (3D) as specified by FFTW. To be able to process the resulting array by FFTW, we on the fly insert padding.

This class expects an input array as described in the interpolation class and produces an array of the format which comply the requirements described in the FFTW wrapper class.

Constructor & Destructor Documentation

◆ Permutator()

dealspectrum::Permutator::Permutator ( MPI_Comm const & comm,
Setup & s )
inline

Constructor

Parameters
sDEAL.SPECTRUM setup

◆ ~Permutator()

virtual dealspectrum::Permutator::~Permutator ( )
inlinevirtual

Destructor

Member Function Documentation

◆ init()

template<typename MAPPING , typename FFTW >
void dealspectrum::Permutator::init ( MAPPING & MAP,
FFTW & FFT )
inline

Initialize all data structures needed for communication

Parameters
MAPreference to bijection function
FFTreference to fftw-wrapper

◆ ipermute()

void dealspectrum::Permutator::ipermute ( double * source,
double * target )
inline

Start (nonblocking) permutation:

  • write data into buffers for each process and send away data right away
  • perform permutation directly on local process
Parameters
sourcesource array to be permuted...
target...into target array

◆ iwait()

void dealspectrum::Permutator::iwait ( )
inline

Finish (nonblocking) permutation: wait and write received data from buffer into target array


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