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

Jo Cost Function. More...

#include <CostJo.h>

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

Public Member Functions

 CostJo (const eckit::Configuration &, const util::DateTime &, const util::DateTime &, const util::Duration &, const bool subwindows=false)
 Construct \( J_o\) from \( R\) and \( y_{obs}\). More...
 
virtual ~CostJo ()
 Destructor. More...
 
boost::shared_ptr< PostBase< State_ > > initialize (const CtrlVar_ &) const override
 Initialize \( J_o\) before starting the integration of the model. More...
 
boost::shared_ptr< PostBaseTLAD_initializeTraj (const CtrlVar_ &, const Geometry_ &, const eckit::Configuration &) override
 
double finalize (const eckit::Configuration &) const override
 Finalize \( J_o\) after the integration of the model. More...
 
void finalizeTraj () override
 
boost::shared_ptr< PostBaseTLAD_setupTL (const CtrlInc_ &) const override
 Initialize \( J_o\) before starting the TL run. More...
 
boost::shared_ptr< PostBaseTLAD_setupAD (boost::shared_ptr< const GeneralizedDepartures >, CtrlInc_ &) const override
 Initialize \( J_o\) before starting the AD run. More...
 
Departures_multiplyCovar (const GeneralizedDepartures &) const override
 Multiply by \( R\) and \( R^{-1}\). More...
 
Departures_multiplyCoInv (const GeneralizedDepartures &) const override
 
Departures_newDualVector () const override
 Provide new departure. More...
 
Departures_newGradientFG () const override
 Return gradient at first guess ie \( R^{-1} {\cal H}(x^t ) - y\). More...
 
void resetLinearization () override
 Reset obs operator trajectory. More...
 
double printJo (const Departures_ &, const Departures_ &) const
 Print Jo. More...
 
- Public Member Functions inherited from oops::CostTermBase< MODEL >
virtual ~CostTermBase ()
 Destructor. More...
 

Private Types

typedef ControlVariable< MODEL > CtrlVar_
 
typedef ControlIncrement< MODEL > CtrlInc_
 
typedef Departures< MODEL > Departures_
 
typedef Observations< MODEL > Observations_
 
typedef Geometry< MODEL > Geometry_
 
typedef State< MODEL > State_
 
typedef Increment< MODEL > Increment_
 
typedef ObsAuxIncrement< MODEL > ObsAuxIncr_
 
typedef ObsFilters< MODEL > ObsFilters_
 
typedef ObsOperators< MODEL > ObsOperator_
 
typedef ObsSpaces< MODEL > ObsSpace_
 
typedef ObserverTLAD< MODEL > ObserverTLAD_
 
typedef PostBaseTLAD< MODEL > PostBaseTLAD_
 
typedef LinearObsOperators< MODEL > LinearObsOperator_
 

Private Attributes

const ObsSpace_ obspace_
 
const ObsOperator_ hop_
 
Observations_ yobs_
 
ObsErrors< MODEL > R_
 
boost::scoped_ptr< Departures_gradFG_
 Gradient at first guess : \( R^{-1} (H(x_{fg})-y_{obs}) \). More...
 
boost::shared_ptr< Observer< MODEL, State_ > > pobs_
 Observer passed by \( J_o\) to the model during integration. More...
 
const util::Duration tslot_
 Time slot. More...
 
boost::shared_ptr< ObserverTLAD_pobstlad_
 Linearized observation operators. More...
 
const bool subwindows_
 

Detailed Description

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

Jo Cost Function.

The CostJo class encapsulates the Jo term of the cost function. The Observer to be called during the model integration is managed inside the CostJo class.

Definition at line 54 of file CostJo.h.

Member Typedef Documentation

◆ CtrlInc_

template<typename MODEL>
typedef ControlIncrement<MODEL> oops::CostJo< MODEL >::CtrlInc_
private

Definition at line 57 of file CostJo.h.

◆ CtrlVar_

template<typename MODEL>
typedef ControlVariable<MODEL> oops::CostJo< MODEL >::CtrlVar_
private

Definition at line 56 of file CostJo.h.

◆ Departures_

template<typename MODEL>
typedef Departures<MODEL> oops::CostJo< MODEL >::Departures_
private

