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

Jb + Jq Cost Function. More...

#include <CostJbJq.h>

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

Public Member Functions

 CostJbJq (const eckit::Configuration &, const Geometry_ &, const Variables &, const util::Duration &, const State4D_ &, const bool)
 Construct \( J_b\). More...
 
virtual ~CostJbJq ()
 Destructor. More...
 
JqTerm< MODEL > * initializeJq () const override
 Finalize \( J_q\) after the model run. More...
 
JqTermTLAD< MODEL > * initializeJqTLAD () const override
 
void computeIncrement (const State4D_ &, const State4D_ &, Increment4D_ &) const override
 Get increment from state (usually first guess). More...
 
void linearize (const State4D_ &, const Geometry_ &) override
 Linearize before the linear computations. More...
 
void addGradient (const Increment4D_ &, Increment4D_ &, Increment4D_ &) const override
 Add Jb gradient. More...
 
JqTermTLAD< MODEL > * initializeJqTL () const override
 Finalize \( J_q\) after the TL run. More...
 
JqTermTLAD< MODEL > * initializeJqAD (const Increment4D_ &) const override
 Initialize \( J_q\) forcing before the AD run. More...
 
void Bmult (const Increment4D_ &, Increment4D_ &) const override
 Multiply by \( B\) and \( B^{-1}\). More...
 
void Bminv (const Increment4D_ &, Increment4D_ &) const override
 
void randomize (Increment4D_ &) const override
 Randomize. More...
 
unsigned int nstates () const override
 Create new increment (set to 0). More...
 
Increment_newStateIncrement (const unsigned int) const override
 
- Public Member Functions inherited from oops::CostJbState< MODEL >
 CostJbState ()
 Constructor. More...
 
virtual ~CostJbState ()
 Destructor. More...
 

Private Types

typedef Increment< MODEL > Increment_
 
typedef State4D< MODEL > State4D_
 
typedef Increment4D< MODEL > Increment4D_
 
typedef ControlIncrement< MODEL > CtrlInc_
 
typedef Geometry< MODEL > Geometry_
 

Private Attributes

boost::ptr_vector< ModelSpaceCovarianceBase< MODEL > > B_
 
const State4D_xb_
 
const util::Duration subwin_
 
const bool forcing_
 
const Variables ctlvars_
 
boost::scoped_ptr< const Geometry_resol_
 
std::vector< util::DateTime > times_
 
const eckit::LocalConfiguration conf_
 

Detailed Description

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

Jb + Jq Cost Function.

CostJbJq encapsulates the generalized Jb term of the cost weak constraint 4D-Var function (ie Jb+Jq).

Definition at line 45 of file CostJbJq.h.

Member Typedef Documentation

◆ CtrlInc_

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

Definition at line 49 of file CostJbJq.h.

◆ Geometry_

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

Definition at line 50 of file CostJbJq.h.

◆ Increment4D_

template<typename MODEL>
typedef Increment4D<MODEL> oops::CostJbJq< MODEL >::Increment4D_
private

Definition at line 48 of file CostJbJq.h.

◆ Increment_

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

Definition at line 46 of file CostJbJq.h.

◆ State4D_

template<typename MODEL>
typedef State4D<MODEL> oops::CostJbJq< MODEL >::State4D_
private

Definition at line 47 of file CostJbJq.h.

Constructor & Destructor Documentation

◆ CostJbJq()

template<typename MODEL >
oops::CostJbJq< MODEL >::CostJbJq ( const eckit::Configuration &  config,
const Geometry_ resolouter,
const Variables ctlvars,
const util::Duration &  len,
const State4D_ xb,
const bool  forcing 
)

Construct \( J_b\).

Definition at line 107 of file CostJbJq.h.

◆ ~CostJbJq()

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

Destructor.

Definition at line 58 of file CostJbJq.h.

Member Function Documentation

◆ addGradient()

template<typename MODEL >
void oops::CostJbJq< MODEL >::addGradient ( const Increment4D_ dxFG,
Increment4D_ grad,
Increment4D_ gradJb 
) const
overridevirtual

Add Jb gradient.

Implements oops::CostJbState< MODEL >.

Definition at line 147 of file CostJbJq.h.

◆ Bminv()

template<typename MODEL >
void oops::CostJbJq< MODEL >::Bminv ( const Increment4D_ dxin,
Increment4D_ dxout 
) const
overridevirtual

Implements oops::CostJbState< MODEL >.

Definition at line 224 of file CostJbJq.h.

◆ Bmult()

template<typename MODEL >
void oops::CostJbJq< MODEL >::Bmult ( const Increment4D_ dxin,
Increment4D_ dxout 
) const
overridevirtual

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

Implements oops::CostJbState< MODEL >.

Definition at line 198 of file CostJbJq.h.

◆ computeIncrement()

template<typename MODEL >
void oops::CostJbJq< MODEL >::computeIncrement ( const State4D_ xb,
const State4D_ fg,
Increment4D_ dx 
) const
overridevirtual

Get increment from state (usually first guess).

Implements oops::CostJbState< MODEL >.

Definition at line 137 of file CostJbJq.h.

Here is the call graph for this function:

◆ initializeJq()

template<typename MODEL >
JqTerm< MODEL > * oops::CostJbJq< MODEL >::initializeJq ( ) const
overridevirtual

Finalize \( J_q\) after the model run.

Implements oops::CostJbState< MODEL >.

Definition at line 163 of file CostJbJq.h.

◆ initializeJqAD()

template<typename MODEL >
JqTermTLAD< MODEL > * oops::CostJbJq< MODEL >::initializeJqAD ( const Increment4D_ dx) const
overridevirtual

Initialize \( J_q\) forcing before the AD run.

Implements oops::CostJbState< MODEL >.

Definition at line 186 of file CostJbJq.h.

Here is the call graph for this function:

◆ initializeJqTL()

template<typename MODEL >
JqTermTLAD< MODEL > * oops::CostJbJq< MODEL >::initializeJqTL ( ) const
overridevirtual

Finalize \( J_q\) after the TL run.

Implements oops::CostJbState< MODEL >.

Definition at line 177 of file CostJbJq.h.

◆ initializeJqTLAD()

template<typename MODEL >
JqTermTLAD< MODEL > * oops::CostJbJq< MODEL >::initializeJqTLAD ( ) const
overridevirtual

Implements oops::CostJbState< MODEL >.

Definition at line 170 of file CostJbJq.h.

◆ linearize()

template<typename MODEL >
void oops::CostJbJq< MODEL >::linearize ( const State4D_ fg,
const Geometry_ lowres 
)
overridevirtual

Linearize before the linear computations.

Implements oops::CostJbState< MODEL >.

Definition at line 119 of file CostJbJq.h.

Here is the call graph for this function:

◆ newStateIncrement()

template<typename MODEL >
Increment< MODEL > * oops::CostJbJq< MODEL >::newStateIncrement ( const unsigned int  isub) const
overridevirtual

Implements oops::CostJbState< MODEL >.

Definition at line 244 of file CostJbJq.h.

◆ nstates()

template<typename MODEL>
unsigned int oops::CostJbJq< MODEL >::nstates ( ) const
inlineoverridevirtual

Create new increment (set to 0).

Implements oops::CostJbState< MODEL >.

Definition at line 87 of file CostJbJq.h.

◆ randomize()

template<typename MODEL >
void oops::CostJbJq< MODEL >::randomize ( Increment4D_ dx) const
overridevirtual

Randomize.

Implements oops::CostJbState< MODEL >.

Definition at line 215 of file CostJbJq.h.

Member Data Documentation

◆ B_

template<typename MODEL>
boost::ptr_vector< ModelSpaceCovarianceBase<MODEL> > oops::CostJbJq< MODEL >::B_
private

Definition at line 91 of file CostJbJq.h.

◆ conf_

template<typename MODEL>
const eckit::LocalConfiguration oops::CostJbJq< MODEL >::conf_
private

Definition at line 98 of file CostJbJq.h.

◆ ctlvars_

template<typename MODEL>
const Variables oops::CostJbJq< MODEL >::ctlvars_
private

Definition at line 95 of file CostJbJq.h.

◆ forcing_

template<typename MODEL>
const bool oops::CostJbJq< MODEL >::forcing_
private

Definition at line 94 of file CostJbJq.h.

◆ resol_

template<typename MODEL>
boost::scoped_ptr<const Geometry_> oops::CostJbJq< MODEL >::resol_
private

Definition at line 96 of file CostJbJq.h.

◆ subwin_

template<typename MODEL>
const util::Duration oops::CostJbJq< MODEL >::subwin_
private

Definition at line 93 of file CostJbJq.h.

◆ times_

template<typename MODEL>
std::vector<util::DateTime> oops::CostJbJq< MODEL >::times_
private

Definition at line 97 of file CostJbJq.h.

◆ xb_

template<typename MODEL>
const State4D_& oops::CostJbJq< MODEL >::xb_
private

Definition at line 92 of file CostJbJq.h.


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