ThunderEgg
1.0.0
|
Directly places values from coarse cell into the corresponding fine cells. More...
#include <DirectInterpolator.h>
Public Member Functions | |
DirectInterpolator (const Domain< D > &coarse_domain, const Domain< D > &fine_domain) | |
Create new DirectInterpolator object. More... | |
DirectInterpolator< D > * | clone () const override |
Clone this interpolator. More... | |
void | interpolatePatches (const std::vector< std::pair< int, std::reference_wrapper< const PatchInfo< D >>>> &patches, const Vector< D > &coarser_vector, Vector< D > &finer_vector) const override |
Interpolate values from coarse vector to the finer vector. More... | |
Public Member Functions inherited from ThunderEgg::GMG::MPIInterpolator< D > | |
MPIInterpolator (const Domain< D > &coarser_domain, const Domain< D > &finer_domain) | |
Create new MPIInterpolator object. More... | |
void | interpolate (const Vector< D > &coarse, Vector< D > &fine) const |
interpolation function More... | |
Public Member Functions inherited from ThunderEgg::GMG::Interpolator< D > | |
virtual | ~Interpolator () |
Destroy the Interpolator object. | |
Directly places values from coarse cell into the corresponding fine cells.
This is a piecewise constant interpolation scheme.
|
inline |
Create new DirectInterpolator object.
|
inlineoverridevirtual |
Clone this interpolator.
Implements ThunderEgg::GMG::Interpolator< D >.
|
inlineoverridevirtual |
Interpolate values from coarse vector to the finer vector.
The idea behind this is that this function will be called twice. Once to interpolate from the local values, and once to interpolate from the ghost values. The local values will be interpolated from first, while MPI communication is happening, and the ghost values will be interpolated from last.
patches | pairs where the first value is the index in the coarse vector and the second value is a reference to the PatchInfo object |
finer_vector | the finer vector |
coarser_vector | the coarser vector |
Implements ThunderEgg::GMG::MPIInterpolator< D >.