8 #ifndef SABER_INTERPOLATION_INTERPOLATORBUMP_H_
9 #define SABER_INTERPOLATION_INTERPOLATORBUMP_H_
14 #include "atlas/field.h"
15 #include "atlas/functionspace.h"
16 #include "eckit/config/Configuration.h"
17 #include "eckit/mpi/Comm.h"
19 #include "oops/base/InterpolatorBase.h"
20 #include "oops/mpi/mpi.h"
21 #include "oops/util/ObjectCounter.h"
32 private util::ObjectCounter<InterpolatorBump> {
34 static const std::string
classname() {
return "saber::InterpolatorBump";}
37 const atlas::FunctionSpace &,
38 const atlas::FunctionSpace &,
39 const atlas::field::FieldSetImpl * =
nullptr,
40 const eckit::mpi::Comm & = oops::mpi::world());
44 void apply(
const atlas::FieldSet &, atlas::FieldSet &)
override;
45 void apply(
const atlas::Field &, atlas::Field &)
override;
46 void apply_ad(
const atlas::FieldSet &, atlas::FieldSet &)
override;
50 void print(std::ostream &)
const override;
61 #endif // SABER_INTERPOLATION_INTERPOLATORBUMP_H_