OOPS
oops::Model< MODEL > Class Template Reference

Encapsulates the nonlinear forecast model Note: to see methods that need to be implemented in the forecast model implementation, see ModelBase class. More...

#include <Model.h>

Inheritance diagram for oops::Model< MODEL >:
Collaboration diagram for oops::Model< MODEL >:

Public Member Functions

 Model (const Geometry_ &, const ModelParametersBase &)
 
 Model (const Geometry_ &, const eckit::Configuration &)
 
virtual ~Model ()
 
void forecast (State_ &xx, const ModelAux_ &, const util::Duration &len, PostProcessor< State_ > &post) const
 Run the forecast from state xx for len time, with post postprocessors Does not need to be implemented in the models. More...
 
const util::Duration & timeResolution () const
 Time step for running Model's forecast in oops (frequency with which the State will be updated) More...
 
const oops::Variablesvariables () const
 Model variables (only used in 4DVar) More...
 

Static Public Member Functions

static const std::string classname ()
 

Private Types

typedef ModelBase< MODEL > ModelBase_
 
typedef Geometry< MODEL > Geometry_
 
typedef ModelAuxControl< MODEL > ModelAux_
 
typedef State< MODEL > State_
 

Private Member Functions

void initialize (State_ &) const
 Forecast initialization, called before every forecast run. More...
 
void step (State_ &, const ModelAux_ &) const
 Forecast "step", called during forecast run; updates state to the next time. More...
 
void finalize (State_ &) const
 Forecast finalization; called after each forecast run. More...
 
void print (std::ostream &) const
 Print, used in logging. More...
 

Private Attributes

std::unique_ptr< ModelBase_model_
 Pointer to the Model implementation. More...
 

Detailed Description

template<typename MODEL>
class oops::Model< MODEL >

Encapsulates the nonlinear forecast model Note: to see methods that need to be implemented in the forecast model implementation, see ModelBase class.

Note: implementations of this interface can opt to extract their settings either from a Configuration object or from a subclass of ModelParametersBase.

In the former case, they should provide a constructor with the following signature:

Model(const Geometry_ &, const eckit::Configuration &);

In the latter case, the implementer should first define a subclass of ModelParametersBase holding the settings of the model in question. The implementation of the Model interface should then typedef Parameters_ to the name of that subclass and provide a constructor with the following signature:

Model(const Geometry_ &, const Parameters_ &);

Definition at line 52 of file oops/interface/Model.h.

Member Typedef Documentation

◆ Geometry_

template<typename MODEL >
typedef Geometry<MODEL> oops::Model< MODEL >::Geometry_
private

Definition at line 56 of file oops/interface/Model.h.

◆ ModelAux_

template<typename MODEL >
typedef ModelAuxControl<MODEL> oops::Model< MODEL >::ModelAux_
private

Definition at line 57 of file oops/interface/Model.h.

◆ ModelBase_

template<typename MODEL >
typedef ModelBase<MODEL> oops::Model< MODEL >::ModelBase_
private

Definition at line 55 of file oops/interface/Model.h.

◆ State_

template<typename MODEL >
typedef State<MODEL> oops::Model< MODEL >::State_
private

Definition at line 58 of file oops/interface/Model.h.

Constructor & Destructor Documentation

◆ Model() [1/2]

template<typename MODEL >
oops::Model< MODEL >::Model ( const Geometry_ resol,
const ModelParametersBase params 
)

Definition at line 95 of file oops/interface/Model.h.

Here is the call graph for this function:

◆ Model() [2/2]

template<typename MODEL >
oops::Model< MODEL >::Model ( const Geometry_ resol,
const eckit::Configuration &  conf 
)

Definition at line 108 of file oops/interface/Model.h.

◆ ~Model()

template<typename MODEL >
oops::Model< MODEL >::~Model
virtual

Definition at line 115 of file oops/interface/Model.h.

Member Function Documentation

◆ classname()

template<typename MODEL >
static const std::string oops::Model< MODEL >::classname ( )
inlinestatic

Definition at line 61 of file oops/interface/Model.h.

Here is the caller graph for this function:

◆ finalize()

template<typename MODEL >
void oops::Model< MODEL >::finalize ( State_ xx) const
private

Forecast finalization; called after each forecast run.

Definition at line 170 of file oops/interface/Model.h.

Here is the call graph for this function:

◆ forecast()

template<typename MODEL >
void oops::Model< MODEL >::forecast ( State_ xx,
const ModelAux_ maux,
const util::Duration &  len,
PostProcessor< State_ > &  post 
) const

Run the forecast from state xx for len time, with post postprocessors Does not need to be implemented in the models.

Definition at line 125 of file oops/interface/Model.h.

Here is the call graph for this function:

◆ initialize()

template<typename MODEL >
void oops::Model< MODEL >::initialize ( State_ xx) const
private

Forecast initialization, called before every forecast run.

Definition at line 150 of file oops/interface/Model.h.

Here is the call graph for this function:

◆ print()

template<typename MODEL >
void oops::Model< MODEL >::print ( std::ostream &  os) const
private

Print, used in logging.

Definition at line 180 of file oops/interface/Model.h.

◆ step()

template<typename MODEL >
void oops::Model< MODEL >::step ( State_ xx,
const ModelAux_ maux 
) const
private

Forecast "step", called during forecast run; updates state to the next time.

Definition at line 160 of file oops/interface/Model.h.

Here is the call graph for this function:

◆ timeResolution()

template<typename MODEL >
const util::Duration& oops::Model< MODEL >::timeResolution ( ) const
inline

Time step for running Model's forecast in oops (frequency with which the State will be updated)

Definition at line 74 of file oops/interface/Model.h.

◆ variables()

template<typename MODEL >
const oops::Variables& oops::Model< MODEL >::variables ( ) const
inline

Model variables (only used in 4DVar)

Definition at line 76 of file oops/interface/Model.h.

Member Data Documentation

◆ model_

template<typename MODEL >
std::unique_ptr<ModelBase_> oops::Model< MODEL >::model_
private

Pointer to the Model implementation.

Definition at line 89 of file oops/interface/Model.h.


The documentation for this class was generated from the following file: