Go to the documentation of this file.
8 #ifndef OOPS_GENERIC_PSEUDOMODEL_H_
9 #define OOPS_GENERIC_PSEUDOMODEL_H_
18 #include "oops/util/Duration.h"
19 #include "oops/util/Logger.h"
28 template <
typename MODEL>
32 typedef typename MODEL::State
State_;
35 static const std::string
classname() {
return "oops::PseudoModel";}
53 void print(std::ostream &)
const override {}
56 std::vector<eckit::LocalConfiguration>
confs_;
62 template<
typename MODEL>
64 : tstep_(
util::Duration(conf.getString(
"tstep"))), vars_(conf,
"state variables"),
65 confs_(conf.getSubConfigurations(
"states")),
67 Log::trace() <<
"PseudoModel<MODEL>::PseudoModel done" << std::endl;
72 template<
typename MODEL>
75 Log::trace() <<
"PseudoModel<MODEL>::initialize done" << std::endl;
80 template<
typename MODEL>
82 Log::trace() <<
"PseudoModel<MODEL>:step Starting " << std::endl;
83 xx.updateTime(tstep_);
84 xx.read(confs_[currentstate_++]);
85 Log::trace() <<
"PseudoModel<MODEL>::step done" << std::endl;
90 template<
typename MODEL>
92 Log::trace() <<
"PseudoModel<MODEL>::finalize done" << std::endl;
99 #endif // OOPS_GENERIC_PSEUDOMODEL_H_
Base class for the forecasting model Defines the interfaces for a forecast model.
MODEL::ModelAuxControl ModelAux_
The namespace for the main oops code.
const util::Duration & timeResolution() const override
model time step
void step(State_ &, const ModelAux_ &) const override
one forecast step
const oops::Variables & variables() const override
model variables
const oops::Variables vars_
void print(std::ostream &) const override
Print; used for logging.
static const std::string classname()
std::vector< eckit::LocalConfiguration > confs_
const util::Duration tstep_
MODEL::ModelAuxControl ModelAux_
Generic implementation of the pseudo model (steps through time by reading states)
void initialize(State_ &) const override
initialize forecast
void finalize(State_ &) const override
finalize forecast
PseudoModel(const Geometry_ &, const eckit::Configuration &)
MODEL::Geometry Geometry_