atlas::interpolation::Method class

Derived classes

template<typename Kernel>
class StructuredInterpolation2D
template<typename Kernel>
class StructuredInterpolation2D
template<typename Kernel>
class StructuredInterpolation2D
template<typename Kernel>
class StructuredInterpolation3D
template<typename Kernel>
class StructuredInterpolation3D
template<typename Kernel>
class StructuredInterpolation3D
class ConservativeSphericalPolygonInterpolation
class CubedSphereBilinear
Cubed sphere bilinear interpolation method.
class FiniteElement
class KNearestNeighboursBase
class SphericalVector
template<typename Kernel>
class StructuredInterpolation2D
template<typename Kernel>
class StructuredInterpolation3D
class UnstructuredBilinearLonLat

Public types

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

Constructors, destructors, conversion operators

Method(const Config&)
~Method() virtual

Public functions

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
void print(std::ostream&) const pure virtual
auto source() const -> const FunctionSpace& pure virtual
auto target() const -> const FunctionSpace& pure virtual
auto createCache() const -> interpolation::Cache virtual

Private functions

void do_execute(const FieldSet& source, FieldSet& target, Metadata&) const virtual
void do_execute(const Field& source, Field& target, Metadata&) const virtual
void do_execute_adjoint(FieldSet& source, const FieldSet& target, Metadata&) const virtual
void do_execute_adjoint(Field& source, const Field& target, Metadata&) const virtual
void do_setup(const FunctionSpace& source, const FunctionSpace& target) pure virtual
void do_setup(const Grid& source, const Grid& target, const Cache&) pure virtual
void do_setup(const FunctionSpace& source, const Field& target) virtual
void do_setup(const FunctionSpace& source, const FieldSet& target) virtual

Function documentation

void atlas::interpolation::Method::setup(const FunctionSpace& source, const FunctionSpace& target)

Setup the interpolator relating two functionspaces.

Parameters
source functionspace containing source elements
target functionspace containing target points

Metadata atlas::interpolation::Method::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.