template<typename Kernel>
atlas::interpolation::method::StructuredInterpolation2D class

Horizontal interpolation making use of Structure of grid Multiple (vertical) levels can be interpolated as well but assumes that input and output levels are the same.

Base classes

class atlas::interpolation::Method

Public types

using Config = eckit::Parametrisation
using Metadata = util::Metadata

Constructors, destructors, conversion operators

StructuredInterpolation2D(const Config& config)
~StructuredInterpolation2D() override

Public functions

void print(std::ostream&) const override
auto kernel() const -> const Kernel&
auto source() const -> const FunctionSpace& override
auto target() const -> const FunctionSpace& override
void setup(const FunctionSpace& source, const FunctionSpace& target)
Setup the interpolator relating two functionspaces.
void setup(const Grid& source, const Grid& target)
void setup(const FunctionSpace& source, const Field& target)
void setup(const FunctionSpace& source, const FieldSet& target)
void setup(const Grid& source, const Grid& target, const Cache&)
auto execute(const FieldSet& source, FieldSet& target) const -> Metadata
auto execute(const Field& source, Field& target) const -> Metadata
auto execute_adjoint(FieldSet& source, const FieldSet& target) const -> Metadata
execute_adjoint
auto execute_adjoint(Field& source, const Field& target) const -> Metadata
auto createCache() const -> interpolation::Cache virtual

Private functions

void do_setup(const Grid& source, const Grid& target, const Cache&) override
void do_setup(const FunctionSpace& source, const FunctionSpace& target) override
void do_setup(const FunctionSpace& source, const Field& target) override
void do_setup(const FunctionSpace& source, const FieldSet& target) override
void do_execute(const Field& src, Field& tgt, Metadata&) const override
void do_execute(const FieldSet& src, FieldSet& tgt, Metadata&) const override

Typedef documentation

template<typename Kernel>
using atlas::interpolation::method::StructuredInterpolation2D<Kernel>::Config = eckit::Parametrisation

template<typename Kernel>
using atlas::interpolation::method::StructuredInterpolation2D<Kernel>::Metadata = util::Metadata

Function documentation

template<typename Kernel>
void atlas::interpolation::method::StructuredInterpolation2D<Kernel>::setup(const FunctionSpace& source, const FunctionSpace& target)

Setup the interpolator relating two functionspaces.

Parameters
source functionspace containing source elements
target functionspace containing target points

template<typename Kernel>
void atlas::interpolation::method::StructuredInterpolation2D<Kernel>::setup(const Grid& source, const Grid& target)

template<typename Kernel>
void atlas::interpolation::method::StructuredInterpolation2D<Kernel>::setup(const FunctionSpace& source, const Field& target)

template<typename Kernel>
void atlas::interpolation::method::StructuredInterpolation2D<Kernel>::setup(const FunctionSpace& source, const FieldSet& target)

template<typename Kernel>
void atlas::interpolation::method::StructuredInterpolation2D<Kernel>::setup(const Grid& source, const Grid& target, const Cache&)

template<typename Kernel>
Metadata atlas::interpolation::method::StructuredInterpolation2D<Kernel>::execute(const FieldSet& source, FieldSet& target) const

template<typename Kernel>
Metadata atlas::interpolation::method::StructuredInterpolation2D<Kernel>::execute(const Field& source, Field& target) const

template<typename Kernel>
Metadata atlas::interpolation::method::StructuredInterpolation2D<Kernel>::execute_adjoint(FieldSet& source, const FieldSet& target) const

execute_adjoint

Parameters
source - it is either a FieldSet or a Field
target - it is either a FieldSet or a Field Note that formally in an adjoint operation of this type we should be setting the values in the target to zero. This is not done for efficiency reasons and because in most cases it is not necessary.

template<typename Kernel>
Metadata atlas::interpolation::method::StructuredInterpolation2D<Kernel>::execute_adjoint(Field& source, const Field& target) const

template<typename Kernel>
interpolation::Cache atlas::interpolation::method::StructuredInterpolation2D<Kernel>::createCache() const virtual