14 #ifndef OOPS_INTERFACE_LOCALIZATION_H_
15 #define OOPS_INTERFACE_LOCALIZATION_H_
20 #include "eckit/config/Configuration.h"
29 template<
typename MODEL,
typename LOC>
34 static const std::string
classname() {
return "oops::Localization";}
43 void print(std::ostream &)
const override;
50 template <
typename MODEL,
typename LOC>
52 const util::DateTime &
time,
53 const eckit::Configuration & conf) {
54 Log::trace() <<
"Localization<MODEL>::Localization starting" << std::endl;
55 util::Timer timer(classname(),
"Localization");
56 loc_.reset(
new LOC(geometry.
geometry(), conf));
57 Log::trace() <<
"Localization<MODEL>::Localization done" << std::endl;
62 template <
typename MODEL,
typename LOC>
64 Log::trace() <<
"Localization<MODEL>::~Localization starting" << std::endl;
65 util::Timer timer(classname(),
"~Localization");
67 Log::trace() <<
"Localization<MODEL>::~Localization done" << std::endl;
72 template <
typename MODEL,
typename LOC>
74 Log::trace() <<
"Localization<MODEL>::doRandomize starting" << std::endl;
75 util::Timer timer(classname(),
"doRandomize");
77 Log::trace() <<
"Localization<MODEL>::doRandomize done" << std::endl;
82 template <
typename MODEL,
typename LOC>
84 Log::trace() <<
"Localization<MODEL>::doMultiply starting" << std::endl;
85 util::Timer timer(classname(),
"doMultiply");
87 Log::trace() <<
"Localization<MODEL>::doMultiply done" << std::endl;
92 template <
typename MODEL,
typename LOC>
94 Log::trace() <<
"Localization<MODEL>::print starting" << std::endl;
95 util::Timer timer(classname(),
"print");
97 Log::trace() <<
"Localization<MODEL>::print done" << std::endl;
Geometry class used in oops; subclass of interface class interface::Geometry.
Increment class used in oops.
Model-space localization base class.
Model-space localization class: intended for model-specific implementations.
static const std::string classname()
std::unique_ptr< LOC > loc_
Geometry< MODEL > Geometry_
void print(std::ostream &) const override
Localization(const Geometry_ &, const util::DateTime &, const eckit::Configuration &)
Increment< MODEL > Increment_
void doRandomize(Increment_ &) const override
void doMultiply(Increment_ &) const override
const Geometry_ & geometry() const
const Increment_ & increment() const
The namespace for the main oops code.