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

4D Jb Cost Function More...

#include <CostJb4D.h>

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

Public Member Functions

 CostJb4D (const eckit::Configuration &, const Geometry_ &, const Variables &, const util::Duration &, const State4D_ &)
 Construct \( J_b\). More...
 
virtual ~CostJb4D ()
 Destructor. More...
 
JqTerm< MODEL > * initializeJq () const override
 Empty Jq observer. 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
 Empty TL Jq observer. More...
 
JqTermTLAD< MODEL > * initializeJqAD (const Increment4D_ &) const override
 Empty AD Jq observer. 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

const State4D_xb_
 
boost::ptr_vector< ModelSpaceCovarianceBase< MODEL > > B_
 
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::CostJb4D< MODEL >

4D Jb Cost Function

CostJb4D encapsulates the generalized four dimensional Jb term of the 4D-Ens-Var cost function.

Definition at line 45 of file CostJb4D.h.

Member Typedef Documentation

◆ CtrlInc_

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

Definition at line 49 of file CostJb4D.h.

◆ Geometry_

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

Definition at line 50 of file CostJb4D.h.

◆ Increment4D_

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

Definition at line 48 of file CostJb4D.h.

◆ Increment_

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

Definition at line 46 of file CostJb4D.h.

◆ State4D_

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

Definition at line 47 of file CostJb4D.h.

Constructor & Destructor Documentation

◆ CostJb4D()

template<typename MODEL >
oops::CostJb4D< MODEL >::CostJb4D ( const eckit::Configuration &  config,
const Geometry_ ,
const Variables ctlvars,
const util::Duration &  ,
const State4D_ xb 
)

Construct \( J_b\).

Definition at line 105 of file CostJb4D.h.

◆ ~CostJb4D()

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

Destructor.

Definition at line 58 of file CostJb4D.h.

Member Function Documentation

◆ addGradient()

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

Add Jb gradient.

Implements oops::CostJbState< MODEL >.

Definition at line 141 of file CostJb4D.h.

◆ Bminv()

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

Implements oops::CostJbState< MODEL >.

Definition at line 168 of file CostJb4D.h.

◆ Bmult()

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

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

Implements oops::CostJbState< MODEL >.

Definition at line 149 of file CostJb4D.h.

Here is the call graph for this function:

◆ computeIncrement()

template<typename MODEL >
void oops::CostJb4D< 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 133 of file CostJb4D.h.

Here is the call graph for this function:

◆ initializeJq()

template<typename MODEL>
JqTerm<MODEL>* oops::CostJb4D< MODEL >::initializeJq ( ) const
inlineoverridevirtual

Empty Jq observer.

Implements oops::CostJbState< MODEL >.

Definition at line 61 of file CostJb4D.h.

◆ initializeJqAD()

template<typename MODEL>
JqTermTLAD<MODEL>* oops::CostJb4D< MODEL >::initializeJqAD ( const Increment4D_ ) const
inlineoverridevirtual

Empty AD Jq observer.

Implements oops::CostJbState< MODEL >.

Definition at line 77 of file CostJb4D.h.

◆ initializeJqTL()

template<typename MODEL>
JqTermTLAD<MODEL>* oops::CostJb4D< MODEL >::initializeJqTL ( ) const
inlineoverridevirtual

Empty TL Jq observer.

Implements oops::CostJbState< MODEL >.

Definition at line 74 of file CostJb4D.h.

◆ initializeJqTLAD()

template<typename MODEL>
JqTermTLAD<MODEL>* oops::CostJb4D< MODEL >::initializeJqTLAD ( ) const
inlineoverridevirtual

Implements oops::CostJbState< MODEL >.

Definition at line 62 of file CostJb4D.h.

◆ linearize()

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

Linearize before the linear computations.

Implements oops::CostJbState< MODEL >.

Definition at line 115 of file CostJb4D.h.

Here is the call graph for this function:

◆ newStateIncrement()

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

Implements oops::CostJbState< MODEL >.

Definition at line 189 of file CostJb4D.h.

◆ nstates()

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

Create new increment (set to 0).

Implements oops::CostJbState< MODEL >.

Definition at line 87 of file CostJb4D.h.

◆ randomize()

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

Randomize.

Implements oops::CostJbState< MODEL >.

Definition at line 179 of file CostJb4D.h.

Member Data Documentation

◆ B_

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

Definition at line 92 of file CostJb4D.h.

◆ conf_

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

Definition at line 96 of file CostJb4D.h.

◆ ctlvars_

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

Definition at line 93 of file CostJb4D.h.

◆ resol_

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

Definition at line 94 of file CostJb4D.h.

◆ times_

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

Definition at line 95 of file CostJb4D.h.

◆ xb_

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

Definition at line 91 of file CostJb4D.h.


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