class
SphericalVector
Base classes
Public types
-
using Config = eckit::
Parametrisation -
using Metadata = util::
Metadata
Constructors, destructors, conversion operators
- SphericalVector(const Config& config)
- Interpolation post-processor for vector field interpolation.
- ~SphericalVector() override
Public functions
-
void print(std::
ostream&) const override - auto source() const -> const FunctionSpace& override
- auto target() const -> const FunctionSpace& override
- void do_execute(const FieldSet& sourceFieldSet, FieldSet& targetFieldSet, Metadata& metadata) const override
- void do_execute(const Field& sourceField, Field& targetField, Metadata& metadata) const override
- void do_execute_adjoint(FieldSet& sourceFieldSet, const FieldSet& targetFieldSet, Metadata& metadata) const override
- void do_execute_adjoint(Field& sourceField, const Field& targetField, Metadata& metadata) const 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 FunctionSpace& source, const FunctionSpace& target) override
- void do_setup(const Grid& source, const Grid& target, const Cache&) override
Typedef documentation
using atlas:: interpolation:: method:: SphericalVector:: Config = eckit:: Parametrisation
using atlas:: interpolation:: method:: SphericalVector:: Metadata = util:: Metadata
Function documentation
atlas:: interpolation:: method:: SphericalVector:: SphericalVector(const Config& config)
Interpolation post-processor for vector field interpolation.
Takes a base interpolation config keyed to "scheme" and creates A set of complex intepolation weights which rotate source vector elements into the target elements' individual frame of reference. Method works by creating a great-circle arc between the source and target locations; the amount of rotation is determined by the difference the in the great-cricle course (relative to north) at the source and target location. Both source and target fields require the "type" metadata to be set to "vector" for this method to be invoked. Otherwise, the base scalar interpolation method is invoked. Note: This method only works with matrix-based interpolation schemes.
void atlas:: interpolation:: method:: SphericalVector:: setup(const FunctionSpace& source,
const FunctionSpace& target)
Setup the interpolator relating two functionspaces.
Parameters | |
---|---|
source | functionspace containing source elements |
target | functionspace containing target points |
void atlas:: interpolation:: method:: SphericalVector:: setup(const FunctionSpace& source,
const Field& target)
void atlas:: interpolation:: method:: SphericalVector:: setup(const FunctionSpace& source,
const FieldSet& target)
Metadata atlas:: interpolation:: method:: SphericalVector:: 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. |
Metadata atlas:: interpolation:: method:: SphericalVector:: execute_adjoint(Field& source,
const Field& target) const
interpolation:: Cache atlas:: interpolation:: method:: SphericalVector:: createCache() const virtual