FV3 Bundle
oops::LinearModel< MODEL > Class Template Reference

Encapsulates the linear forecast model. More...

#include <LinearModel.h>

Inheritance diagram for oops::LinearModel< MODEL >:
[legend]
Collaboration diagram for oops::LinearModel< MODEL >:
[legend]

Public Member Functions

 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::Variablesvariables () 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

boost::scoped_ptr< LinearModelBase_tlm_
 

Detailed Description

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

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.

Definition at line 49 of file oops/interface/LinearModel.h.

Member Typedef Documentation

◆ Geometry_

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

Definition at line 54 of file oops/interface/LinearModel.h.

◆ Increment_

template<typename MODEL >
typedef Increment<MODEL> oops::LinearModel< MODEL >::Increment_
private

Definition at line 53 of file oops/interface/LinearModel.h.

◆ LinearModelBase_

template<typename MODEL >
typedef LinearModelBase<MODEL> oops::LinearModel< MODEL >::LinearModelBase_
private

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

◆ ModelAux_

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

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

◆ ModelAuxIncr_

template<typename MODEL >
typedef ModelAuxIncrement<MODEL> oops::LinearModel< MODEL >::ModelAuxIncr_
private

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

◆ State_

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

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

Constructor & Destructor Documentation

◆ LinearModel()

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

Definition at line 105 of file oops/interface/LinearModel.h.

Here is the call graph for this function:

◆ ~LinearModel()

template<typename MODEL >
oops::LinearModel< MODEL >::~LinearModel ( )

Definition at line 118 of file oops/interface/LinearModel.h.

Member Function Documentation

◆ classname()

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

Definition at line 60 of file oops/interface/LinearModel.h.

Here is the caller graph for this function:

◆ finalizeAD()

template<typename MODEL >
void oops::LinearModel< MODEL >::finalizeAD ( Increment_ dx) const
protected

Definition at line 275 of file oops/interface/LinearModel.h.

◆ finalizeTL()

template<typename MODEL >
void oops::LinearModel< MODEL >::finalizeTL ( Increment_ dx) const
protected

Definition at line 245 of file oops/interface/LinearModel.h.

◆ forecastAD()

template<typename MODEL >
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 173 of file oops/interface/LinearModel.h.

Here is the call graph for this function:

◆ forecastTL()

template<typename MODEL >
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 132 of file oops/interface/LinearModel.h.

Here is the call graph for this function:

◆ initializeAD()

template<typename MODEL >
void oops::LinearModel< MODEL >::initializeAD ( Increment_ dx) const
protected

Definition at line 255 of file oops/interface/LinearModel.h.

◆ initializeTL()

template<typename MODEL >
void oops::LinearModel< MODEL >::initializeTL ( Increment_ dx) const
protected

Definition at line 225 of file oops/interface/LinearModel.h.

◆ print()

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

Definition at line 285 of file oops/interface/LinearModel.h.

◆ setTrajectory()

template<typename MODEL >
void oops::LinearModel< MODEL >::setTrajectory ( const State_ xx,
State_ xlr,
const ModelAux_ maux 
)

Definition at line 214 of file oops/interface/LinearModel.h.

◆ stepAD()

template<typename MODEL >
void oops::LinearModel< MODEL >::stepAD ( Increment_ dx,
ModelAuxIncr_ merr 
) const
protected

Definition at line 265 of file oops/interface/LinearModel.h.

◆ stepTL()

template<typename MODEL >
void oops::LinearModel< MODEL >::stepTL ( Increment_ dx,
const ModelAuxIncr_ merr 
) const
protected

Definition at line 235 of file oops/interface/LinearModel.h.

◆ timeResolution()

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

Definition at line 81 of file oops/interface/LinearModel.h.

◆ variables()

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

Definition at line 82 of file oops/interface/LinearModel.h.

Member Data Documentation

◆ tlm_

template<typename MODEL >
boost::scoped_ptr<LinearModelBase_> oops::LinearModel< MODEL >::tlm_
private

Definition at line 99 of file oops/interface/LinearModel.h.


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