OOPS
oops::CostTermBase< MODEL, OBS > Class Template Referenceabstract

Base Class for Cost Function Terms. More...

#include <CostTermBase.h>

Inheritance diagram for oops::CostTermBase< MODEL, OBS >:

Public Member Functions

virtual ~CostTermBase ()
 Destructor. More...
 
virtual PostPtr_ initialize (const ControlVariable< MODEL, OBS > &, const eckit::Configuration &)=0
 Initialize before nonlinear model integration. More...
 
virtual PostPtrTLAD_ initializeTraj (const ControlVariable< MODEL, OBS > &, const Geometry_ &, const eckit::Configuration &)=0
 
virtual double finalize ()=0
 Finalize computation after nonlinear model integration. More...
 
virtual void finalizeTraj ()=0
 
virtual PostPtrTLAD_ setupTL (const ControlIncrement< MODEL, OBS > &) const =0
 Initialize before starting the TL run. More...
 
virtual PostPtrTLAD_ setupAD (std::shared_ptr< const GeneralizedDepartures >, ControlIncrement< MODEL, OBS > &) const =0
 Initialize before starting the AD run. More...
 
virtual std::unique_ptr< GeneralizedDeparturesmultiplyCovar (const GeneralizedDepartures &) const =0
 Multiply by covariance (or weight) matrix and its inverse. More...
 
virtual std::unique_ptr< GeneralizedDeparturesmultiplyCoInv (const GeneralizedDepartures &) const =0
 
virtual std::unique_ptr< GeneralizedDeparturesnewDualVector () const =0
 Provide new dual space vector (for example a Departure for Jo). More...
 
virtual std::unique_ptr< GeneralizedDeparturesnewGradientFG () const =0
 Gradient at first guess. More...
 
virtual void resetLinearization ()=0
 Reset trajectory. More...
 

Private Types

typedef Geometry< MODEL > Geometry_
 
typedef State< MODEL > State_
 
typedef Increment< MODEL > Increment_
 
typedef std::shared_ptr< PostBase< State_ > > PostPtr_
 
typedef std::shared_ptr< PostBaseTLAD< MODEL > > PostPtrTLAD_
 

Detailed Description

template<typename MODEL, typename OBS>
class oops::CostTermBase< MODEL, OBS >

Base Class for Cost Function Terms.

Abstract base class for the terms of the cost function.

Definition at line 37 of file CostTermBase.h.

Member Typedef Documentation

◆ Geometry_

template<typename MODEL , typename OBS >
typedef Geometry<MODEL> oops::CostTermBase< MODEL, OBS >::Geometry_
private

Definition at line 38 of file CostTermBase.h.

◆ Increment_

template<typename MODEL , typename OBS >
typedef Increment<MODEL> oops::CostTermBase< MODEL, OBS >::Increment_
private

Definition at line 40 of file CostTermBase.h.

◆ PostPtr_

template<typename MODEL , typename OBS >
typedef std::shared_ptr<PostBase<State_> > oops::CostTermBase< MODEL, OBS >::PostPtr_
private

Definition at line 41 of file CostTermBase.h.

◆ PostPtrTLAD_

template<typename MODEL , typename OBS >
typedef std::shared_ptr<PostBaseTLAD<MODEL> > oops::CostTermBase< MODEL, OBS >::PostPtrTLAD_
private

Definition at line 42 of file CostTermBase.h.

◆ State_

template<typename MODEL , typename OBS >
typedef State<MODEL> oops::CostTermBase< MODEL, OBS >::State_
private

Definition at line 39 of file CostTermBase.h.

Constructor & Destructor Documentation

◆ ~CostTermBase()

template<typename MODEL , typename OBS >
virtual oops::CostTermBase< MODEL, OBS >::~CostTermBase ( )
inlinevirtual

Destructor.

Definition at line 46 of file CostTermBase.h.

Member Function Documentation

◆ finalize()

