Interpolate data from a Mesh onto a regular grid of points. More...
#include <RegularGridInterpolant.hpp>
Public Member Functions  
RegularGrid (const Mesh< Dim > &source_mesh, const Mesh< Dim > &target_mesh, const std::array< DataVector, Dim > &override_target_mesh_with_1d_logical_coords={}) noexcept  
An interpolator between two regular grids. More...  
void  pup (PUP::er &p) noexcept 
const std::array< Matrix, Dim > &  interpolation_matrices () const noexcept 
Return the internallystored matrices that interpolate from the source grid to the target grid. More...  
template<typename TagsList >  
void  interpolate (const gsl::not_null< Variables< TagsList > * > result, const Variables< TagsList > &vars) const noexcept 
template<typename TagsList >  
void  interpolate (gsl::not_null< Variables< TagsList > * > result, const Variables< TagsList > &vars) const noexcept 
Interpolate a Variables onto the target points.  
template<typename TagsList >  
Variables< TagsList >  interpolate (const Variables< TagsList > &vars) const noexcept 
Interpolate a Variables onto the target points.  
void  interpolate (gsl::not_null< DataVector * > result, const DataVector &input) const noexcept 
Interpolate a DataVector onto the target points. More...  
DataVector  interpolate (const DataVector &input) const noexcept 
Interpolate a DataVector onto the target points. More...  
Friends  
template<size_t LocalDim>  
bool  operator== (const RegularGrid< LocalDim > &lhs, const RegularGrid< LocalDim > &rhs) noexcept 
Interpolate data from a Mesh onto a regular grid of points.
The target points must lie on a tensorproduct grid that is aligned with the source Mesh. In any direction where the source and target points share an identical Mesh (i.e., where the underlying 1dimensional meshes share the same extent, basis, and quadrature), the code is optimized to avoid performing identity interpolations.
Note, however, that in each dimension of the target grid, the points can be freely distributed; in particular, the grid points need not be the collocation points corresponding to a particular basis and quadrature. Note also that the target grid need not overlap the source grid. In this case, polynomial extrapolation is performed, with order set by the order of the basis in the source grid. The extrapolation will be correct but may suffer from reduced accuracy, especially for higherorder polynomials.

noexcept 
An interpolator between two regular grids.
When the optional third argument is NOT passed, creates an interpolator between two regular meshes.
The optional third argument allows the caller to override the distribution of grid points in any dimension(s) of the target grid. Each nonempty element of override_target_mesh_with_1d_logical_coords
gives the logical coordinates which will override the default coordinates of target_mesh
.

noexcept 
Interpolate a DataVector onto the target points.

noexcept 
Interpolate a DataVector onto the target points.

noexcept 
Return the internallystored matrices that interpolate from the source grid to the target grid.
Each matrix interpolates in one logical direction, and can be empty if the interpolation in that direction is the identity (i.e., if the source and target grids have the same logical coordinates in this direction).