OOPS
oops::CostJcDFI< MODEL, OBS > Class Template Reference

Jc DFI Cost Function. More...

#include <CostJcDFI.h>

Inheritance diagram for oops::CostJcDFI< MODEL, OBS >:
Collaboration diagram for oops::CostJcDFI< MODEL, OBS >:

Public Member Functions

 CostJcDFI (const eckit::Configuration &, const Geometry_ &, const util::DateTime &, const util::Duration &, const util::Duration &tstep=util::Duration(0))
 Construct \( J_c\). More...
 
virtual ~CostJcDFI ()
 Destructor. More...
 
std::shared_ptr< PostBase< State_ > > initialize (const CtrlVar_ &, const eckit::Configuration &) override
 Initialize before nonlinear model integration. More...
 
std::shared_ptr< PostBaseTLAD< MODEL > > initializeTraj (const CtrlVar_ &, const Geometry_ &, const eckit::Configuration &) override
 
double finalize () override
 Finalize computation after nonlinear model integration. More...
 
void finalizeTraj () override
 
std::shared_ptr< PostBaseTLAD_setupTL (const CtrlInc_ &) const override
 Initialize \( J_c\) before starting the TL run. More...
 
std::shared_ptr< PostBaseTLAD_setupAD (std::shared_ptr< const GeneralizedDepartures >, CtrlInc_ &) const override
 Initialize \( J_c\) before starting the AD run. More...
 
std::unique_ptr< GeneralizedDeparturesmultiplyCovar (const GeneralizedDepartures &) const override
 Multiply by \( C\) and \( C^{-1}\). More...
 
std::unique_ptr< GeneralizedDeparturesmultiplyCoInv (const GeneralizedDepartures &) const override
 
std::unique_ptr< GeneralizedDeparturesnewDualVector () const override
 Provide new increment. More...
 
std::unique_ptr< GeneralizedDeparturesnewGradientFG () const override
 Gradient of \( J_c\) at first guess. More...
 
void resetLinearization () override
 Reset trajectory. More...
 
- Public Member Functions inherited from oops::CostTermBase< MODEL, OBS >
virtual ~CostTermBase ()
 Destructor. More...
 

Private Types

typedef ControlIncrement< MODEL, OBS > CtrlInc_
 
typedef ControlVariable< MODEL, OBS > CtrlVar_
 
typedef Geometry< MODEL > Geometry_
 
typedef Increment< MODEL > Increment_
 
typedef PostBaseTLAD< MODEL > PostBaseTLAD_
 
typedef State< MODEL > State_
 

Private Attributes

util::DateTime vt_
 
util::Duration span_
 
double alpha_
 
std::unique_ptr< WeightingFctwfct_
 
std::unique_ptr< Increment_gradFG_
 
const Geometry_ resol_
 
const util::Duration tstep_
 
std::unique_ptr< Geometry_tlres_
 
util::Duration tlstep_
 
std::shared_ptr< WeightedDiff< MODEL, Increment_, State_ > > filter_
 
std::shared_ptr< WeightedDiffTLAD< MODEL > > ftlad_
 
Variables vars_
 

Detailed Description

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

Jc DFI Cost Function.

Digital filter based constraint term for the cost function.

Definition at line 44 of file CostJcDFI.h.

Member Typedef Documentation

◆ CtrlInc_

template<typename MODEL , typename OBS >
typedef ControlIncrement<MODEL, OBS> oops::CostJcDFI< MODEL, OBS >::CtrlInc_
private

Definition at line 45 of file CostJcDFI.h.

◆ CtrlVar_

template<typename MODEL , typename OBS >
typedef ControlVariable<MODEL, OBS> oops::CostJcDFI< MODEL, OBS >::CtrlVar_
private

Definition at line 46 of file CostJcDFI.h.

◆ Geometry_

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

Definition at line 47 of file CostJcDFI.h.

◆ Increment_

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

Definition at line 48 of file CostJcDFI.h.

◆ PostBaseTLAD_

template<typename MODEL , typename OBS >
typedef PostBaseTLAD<MODEL> oops::CostJcDFI< MODEL, OBS >::PostBaseTLAD_
private

Definition at line 49 of file CostJcDFI.h.

◆ State_

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

Definition at line 50 of file CostJcDFI.h.

Constructor & Destructor Documentation

◆ CostJcDFI()

template<typename MODEL , typename OBS >
oops::CostJcDFI< MODEL, OBS >::CostJcDFI ( const eckit::Configuration &  conf,
const Geometry_ resol,
const util::DateTime &  vt,
const util::Duration &  span,
const util::Duration &  tstep = util::Duration(0) 
)

Construct \( J_c\).

Definition at line 110 of file CostJcDFI.h.

◆ ~CostJcDFI()

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

Destructor.

Definition at line 58 of file CostJcDFI.h.

Member Function Documentation

◆ finalize()

template<typename MODEL , typename OBS >
double oops::CostJcDFI< MODEL, OBS >::finalize
overridevirtual

Finalize computation after nonlinear model integration.

Implements oops::CostTermBase< MODEL, OBS >.

Definition at line 137 of file CostJcDFI.h.

◆ finalizeTraj()

template<typename MODEL , typename OBS >
void oops::CostJcDFI< MODEL, OBS >::finalizeTraj
overridevirtual

Implements oops::CostTermBase< MODEL, OBS >.

Definition at line 160 of file CostJcDFI.h.

◆ initialize()

template<typename MODEL , typename OBS >
std::shared_ptr< PostBase< State< MODEL > > > oops::CostJcDFI< MODEL, OBS >::initialize ( const CtrlVar_ ,
const eckit::Configuration &   
)
overridevirtual