Definition at line 58 of file CostJo.h.

◆ Geometry_

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

Definition at line 60 of file CostJo.h.

◆ Increment_

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

Definition at line 62 of file CostJo.h.

◆ LinearObsOperator_

template<typename MODEL>
typedef LinearObsOperators<MODEL> oops::CostJo< MODEL >::LinearObsOperator_
private

Definition at line 69 of file CostJo.h.

◆ ObsAuxIncr_

template<typename MODEL>
typedef ObsAuxIncrement<MODEL> oops::CostJo< MODEL >::ObsAuxIncr_
private

Definition at line 63 of file CostJo.h.

◆ Observations_

template<typename MODEL>
typedef Observations<MODEL> oops::CostJo< MODEL >::Observations_
private

Definition at line 59 of file CostJo.h.

◆ ObserverTLAD_

template<typename MODEL>
typedef ObserverTLAD<MODEL> oops::CostJo< MODEL >::ObserverTLAD_
private

Definition at line 67 of file CostJo.h.

◆ ObsFilters_

template<typename MODEL>
typedef ObsFilters<MODEL> oops::CostJo< MODEL >::ObsFilters_
private

Definition at line 64 of file CostJo.h.

◆ ObsOperator_

template<typename MODEL>
typedef ObsOperators<MODEL> oops::CostJo< MODEL >::ObsOperator_
private

Definition at line 65 of file CostJo.h.

◆ ObsSpace_

template<typename MODEL>
typedef ObsSpaces<MODEL> oops::CostJo< MODEL >::ObsSpace_
private

Definition at line 66 of file CostJo.h.

◆ PostBaseTLAD_

template<typename MODEL>
typedef PostBaseTLAD<MODEL> oops::CostJo< MODEL >::PostBaseTLAD_
private

Definition at line 68 of file CostJo.h.

◆ State_

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

Definition at line 61 of file CostJo.h.

Constructor & Destructor Documentation

◆ CostJo()

template<typename MODEL >
oops::CostJo< MODEL >::CostJo ( const eckit::Configuration &  joConf,
const util::DateTime &  winbgn,
const util::DateTime &  winend,
const util::Duration &  tslot,
const bool  subwindows = false 
)

Construct \( J_o\) from \( R\) and \( y_{obs}\).

Definition at line 134 of file CostJo.h.

Here is the call graph for this function:

◆ ~CostJo()

template<typename MODEL>
virtual oops::CostJo< MODEL >::~CostJo ( )
inlinevirtual

Destructor.

Definition at line 77 of file CostJo.h.

Member Function Documentation

◆ finalize()

template<typename MODEL >
double oops::CostJo< MODEL >::finalize ( const eckit::Configuration &  conf) const
overridevirtual

Finalize \( J_o\) after the integration of the model.

Implements oops::CostTermBase< MODEL >.

Definition at line 165 of file CostJo.h.

Here is the call graph for this function:

◆ finalizeTraj()

template<typename MODEL >
void oops::CostJo< MODEL >::finalizeTraj ( )
overridevirtual

Implements oops::CostTermBase< MODEL >.

Definition at line 204 of file CostJo.h.

Here is the call graph for this function:

◆ initialize()

template<typename MODEL >
boost::shared_ptr< PostBase< State< MODEL > > > oops::CostJo< MODEL >::initialize ( const CtrlVar_ xx) const
overridevirtual

Initialize \( J_o\) before starting the integration of the model.

Implements oops::CostTermBase< MODEL >.

Definition at line 152 of file CostJo.h.

Here is the call graph for this function:

◆ initializeTraj()

template<typename MODEL >
boost::shared_ptr< PostBaseTLAD< MODEL > > oops::CostJo< MODEL >::initializeTraj ( const CtrlVar_ xx,
const Geometry_ ,
const eckit::Configuration &  conf 
)
overridevirtual

Implements oops::CostTermBase< MODEL >.

Definition at line 191 of file CostJo.h.

Here is the call graph for this function:

◆ multiplyCoInv()

template<typename MODEL >
Departures< MODEL > * oops::CostJo< MODEL >::multiplyCoInv ( const GeneralizedDepartures v1) const
overridevirtual

Implements oops::CostTermBase< MODEL >.

