IODA Bundle
|
Encapsulates the linear forecast model. More...
#include <LinearModel.h>
Public Member Functions | |
LinearModel (const Geometry_ &, const LinearModelParametersBase &) | |
LinearModel (const Geometry_ &, const eckit::Configuration &) | |
~LinearModel () | |
void | forecastTL (Increment_ &, const ModelAuxIncr_ &, const util::Duration &, PostProcessor< Increment_ > post=PostProcessor< Increment_ >(), PostProcessorTLAD< MODEL > cost=PostProcessorTLAD< MODEL >(), const bool idmodel=false) const |
Run the tangent linear forecast. More... | |
void | forecastAD (Increment_ &, ModelAuxIncr_ &, const util::Duration &, PostProcessor< Increment_ > post=PostProcessor< Increment_ >(), PostProcessorTLAD< MODEL > cost=PostProcessorTLAD< MODEL >(), const bool idmodel=false) const |
Run the adjoint forecast. More... | |
void | setTrajectory (const State_ &, State_ &, const ModelAux_ &) |
const util::Duration & | timeResolution () const |
const oops::Variables & | variables () const |
Static Public Member Functions | |
static const std::string | classname () |
Protected Member Functions | |
void | initializeTL (Increment_ &) const |
void | stepTL (Increment_ &, const ModelAuxIncr_ &) const |
void | finalizeTL (Increment_ &) const |
void | initializeAD (Increment_ &) const |
void | stepAD (Increment_ &, ModelAuxIncr_ &) const |
void | finalizeAD (Increment_ &) const |
Private Types | |
typedef LinearModelBase< MODEL > | LinearModelBase_ |
typedef Increment< MODEL > | Increment_ |
typedef Geometry< MODEL > | Geometry_ |
typedef ModelAuxControl< MODEL > | ModelAux_ |
typedef ModelAuxIncrement< MODEL > | ModelAuxIncr_ |
typedef State< MODEL > | State_ |
Private Member Functions | |
void | print (std::ostream &) const |
Private Attributes | |
std::unique_ptr< LinearModelBase_ > | tlm_ |
Encapsulates the linear forecast model.
This class provides the operations associated with the LinearModel. It wraps the actual linear model which can be a model specific one or a generic one (identity). The interface for the linear model comprises two levels (LinearModel and LinearModelBase) because we want run time polymorphism.
Note: implementations of this interface can opt to extract their settings either from a Configuration object or from a subclass of LinearModelParametersBase.
In the former case, they should provide a constructor with the following signature:
LinearModel(const Geometry_ &, const eckit::Configuration &);
In the latter case, the implementer should first define a subclass of LinearModelParametersBase holding the settings of the model in question. The implementation of the LinearModel interface should then typedef Parameters_
to the name of that subclass and provide a constructor with the following signature:
LinearModel(const Geometry_ &, const Parameters_ &);
Definition at line 63 of file oops/interface/LinearModel.h.
|
private |
Definition at line 68 of file oops/interface/LinearModel.h.
|
private |
Definition at line 67 of file oops/interface/LinearModel.h.
|
private |
Definition at line 66 of file oops/interface/LinearModel.h.
|
private |
Definition at line 69 of file oops/interface/LinearModel.h.
|
private |
Definition at line 70 of file oops/interface/LinearModel.h.
|
private |
Definition at line 71 of file oops/interface/LinearModel.h.
oops::LinearModel< MODEL >::LinearModel | ( | const Geometry_ & | resol, |
const LinearModelParametersBase & | params | ||
) |
Definition at line 120 of file oops/interface/LinearModel.h.
oops::LinearModel< MODEL >::LinearModel | ( | const Geometry_ & | resol, |
const eckit::Configuration & | conf | ||
) |
Definition at line 133 of file oops/interface/LinearModel.h.
oops::LinearModel< MODEL >::~LinearModel |
Definition at line 141 of file oops/interface/LinearModel.h.
|
inlinestatic |
Definition at line 74 of file oops/interface/LinearModel.h.
|
protected |
Definition at line 296 of file oops/interface/LinearModel.h.
|
protected |
Definition at line 266 of file oops/interface/LinearModel.h.
void oops::LinearModel< MODEL >::forecastAD | ( | Increment_ & | dx, |
ModelAuxIncr_ & | mctl, | ||
const util::Duration & | len, | ||
PostProcessor< Increment_ > | post = PostProcessor<Increment_>() , |
||
PostProcessorTLAD< MODEL > | cost = PostProcessorTLAD<MODEL>() , |
||
const bool | idmodel = false |
||
) | const |
Run the adjoint forecast.
Definition at line 195 of file oops/interface/LinearModel.h.
void oops::LinearModel< MODEL >::forecastTL | ( | Increment_ & | dx, |
const ModelAuxIncr_ & | mctl, | ||
const util::Duration & | len, | ||
PostProcessor< Increment_ > | post = PostProcessor<Increment_>() , |
||
PostProcessorTLAD< MODEL > | cost = PostProcessorTLAD<MODEL>() , |
||
const bool | idmodel = false |
||
) | const |
Run the tangent linear forecast.
Run forecast TL and AD.
Definition at line 155 of file oops/interface/LinearModel.h.
|
protected |
Definition at line 276 of file oops/interface/LinearModel.h.
|
protected |
Definition at line 246 of file oops/interface/LinearModel.h.
|
private |
Definition at line 306 of file oops/interface/LinearModel.h.
void oops::LinearModel< MODEL >::setTrajectory | ( | const State_ & | xx, |
State_ & | xlr, | ||
const ModelAux_ & | maux | ||
) |
Definition at line 235 of file oops/interface/LinearModel.h.
|
protected |
Definition at line 286 of file oops/interface/LinearModel.h.
|
protected |
Definition at line 256 of file oops/interface/LinearModel.h.
|
inline |
Definition at line 96 of file oops/interface/LinearModel.h.
|
inline |
Definition at line 97 of file oops/interface/LinearModel.h.
|
private |
Definition at line 114 of file oops/interface/LinearModel.h.