Initialize before nonlinear model integration.

Implements oops::CostTermBase< MODEL, OBS >.

Definition at line 128 of file CostJcDFI.h.

◆ initializeTraj()

template<typename MODEL , typename OBS >
std::shared_ptr< PostBaseTLAD< MODEL > > oops::CostJcDFI< MODEL, OBS >::initializeTraj ( const CtrlVar_ ,
const Geometry_ tlres,
const eckit::Configuration &  innerConf 
)
overridevirtual

Implements oops::CostTermBase< MODEL, OBS >.

Definition at line 149 of file CostJcDFI.h.

◆ multiplyCoInv()

template<typename MODEL , typename OBS >
std::unique_ptr< GeneralizedDepartures > oops::CostJcDFI< MODEL, OBS >::multiplyCoInv ( const GeneralizedDepartures dv1) const
overridevirtual

Implements oops::CostTermBase< MODEL, OBS >.

Definition at line 216 of file CostJcDFI.h.

◆ multiplyCovar()

template<typename MODEL , typename OBS >
std::unique_ptr< GeneralizedDepartures > oops::CostJcDFI< MODEL, OBS >::multiplyCovar ( const GeneralizedDepartures dv1) const
overridevirtual

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

Implements oops::CostTermBase< MODEL, OBS >.

Definition at line 204 of file CostJcDFI.h.

◆ newDualVector()

template<typename MODEL , typename OBS >
std::unique_ptr< GeneralizedDepartures > oops::CostJcDFI< MODEL, OBS >::newDualVector
overridevirtual

Provide new increment.

Implements oops::CostTermBase< MODEL, OBS >.

Definition at line 168 of file CostJcDFI.h.

◆ newGradientFG()

template<typename MODEL , typename OBS >
std::unique_ptr< GeneralizedDepartures > oops::CostJcDFI< MODEL, OBS >::newGradientFG
overridevirtual

Gradient of \( J_c\) at first guess.

Implements oops::CostTermBase< MODEL, OBS >.

Definition at line 176 of file CostJcDFI.h.

◆ resetLinearization()

template<typename MODEL , typename OBS >
void oops::CostJcDFI< MODEL, OBS >::resetLinearization
overridevirtual

Reset trajectory.

Implements oops::CostTermBase< MODEL, OBS >.

Definition at line 226 of file CostJcDFI.h.

◆ setupAD()

template<typename MODEL , typename OBS >
std::shared_ptr< PostBaseTLAD< MODEL > > oops::CostJcDFI< MODEL, OBS >::setupAD ( std::shared_ptr< const GeneralizedDepartures pv,
CtrlInc_  
) const
overridevirtual

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

Implements oops::CostTermBase< MODEL, OBS >.

Definition at line 193 of file CostJcDFI.h.

◆ setupTL()

template<typename MODEL , typename OBS >
std::shared_ptr< PostBaseTLAD< MODEL > > oops::CostJcDFI< MODEL, OBS >::setupTL ( const CtrlInc_ ) const
overridevirtual

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

Implements oops::CostTermBase< MODEL, OBS >.

Definition at line 184 of file CostJcDFI.h.

Member Data Documentation

◆ alpha_

template<typename MODEL , typename OBS >
double oops::CostJcDFI< MODEL, OBS >::alpha_
private

Definition at line 95 of file CostJcDFI.h.

◆ filter_

template<typename MODEL , typename OBS >
std::shared_ptr<WeightedDiff<MODEL, Increment_, State_> > oops::CostJcDFI< MODEL, OBS >::filter_
mutableprivate

Definition at line 102 of file CostJcDFI.h.

◆ ftlad_

template<typename MODEL , typename OBS >
std::shared_ptr<WeightedDiffTLAD<MODEL> > oops::CostJcDFI< MODEL, OBS >::ftlad_
mutableprivate

Definition at line 103 of file CostJcDFI.h.

◆ gradFG_

template<typename MODEL , typename OBS >
std::unique_ptr<Increment_> oops::CostJcDFI< MODEL, OBS >::gradFG_
private

Definition at line 97 of file CostJcDFI.h.

◆ resol_

template<typename MODEL , typename OBS >
const Geometry_ oops::CostJcDFI< MODEL, OBS >::resol_
private

Definition at line 98 of file CostJcDFI.h.

◆ span_

template<typename MODEL , typename OBS >
util::Duration oops::CostJcDFI< MODEL, OBS >::span_
private

Definition at line 94 of file CostJcDFI.h.

◆ tlres_

template<typename MODEL , typename OBS >
std::unique_ptr<Geometry_> oops::CostJcDFI< MODEL, OBS >::tlres_
private

Definition at line 100 of file CostJcDFI.h.

◆ tlstep_

template<typename MODEL , typename OBS >
util::Duration oops::CostJcDFI< MODEL, OBS >::tlstep_
private

Definition at line 101 of file CostJcDFI.h.

◆ tstep_

template<typename MODEL , typename OBS >
const util::Duration oops::CostJcDFI< MODEL, OBS >::tstep_
private

Definition at line 99 of file CostJcDFI.h.

◆ vars_

template<typename MODEL , typename OBS >
Variables oops::CostJcDFI< MODEL, OBS >::vars_
private

Definition at line 104 of file CostJcDFI.h.

◆ vt_

template<typename MODEL , typename OBS >
util::DateTime oops::CostJcDFI< MODEL, OBS >::vt_
private

Definition at line 93 of file CostJcDFI.h.

◆ wfct_

template<typename MODEL , typename OBS >
std::unique_ptr<WeightingFct> oops::CostJcDFI< MODEL, OBS >::wfct_
private

Definition at line 96 of file CostJcDFI.h.


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