FV3 Bundle
oops::CostJbState< MODEL > Class Template Referenceabstract

Jb Cost Function Base Class. More...

#include <CostJbState.h>

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

Public Member Functions

 CostJbState ()
 Constructor. More...
 
virtual ~CostJbState ()
 Destructor. More...
 
virtual JqTerm< MODEL > * initializeJq () const =0
 Initialize Jq computations if needed. More...
 
virtual JqTermTLAD< MODEL > * initializeJqTLAD () const =0
 
virtual void computeIncrement (const State4D_ &, const State4D_ &, Increment4D_ &) const =0
 Get increment from state (usually first guess). More...
 
virtual void linearize (const State4D_ &, const Geometry_ &)=0
 Linearize before the linear computations. More...
 
virtual void addGradient (const Increment4D_ &, Increment4D_ &, Increment4D_ &) const =0
 Add Jb gradient. More...
 
virtual JqTermTLAD< MODEL > * initializeJqTL () const =0
 Finalize \( J_b\) after the TL run. More...
 
virtual JqTermTLAD< MODEL > * initializeJqAD (const Increment4D_ &) const =0
 Initialize \( J_b\) before the AD run. More...
 
virtual void Bmult (const Increment4D_ &, Increment4D_ &) const =0
 Multiply by \( B\) and \( B^{-1}\). More...
 
virtual void Bminv (const Increment4D_ &, Increment4D_ &) const =0
 
virtual void randomize (Increment4D_ &) const =0
 Randomize. More...
 
virtual unsigned int nstates () const =0
 Create new increment (set to 0). More...
 
virtual Increment_newStateIncrement (const unsigned int) const =0
 

Private Types

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

Detailed Description

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

Jb Cost Function Base Class.

The CostJbState is the base class for the Jb term corresponding to the state part (3D or 4D) of the control variable.

Definition at line 41 of file CostJbState.h.

Member Typedef Documentation

◆ CtrlInc_

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

Definition at line 43 of file CostJbState.h.

◆ Geometry_

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

Definition at line 46 of file CostJbState.h.

◆ Increment4D_

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

Definition at line 45 of file CostJbState.h.

◆ Increment_

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

Definition at line 42 of file CostJbState.h.

◆ State4D_

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

Definition at line 44 of file CostJbState.h.

Constructor & Destructor Documentation

◆ CostJbState()

template<typename MODEL >
oops::CostJbState< MODEL >::CostJbState ( )
inline

Constructor.

Definition at line 50 of file CostJbState.h.

◆ ~CostJbState()

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

Destructor.

Definition at line 53 of file CostJbState.h.

Member Function Documentation

◆ addGradient()

template<typename MODEL >
virtual void oops::CostJbState< MODEL >::addGradient ( const Increment4D_ ,
Increment4D_ ,
Increment4D_  
) const
pure virtual

◆ Bminv()

template<typename MODEL >
virtual void oops::CostJbState< MODEL >::Bminv ( const Increment4D_ ,
Increment4D_  
) const
pure virtual

◆ Bmult()

template<typename MODEL >
virtual void oops::CostJbState< MODEL >::Bmult ( const Increment4D_ ,
Increment4D_  
) const
pure virtual

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

Implemented in oops::CostJb3D< MODEL >, oops::CostJb4D< MODEL >, and oops::CostJbJq< MODEL >.

◆ computeIncrement()

template<typename MODEL >
virtual void oops::CostJbState< MODEL >::computeIncrement ( const State4D_ ,
const State4D_ ,
Increment4D_  
) const
pure virtual

Get increment from state (usually first guess).

Implemented in oops::CostJb3D< MODEL >, oops::CostJb4D< MODEL >, and oops::CostJbJq< MODEL >.

◆ initializeJq()

template<typename MODEL >
virtual JqTerm<MODEL>* oops::CostJbState< MODEL >::initializeJq ( ) const
pure virtual

Initialize Jq computations if needed.

Implemented in oops::CostJb3D< MODEL >, oops::CostJb4D< MODEL >, and oops::CostJbJq< MODEL >.

◆ initializeJqAD()

template<typename MODEL >
virtual JqTermTLAD<MODEL>* oops::CostJbState< MODEL >::initializeJqAD ( const Increment4D_ ) const
pure virtual

Initialize \( J_b\) before the AD run.

Implemented in oops::CostJb3D< MODEL >, oops::CostJb4D< MODEL >, and oops::CostJbJq< MODEL >.

◆ initializeJqTL()

template<typename MODEL >
virtual JqTermTLAD<MODEL>* oops::CostJbState< MODEL >::initializeJqTL ( ) const
pure virtual

Finalize \( J_b\) after the TL run.

Implemented in oops::CostJb3D< MODEL >, oops::CostJb4D< MODEL >, and oops::CostJbJq< MODEL >.

◆ initializeJqTLAD()

template<typename MODEL >
virtual JqTermTLAD<MODEL>* oops::CostJbState< MODEL >::initializeJqTLAD ( ) const
pure virtual

◆ linearize()

template<typename MODEL >
virtual void oops::CostJbState< MODEL >::linearize ( const State4D_ ,
const Geometry_  
)
pure virtual

Linearize before the linear computations.

Implemented in oops::CostJb3D< MODEL >, oops::CostJb4D< MODEL >, and oops::CostJbJq< MODEL >.

◆ newStateIncrement()

template<typename MODEL >
virtual Increment_* oops::CostJbState< MODEL >::newStateIncrement ( const unsigned  int) const
pure virtual

Implemented in oops::CostJb3D< MODEL >, oops::CostJb4D< MODEL >, and oops::CostJbJq< MODEL >.

Here is the caller graph for this function:

◆ nstates()

template<typename MODEL >
virtual unsigned int oops::CostJbState< MODEL >::nstates ( ) const
pure virtual

Create new increment (set to 0).

Implemented in oops::CostJb3D< MODEL >, oops::CostJb4D< MODEL >, and oops::CostJbJq< MODEL >.

◆ randomize()

template<typename MODEL >
virtual void oops::CostJbState< MODEL >::randomize ( Increment4D_ ) const
pure virtual

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