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

Jb Cost Function. More...

#include <CostJb3D.h>

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

Public Member Functions

 CostJb3D (const eckit::Configuration &, const Geometry_ &, const Variables &, const util::Duration &, const State_ &)
 Construct \( J_b\). More...
 
virtual ~CostJb3D ()
 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 State< MODEL > State_
 
typedef State4D< MODEL > State4D_
 
typedef Increment4D< MODEL > Increment4D_
 
typedef ControlIncrement< MODEL > CtrlInc_
 
typedef Geometry< MODEL > Geometry_
 

Private Attributes

const State_xb_
 
boost::scoped_ptr< ModelSpaceCovarianceBase< MODEL > > B_
 
const util::Duration winLength_
 
const Variables controlvars_
 
boost::scoped_ptr< const Geometry_resol_
 
boost::scoped_ptr< const util::DateTime > time_
 
const eckit::LocalConfiguration conf_
 

Detailed Description

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

Jb Cost Function.

The CostJb3D encapsulates the Jb term of the cost function for a 3 dimensional background.

This class is not really necessary since it is only a special case of the more general CostJbJq weak constraint term with one sub-window. It is provided for readability.

Definition at line 48 of file CostJb3D.h.

Member Typedef Documentation

◆ CtrlInc_

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

Definition at line 53 of file CostJb3D.h.

◆ Geometry_

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

Definition at line 54 of file CostJb3D.h.

◆ Increment4D_

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

Definition at line 52 of file CostJb3D.h.

◆ Increment_

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

Definition at line 49 of file CostJb3D.h.

◆ State4D_

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

Definition at line 51 of file CostJb3D.h.

◆ State_

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

Definition at line 50 of file CostJb3D.h.

Constructor & Destructor Documentation

◆ CostJb3D()

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

Construct \( J_b\).

Definition at line 110 of file CostJb3D.h.

◆ ~CostJb3D()

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

Destructor.

Definition at line 62 of file CostJb3D.h.

Member Function Documentation

◆ addGradient()

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

Add Jb gradient.

Implements oops::CostJbState< MODEL >.

Definition at line 140 of file CostJb3D.h.

◆ Bminv()

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

Implements oops::CostJbState< MODEL >.

Definition at line 155 of file CostJb3D.h.

◆ Bmult()

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

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

Implements oops::CostJbState< MODEL >.

Definition at line 148 of file CostJb3D.h.

◆ computeIncrement()

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

Here is the call graph for this function:

◆ initializeJq()

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

Empty Jq observer.

Implements oops::CostJbState< MODEL >.

Definition at line 65 of file CostJb3D.h.

◆ initializeJqAD()

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

Empty AD Jq observer.

Implements oops::CostJbState< MODEL >.

Definition at line 81 of file CostJb3D.h.

◆ initializeJqTL()

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

Empty TL Jq observer.

Implements oops::CostJbState< MODEL >.

Definition at line 78 of file CostJb3D.h.

◆ initializeJqTLAD()

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

Implements oops::CostJbState< MODEL >.

Definition at line 66 of file CostJb3D.h.

◆ linearize()

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

Linearize before the linear computations.

Implements oops::CostJbState< MODEL >.

Definition at line 122 of file CostJb3D.h.

Here is the call graph for this function:

◆ newStateIncrement()

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

Implements oops::CostJbState< MODEL >.

Definition at line 172 of file CostJb3D.h.

◆ nstates()

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

Create new increment (set to 0).

Implements oops::CostJbState< MODEL >.

Definition at line 91 of file CostJb3D.h.

◆ randomize()

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

Randomize.

Implements oops::CostJbState< MODEL >.

Definition at line 164 of file CostJb3D.h.

Member Data Documentation

◆ B_

template<typename MODEL>
boost::scoped_ptr< ModelSpaceCovarianceBase<MODEL> > oops::CostJb3D< MODEL >::B_
private

Definition at line 96 of file CostJb3D.h.

◆ conf_

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

Definition at line 101 of file CostJb3D.h.

◆ controlvars_

template<typename MODEL>
const Variables oops::CostJb3D< MODEL >::controlvars_
private

Definition at line 98 of file CostJb3D.h.

◆ resol_

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

Definition at line 99 of file CostJb3D.h.

◆ time_

template<typename MODEL>
boost::scoped_ptr<const util::DateTime> oops::CostJb3D< MODEL >::time_
private

Definition at line 100 of file CostJb3D.h.

◆ winLength_

template<typename MODEL>
const util::Duration oops::CostJb3D< MODEL >::winLength_
private

Definition at line 97 of file CostJb3D.h.

◆ xb_

template<typename MODEL>
const State_& oops::CostJb3D< MODEL >::xb_
private

Definition at line 95 of file CostJb3D.h.


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