template<typename MODEL , typename OBS >
virtual double oops::CostTermBase< MODEL, OBS >::finalize ( )
pure virtual

Finalize computation after nonlinear model integration.

Implemented in oops::CostJo< MODEL, OBS >, and oops::CostJcDFI< MODEL, OBS >.

◆ finalizeTraj()

template<typename MODEL , typename OBS >
virtual void oops::CostTermBase< MODEL, OBS >::finalizeTraj ( )
pure virtual

◆ initialize()

template<typename MODEL , typename OBS >
virtual PostPtr_ oops::CostTermBase< MODEL, OBS >::initialize ( const ControlVariable< MODEL, OBS > &  ,
const eckit::Configuration &   
)
pure virtual

Initialize before nonlinear model integration.

Implemented in oops::CostJo< MODEL, OBS >, and oops::CostJcDFI< MODEL, OBS >.

◆ initializeTraj()

template<typename MODEL , typename OBS >
virtual PostPtrTLAD_ oops::CostTermBase< MODEL, OBS >::initializeTraj ( const ControlVariable< MODEL, OBS > &  ,
const Geometry_ ,
const eckit::Configuration &   
)
pure virtual

◆ multiplyCoInv()

template<typename MODEL , typename OBS >
virtual std::unique_ptr<GeneralizedDepartures> oops::CostTermBase< MODEL, OBS >::multiplyCoInv ( const GeneralizedDepartures ) const
pure virtual

Implemented in oops::CostJo< MODEL, OBS >, and oops::CostJcDFI< MODEL, OBS >.

Here is the caller graph for this function:

◆ multiplyCovar()

template<typename MODEL , typename OBS >
virtual std::unique_ptr<GeneralizedDepartures> oops::CostTermBase< MODEL, OBS >::multiplyCovar ( const GeneralizedDepartures ) const
pure virtual

Multiply by covariance (or weight) matrix and its inverse.

Implemented in oops::CostJo< MODEL, OBS >, and oops::CostJcDFI< MODEL, OBS >.

◆ newDualVector()

template<typename MODEL , typename OBS >
virtual std::unique_ptr<GeneralizedDepartures> oops::CostTermBase< MODEL, OBS >::newDualVector ( ) const
pure virtual

Provide new dual space vector (for example a Departure for Jo).

Implemented in oops::CostJo< MODEL, OBS >, and oops::CostJcDFI< MODEL, OBS >.

◆ newGradientFG()

template<typename MODEL , typename OBS >
virtual std::unique_ptr<GeneralizedDepartures> oops::CostTermBase< MODEL, OBS >::newGradientFG ( ) const
pure virtual

Gradient at first guess.

Implemented in oops::CostJo< MODEL, OBS >, and oops::CostJcDFI< MODEL, OBS >.

◆ resetLinearization()

template<typename MODEL , typename OBS >
virtual void oops::CostTermBase< MODEL, OBS >::resetLinearization ( )
pure virtual

Reset trajectory.

Implemented in oops::CostJo< MODEL, OBS >, and oops::CostJcDFI< MODEL, OBS >.

◆ setupAD()

template<typename MODEL , typename OBS >
virtual PostPtrTLAD_ oops::CostTermBase< MODEL, OBS >::setupAD ( std::shared_ptr< const GeneralizedDepartures ,
ControlIncrement< MODEL, OBS > &   
) const
pure virtual

Initialize before starting the AD run.

Implemented in oops::CostJo< MODEL, OBS >, and oops::CostJcDFI< MODEL, OBS >.

Here is the caller graph for this function:

◆ setupTL()

template<typename MODEL , typename OBS >
virtual PostPtrTLAD_ oops::CostTermBase< MODEL, OBS >::setupTL ( const ControlIncrement< MODEL, OBS > &  ) const
pure virtual

Initialize before starting the TL run.

Implemented in oops::CostJo< MODEL, OBS >, and oops::CostJcDFI< MODEL, OBS >.

Here is the caller graph for this function:

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