Definition at line 254 of file CostJo.h.

◆ multiplyCovar()

template<typename MODEL >
Departures< MODEL > * oops::CostJo< MODEL >::multiplyCovar ( const GeneralizedDepartures v1) const
overridevirtual

Multiply by \( R\) and \( R^{-1}\).

Implements oops::CostTermBase< MODEL >.

Definition at line 245 of file CostJo.h.

◆ newDualVector()

template<typename MODEL >
Departures< MODEL > * oops::CostJo< MODEL >::newDualVector ( ) const
overridevirtual

Provide new departure.

Implements oops::CostTermBase< MODEL >.

Definition at line 263 of file CostJo.h.

Here is the call graph for this function:

◆ newGradientFG()

template<typename MODEL>
Departures_* oops::CostJo< MODEL >::newGradientFG ( ) const
inlineoverridevirtual

Return gradient at first guess ie \( R^{-1} {\cal H}(x^t ) - y\).

Implements oops::CostTermBase< MODEL >.

Definition at line 103 of file CostJo.h.

◆ printJo()

template<typename MODEL >
double oops::CostJo< MODEL >::printJo ( const Departures_ dy,
const Departures_ grad 
) const

Print Jo.

Definition at line 283 of file CostJo.h.

Here is the call graph for this function:

◆ resetLinearization()

template<typename MODEL >
void oops::CostJo< MODEL >::resetLinearization ( )
overridevirtual

Reset obs operator trajectory.

Implements oops::CostTermBase< MODEL >.

Definition at line 274 of file CostJo.h.

◆ setupAD()

template<typename MODEL >
boost::shared_ptr< PostBaseTLAD< MODEL > > oops::CostJo< MODEL >::setupAD ( boost::shared_ptr< const GeneralizedDepartures pv,
CtrlInc_ dx 
) const
overridevirtual

Initialize \( J_o\) before starting the AD run.

Implements oops::CostTermBase< MODEL >.

Definition at line 231 of file CostJo.h.

Here is the call graph for this function:

◆ setupTL()

template<typename MODEL >
boost::shared_ptr< PostBaseTLAD< MODEL > > oops::CostJo< MODEL >::setupTL ( const CtrlInc_ dx) const
overridevirtual

Initialize \( J_o\) before starting the TL run.

Implements oops::CostTermBase< MODEL >.

Definition at line 220 of file CostJo.h.

Here is the call graph for this function:

Member Data Documentation

◆ gradFG_

template<typename MODEL>
boost::scoped_ptr<Departures_> oops::CostJo< MODEL >::gradFG_
private

Gradient at first guess : \( R^{-1} (H(x_{fg})-y_{obs}) \).

Definition at line 118 of file CostJo.h.

◆ hop_

template<typename MODEL>
const ObsOperator_ oops::CostJo< MODEL >::hop_
private

Definition at line 113 of file CostJo.h.

◆ obspace_

template<typename MODEL>
const ObsSpace_ oops::CostJo< MODEL >::obspace_
private

Definition at line 112 of file CostJo.h.

◆ pobs_

template<typename MODEL>
boost::shared_ptr<Observer<MODEL, State_> > oops::CostJo< MODEL >::pobs_
mutableprivate

Observer passed by \( J_o\) to the model during integration.

Definition at line 121 of file CostJo.h.

◆ pobstlad_

template<typename MODEL>
boost::shared_ptr<ObserverTLAD_> oops::CostJo< MODEL >::pobstlad_
private

Linearized observation operators.

Definition at line 127 of file CostJo.h.

◆ R_

template<typename MODEL>
ObsErrors<MODEL> oops::CostJo< MODEL >::R_
private

Definition at line 115 of file CostJo.h.

◆ subwindows_

template<typename MODEL>
const bool oops::CostJo< MODEL >::subwindows_
private

Definition at line 128 of file CostJo.h.

◆ tslot_

template<typename MODEL>
const util::Duration oops::CostJo< MODEL >::tslot_
private

Time slot.

Definition at line 124 of file CostJo.h.

◆ yobs_

template<typename MODEL>
Observations_ oops::CostJo< MODEL >::yobs_
private

Definition at line 114 of file CostJo.h.


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