atlas::interpolation::method::Linear3DKernel class

Public types

template<typename Value>
struct OutputView1D
struct Weights
struct WorkSpace
using Stencil = grid::Stencil3D<2>

Public static functions

static auto className() -> std::string
static auto stencil_width() -> idx_t constexpr
static auto stencil_size() -> idx_t constexpr
static auto stencil_halo() -> idx_t constexpr

Constructors, destructors, conversion operators

Linear3DKernel(const functionspace::StructuredColumns& fs, const util::Config& config = util::NoConfig())

Public functions

template<typename stencil_t>
void compute_stencil(double& x, const double y, const double z, stencil_t& stencil) const
template<typename weights_t>
void compute_weights(double x, double y, const double z, weights_t& weights) const
template<typename stencil_t, typename weights_t>
void compute_weights(const double x, const double y, const double z, const stencil_t& stencil, weights_t& weights) const
template<typename stencil_t, typename weights_t, typename array_t>
auto interpolate(const stencil_t& stencil, const weights_t& weights, const array_t& input) const -> std::enable_if<(array_t::RANK==2), typename array_t::value_type>::type
template<typename Value>
auto make_outputview(Value* data) const -> OutputView1D<Value>
template<typename stencil_t, typename weights_t, typename InputArray, typename OutputArray>
auto interpolate_vars(const stencil_t& stencil, const weights_t& weights, const InputArray& input, OutputArray& output, const idx_t nvar) const -> std::enable_if<(InputArray::RANK==3), void>::type
template<typename stencil_t, typename weights_t, typename InputArray, typename OutputArray>
auto interpolate(const stencil_t& stencil, const weights_t& weights, const InputArray& input, OutputArray& output, idx_t r) const -> std::enable_if<(InputArray::RANK==2 && OutputArray::RANK==1), void>::type
template<typename stencil_t, typename weights_t, typename InputArray, typename OutputArray>
auto interpolate(const stencil_t& stencil, const weights_t& weights, const InputArray& input, OutputArray& output, idx_t r, idx_t k) const -> std::enable_if<(InputArray::RANK==2 && OutputArray::RANK==2), void>::type
template<typename stencil_t, typename weights_t, typename InputArray, typename OutputArray>
auto interpolate(const stencil_t& stencil, const weights_t& weights, const InputArray& input, OutputArray& output, idx_t r, idx_t k) const -> std::enable_if<(InputArray::RANK==3 && OutputArray::RANK==3), void>::type
template<typename stencil_t, typename weights_t, typename InputArray, typename OutputArray>
auto interpolate(const stencil_t&, const weights_t&, const InputArray&, OutputArray&, idx_t, idx_t) const -> std::enable_if<(InputArray::RANK==2 && OutputArray::RANK==3), void>::type
template<typename stencil_t, typename weights_t, typename InputArray, typename OutputArray>
auto interpolate(const stencil_t&, const weights_t&, const InputArray&, OutputArray&, idx_t) const -> std::enable_if<(InputArray::RANK==3 && OutputArray::RANK==1), void>::type
template<typename stencil_t, typename weights_t, typename InputArray, typename OutputArray>
auto interpolate(const stencil_t&, const weights_t&, const InputArray&, OutputArray&, idx_t, idx_t) const -> std::enable_if<(InputArray::RANK==3 && OutputArray::RANK==1), void>::type
template<typename stencil_t, typename weights_t, typename InputArray, typename OutputArray>
auto interpolate(const stencil_t&, const weights_t&, const InputArray&, OutputArray&, idx_t, idx_t) const -> std::enable_if<(InputArray::RANK==3 && OutputArray::RANK==2), void>::type