8 #ifndef OOPS_INTERFACE_MODELBASE_H_ 
    9 #define OOPS_INTERFACE_MODELBASE_H_ 
   14 #include <boost/make_unique.hpp> 
   20 #include "oops/util/Logger.h" 
   47 template <
typename MODEL>
 
   50   typedef typename MODEL::State             
State_;
 
   53   static const std::string 
classname() {
return "oops::interface::ModelBase";}
 
   63        { this->
step(xx.state(), modelaux.modelauxcontrol()); }
 
   79 template<
class MODEL, 
class T>
 
   84   typedef TParameters_IfAvailableElseFallbackType_t<T, GenericModelParameters> 
Parameters_;
 
   93     Log::trace() << 
"interface::ModelBase<MODEL>::make starting" << std::endl;
 
   94     const auto &stronglyTypedParameters = 
dynamic_cast<const Parameters_&
>(parameters);
 
   96                  parametersOrConfiguration<HasParameters_<T>::value>(stronglyTypedParameters));
 
  100     return boost::make_unique<Parameters_>();
 
Geometry class used in oops; subclass of interface class interface::Geometry.
 
Auxiliary state related to model (could be e.g. model bias), not used at the moment.
 
Base class for generic implementations of the forecasting models. Use this class as a base class for ...
 
Base class for classes storing model-specific parameters.
 
State class used in oops; subclass of interface class interface::State.
 
const Geometry_ & geometry() const
 
Base class for MODEL-specific implementations of the Model interface. interface::ModelBase overrides ...
 
void initialize(oops::State< MODEL > &xx) const final
 
void finalize(oops::State< MODEL > &xx) const final
Forecast finalization; called after each forecast run.
 
virtual void finalize(State_ &) const =0
Forecast finalization; called after each forecast run.
 
static const std::string classname()
 
virtual void step(State_ &, const ModelAux_ &) const =0
Forecast "step", called during forecast run; updates state to the next time.
 
MODEL::ModelAuxControl ModelAux_
 
virtual void initialize(State_ &) const =0
Forecast initialization, called before every forecast run.
 
void step(oops::State< MODEL > &xx, const ModelAuxControl< MODEL > &modelaux) const final
Forecast "step", called during forecast run; updates state to the next time.
 
virtual ~ModelBase()=default
 
A subclass of ModelFactory able to create instances of T (a concrete subclass of interface::ModelBase...
 
TParameters_IfAvailableElseFallbackType_t< T, GenericModelParameters > Parameters_
 
oops::Geometry< MODEL > Geometry_
 
ModelMaker(const std::string &name)
 
std::unique_ptr< ModelParametersBase > makeParameters() const override
 
oops::ModelBase< MODEL > * make(const Geometry_ &geom, const ModelParametersBase ¶meters) override
 
The namespace for the main oops code.