14 #ifndef OOPS_INTERFACE_LOCALIZATIONBASE_H_
15 #define OOPS_INTERFACE_LOCALIZATIONBASE_H_
42 template<
typename MODEL>
46 static const std::string
classname() {
return "oops::Localization";}
67 template<
class MODEL,
class T>
70 std::unique_ptr<oops::LocalizationBase<MODEL>>
make(
const Geometry_ & geometry,
71 const eckit::Configuration & conf)
override
72 {
return std::make_unique<T>(geometry.
geometry(), conf); }
Geometry class used in oops; subclass of interface class interface::Geometry.
Increment class used in oops.
Base class for generic implementations of model-space localization. Use this class as a base class fo...
const Geometry_ & geometry() const
void multiply(oops::Increment< MODEL > &dx) const final
Apply 3D localization to dx.
virtual void multiply(Increment_ &dx) const =0
Apply 3D localization to dx.
virtual void randomize(Increment_ &dx) const =0
Randomize dx and apply 3D localization.
static const std::string classname()
MODEL::Increment Increment_
virtual ~LocalizationBase()=default
LocalizationBase()=default
void randomize(oops::Increment< MODEL > &dx) const final
A subclass of LocalizationFactory able to create instances of T (a concrete subclass of interface::Lo...
oops::Geometry< MODEL > Geometry_
std::unique_ptr< oops::LocalizationBase< MODEL > > make(const Geometry_ &geometry, const eckit::Configuration &conf) override
LocalizationMaker(const std::string &name)
The namespace for the main oops code.