|
OOPS
|
Base class for generic implementations of the forecasting models. Use this class as a base class for generic implementations, and interface::ModelBase as a base class for MODEL-specific implementations. More...
#include <ModelBase.h>


Public Member Functions | |
| ModelBase ()=default | |
| virtual | ~ModelBase ()=default |
| virtual void | initialize (State_ &) const =0 |
| Forecast initialization, called before every forecast run. More... | |
| virtual void | step (State_ &, const ModelAux_ &) const =0 |
| Forecast "step", called during forecast run; updates state to the next time. More... | |
| virtual void | finalize (State_ &) const =0 |
| Forecast finalization; called after each forecast run. More... | |
| virtual const util::Duration & | timeResolution () const =0 |
| Time step for running Model's forecast in oops (frequency with which the State will be updated) More... | |
| virtual const oops::Variables & | variables () const =0 |
| Model variables (only used in 4DVar) More... | |
Static Public Member Functions | |
| static const std::string | classname () |
Private Types | |
| typedef ModelAuxControl< MODEL > | ModelAux_ |
| typedef State< MODEL > | State_ |
Private Member Functions | |
| virtual void | print (std::ostream &) const =0 |
| Print; used for logging. More... | |
Base class for generic implementations of the forecasting models. Use this class as a base class for generic implementations, and interface::ModelBase as a base class for MODEL-specific implementations.
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:
ModelBase(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 ModelBase interface should then typedef Parameters_ to the name of that subclass and provide a constructor with the following signature:
ModelBase(const Geometry_ &, const Parameters_ &);
Definition at line 60 of file generic/ModelBase.h.
|
private |
Definition at line 62 of file generic/ModelBase.h.
|
private |
Definition at line 63 of file generic/ModelBase.h.
|
default |
|
virtualdefault |
|
inlinestatic |
Definition at line 66 of file generic/ModelBase.h.
|
pure virtual |
Forecast finalization; called after each forecast run.
Implemented in oops::interface::ModelBase< QgTraits >, oops::interface::ModelBase< L95Traits >, oops::PseudoModelState4D< MODEL >, oops::PseudoModel< MODEL >, oops::IdentityModel< MODEL >, oops::interface::ModelBase< MODEL >, and oops::interface::ModelBase< MODEL >.
|
pure virtual |
Forecast initialization, called before every forecast run.
Implemented in oops::interface::ModelBase< QgTraits >, oops::interface::ModelBase< L95Traits >, oops::PseudoModelState4D< MODEL >, oops::PseudoModel< MODEL >, oops::IdentityModel< MODEL >, oops::interface::ModelBase< MODEL >, and oops::interface::ModelBase< MODEL >.
|
privatepure virtual |
Print; used for logging.
Implemented in oops::PseudoModelState4D< MODEL >, oops::PseudoModel< MODEL >, oops::IdentityModel< MODEL >, qg::ModelQG, and lorenz95::ModelL95.
|
pure virtual |
Forecast "step", called during forecast run; updates state to the next time.
Implemented in oops::interface::ModelBase< QgTraits >, oops::interface::ModelBase< L95Traits >, oops::PseudoModelState4D< MODEL >, oops::PseudoModel< MODEL >, oops::IdentityModel< MODEL >, oops::interface::ModelBase< MODEL >, and oops::interface::ModelBase< MODEL >.
|
pure virtual |
Time step for running Model's forecast in oops (frequency with which the State will be updated)
Implemented in oops::PseudoModelState4D< MODEL >, oops::PseudoModel< MODEL >, oops::IdentityModel< MODEL >, qg::ModelQG, and lorenz95::ModelL95.
|
pure virtual |
Model variables (only used in 4DVar)
Implemented in oops::PseudoModelState4D< MODEL >, oops::PseudoModel< MODEL >, oops::IdentityModel< MODEL >, qg::ModelQG, and lorenz95::ModelL95.