class
QuasiCubicHorizontalKernel
Public types
- struct Weights
- struct WorkSpace
-
using Stencil = grid::
HorizontalStencil<4>
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
- QuasiCubicHorizontalKernel() defaulted
-
QuasiCubicHorizontalKernel(const functionspace::
StructuredColumns& fs, const util:: Config& config = util:: NoConfig())
Public functions
-
template<typename stencil_t>void compute_stencil(const double x, const double y, stencil_t& stencil) const
-
template<typename stencil_t>void make_valid_stencil(double& x, double y, stencil_t& stencil, bool retry = true) const
-
template<typename weights_t>void compute_weights(double x, double y, weights_t& weights) const
-
template<typename stencil_t, typename weights_t>void compute_weights(const double x, const double y, 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 -> array_t::value_type
-
template<typename stencil_t, typename weights_t, typename Value, int Rank>auto interpolate(const stencil_t& stencil, const weights_t& weights, const array::
ArrayView<const Value, Rank>& input, array:: ArrayView<Value, Rank>& output, idx_ t r) const -> std:: enable_if<(Rank==1), void>::type -
template<typename stencil_t, typename weights_t, typename Value, int Rank>auto interpolate(const stencil_t& stencil, const weights_t& weights, const array::
ArrayView<const Value, Rank>& input, array:: ArrayView<Value, Rank>& output, idx_ t r) const -> std:: enable_if<(Rank==2), void>::type -
template<typename array_t>auto operator()(double x, double y, const array_t& input) const -> array_t::value_type
-
template<typename array_t>auto interpolate(PointXY p, const array_t& input, WorkSpace& ws) const -> array_t::value_type
-
auto compute_triplets(const idx_
t row, const double x, const double y, WorkSpace& ws) const -> Triplets - auto reserve_triplets(size_t N) -> Triplets
- auto allocate_triplets(size_t N) -> Triplets
-
void insert_triplets(const idx_
t row, const PointXY& p, Triplets& triplets, WorkSpace& ws) const -
void insert_triplets(const idx_
t row, double x, double y, Triplets& triplets, WorkSpace& ws) const