class
CubedSphereBilinearCubed sphere bilinear interpolation method.
Performs bilinear (quads) and baycentric (triangles) interpolation accross cubed sphere tiles in (alpha, beta) coordinates. Adding int "halo" (default 0) to the config controls the amount of halo to consider when seraching for interpolation polygons. Adding int "list_size" (defualt 8) will change the number of cells returned by the internal kd-tree search. Increasing both values may resolve errors if setup method fails to find cells. The automatic halo exchange in the execute method can be disabled by setting "halo_exchange" to false.
Base classes
Public types
-
using Config = eckit::
Parametrisation -
using Metadata = util::
Metadata
Constructors, destructors, conversion operators
- CubedSphereBilinear(const Config& config)
- ~CubedSphereBilinear() override
Public functions
-
void print(std::
ostream&) const override - 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 FunctionSpace& source, const FunctionSpace& target) override
- void do_setup(const Grid& source, const Grid& target, const Cache&) override
Typedef documentation
using atlas:: interpolation:: method:: CubedSphereBilinear:: Config = eckit:: Parametrisation
using atlas:: interpolation:: method:: CubedSphereBilinear:: Metadata = util:: Metadata
Function documentation
void atlas:: interpolation:: method:: CubedSphereBilinear:: 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:: CubedSphereBilinear:: setup(const FunctionSpace& source,
const Field& target)
void atlas:: interpolation:: method:: CubedSphereBilinear:: setup(const FunctionSpace& source,
const FieldSet& target)
Metadata atlas:: interpolation:: method:: CubedSphereBilinear:: 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:: CubedSphereBilinear:: execute_adjoint(Field& source,
const Field& target) const
interpolation:: Cache atlas:: interpolation:: method:: CubedSphereBilinear:: createCache() const virtual