PLaSK library
Loading...
Searching...
No Matches
interpolation.hpp File Reference
#include <typeinfo>
#include "mesh.hpp"
#include "../exceptions.hpp"
#include "../memory.hpp"
#include "../lazydata.hpp"
#include "../log/log.hpp"
#include "plask/geometry/space.hpp"
Include dependency graph for interpolation.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  plask::InterpolationFlags
 Interpolation flags that give information how to interpolate fields on periodic and symmetric geometries. More...
 
struct  plask::InterpolationAlgorithm< SrcMeshT, SrcT, DstT, method >
 Specialization of this class are used for interpolation and can depend on source mesh type, data type and the interpolation method. More...
 
struct  plask::InterpolationAlgorithm< SrcMeshT, SrcT, DstT, INTERPOLATION_DEFAULT >
 Specialization of InterpolationAlgorithm showing elegant message if algorithm default is used. More...
 
struct  plask::__InterpolateMeta__< SrcMeshT, SrcT, DstT, iter >
 
struct  plask::__InterpolateMeta__< SrcMeshT, SrcT, DstT, __ILLEGAL_INTERPOLATION_METHOD__ >
 
struct  plask::InterpolatedLazyDataImpl< DstT, SrcMeshType, SrcT >
 Base class for lazy data (vector) that perform interpolation. More...
 
struct  plask::LinearInterpolatedLazyDataImpl< DstT, SrcMeshType, SrcT >
 Implementation of InterpolatedLazyDataImpl which calls src_mesh.interpolateLinear(src_vec, dst_mesh). More...
 
struct  plask::NearestNeighborInterpolatedLazyDataImpl< DstT, SrcMeshType, SrcT >
 Implementation of InterpolatedLazyDataImpl which calls src_mesh.interpolateNearestNeighbor(src_vec, dst_mesh). More...
 

Namespaces

namespace  plask
 Patterson quadrature for complex function along specified line.
 
namespace  boost
 

Enumerations

enum  plask::InterpolationMethod : unsigned {
  plask::INTERPOLATION_DEFAULT = 0 , plask::INTERPOLATION_NEAREST , plask::INTERPOLATION_LINEAR , plask::INTERPOLATION_SPLINE ,
  plask::INTERPOLATION_SMOOTH_SPLINE , plask::INTERPOLATION_PERIODIC_SPLINE , plask::INTERPOLATION_FOURIER , plask::__ILLEGAL_INTERPOLATION_METHOD__
}
 Supported interpolation methods. More...
 

Functions

template<InterpolationMethod default_method>
InterpolationMethod plask::getInterpolationMethod (InterpolationMethod method)
 Helper utility that replaces INTERPOLATION_DEFAULT with particular method.
 
template<typename SrcMeshT , typename SrcT , typename DstT = SrcT>
LazyData< typename std::remove_const< DstT >::type > plask::interpolate (shared_ptr< const SrcMeshT > src_mesh, DataVector< const SrcT > src_vec, shared_ptr< const MeshD< SrcMeshT::DIM > > dst_mesh, InterpolationMethod method=INTERPOLATION_DEFAULT, const InterpolationFlags &flags=InterpolationFlags(), bool verbose=true)
 Calculate (interpolate when needed) a field of some physical properties in requested points of (dst_mesh) if values of this field in points of (src_mesh) are known.
 
template<typename SrcMeshT , typename SrcT , typename DstT = SrcT, typename DstMeshT >
LazyData< typename std::remove_const< DstT >::type > plask::interpolate (shared_ptr< SrcMeshT > src_mesh, DataVector< SrcT > src_vec, shared_ptr< DstMeshT > dst_mesh, InterpolationMethod method=INTERPOLATION_DEFAULT, const InterpolationFlags &flags=InterpolationFlags(), bool verbose=true)
 
template<>
plask::InterpolationMethod boost::lexical_cast< plask::InterpolationMethod, std::string > (const std::string &arg)