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

DR (Derber and Rosati) Minimizers. More...

#include <DRMinimizer.h>

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

Public Member Functions

 DRMinimizer (const CostFct_ &J)
 
 ~DRMinimizer ()
 
const std::string classname () const override=0
 
- Public Member Functions inherited from oops::Minimizer< MODEL >
 Minimizer (const CostFct_ &J)
 
virtual ~Minimizer ()
 
ControlIncrement< MODEL > * minimize (const eckit::Configuration &)
 

Private Types

typedef BMatrix< MODEL > Bmat_
 
typedef CostFunction< MODEL > CostFct_
 
typedef ControlIncrement< MODEL > CtrlInc_
 
typedef HtRinvHMatrix< MODEL > HtRinvH_
 
typedef Minimizer< MODEL > Minimizer_
 

Private Member Functions

CtrlInc_doMinimize (const eckit::Configuration &) override
 
virtual double solve (CtrlInc_ &, CtrlInc_ &, CtrlInc_ &, const Bmat_ &, const HtRinvH_ &, const double, const double, const int, const double)=0
 

Private Attributes

const CostFct_J_
 
boost::scoped_ptr< CtrlInc_gradJb_
 
std::vector< CtrlInc_dxh_
 
double costJ0Jb_
 

Detailed Description

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

DR (Derber and Rosati) Minimizers.

DRMinimizer is the base class for all minimizers that use \( B\) to precondition the variational minimisation problem and use the auxiliary variable \( \hat{x}=B^{-1}x\) and to update it in parallel to \( x\) based on Derber and Rosati, 1989, J. Phys. Oceanog. 1333-1347. \( J_b\) is then computed as \( x^T\hat{x}\) eliminating the need for \( B^{-1}\) or \( B^{1/2}\).

Definition at line 44 of file DRMinimizer.h.

Member Typedef Documentation

◆ Bmat_

template<typename MODEL >
typedef BMatrix<MODEL> oops::DRMinimizer< MODEL >::Bmat_
private

Definition at line 45 of file DRMinimizer.h.

◆ CostFct_

template<typename MODEL >
typedef CostFunction<MODEL> oops::DRMinimizer< MODEL >::CostFct_
private

Definition at line 46 of file DRMinimizer.h.

◆ CtrlInc_

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

Definition at line 47 of file DRMinimizer.h.

◆ HtRinvH_

template<typename MODEL >
typedef HtRinvHMatrix<MODEL> oops::DRMinimizer< MODEL >::HtRinvH_
private

Definition at line 48 of file DRMinimizer.h.

◆ Minimizer_

template<typename MODEL >
typedef Minimizer<MODEL> oops::DRMinimizer< MODEL >::Minimizer_
private

Definition at line 49 of file DRMinimizer.h.

Constructor & Destructor Documentation

◆ DRMinimizer()

template<typename MODEL >
oops::DRMinimizer< MODEL >::DRMinimizer ( const CostFct_ J)
inlineexplicit

Definition at line 52 of file DRMinimizer.h.

◆ ~DRMinimizer()

template<typename MODEL >
oops::DRMinimizer< MODEL >::~DRMinimizer ( )
inline

Definition at line 53 of file DRMinimizer.h.

Member Function Documentation

◆ classname()

template<typename MODEL >
const std::string oops::DRMinimizer< MODEL >::classname ( ) const
overridepure virtual

◆ doMinimize()

template<typename MODEL >
ControlIncrement< MODEL > * oops::DRMinimizer< MODEL >::doMinimize ( const eckit::Configuration &  config)
overrideprivatevirtual

Implements oops::Minimizer< MODEL >.

Definition at line 72 of file DRMinimizer.h.

Here is the call graph for this function:

◆ solve()

template<typename MODEL >
virtual double oops::DRMinimizer< MODEL >::solve ( CtrlInc_ ,
CtrlInc_ ,
CtrlInc_ ,
const Bmat_ ,
const HtRinvH_ ,
const double  ,
const double  ,
const int  ,
const double   
)
privatepure virtual

Member Data Documentation

◆ costJ0Jb_

template<typename MODEL >
double oops::DRMinimizer< MODEL >::costJ0Jb_
private

Definition at line 66 of file DRMinimizer.h.

◆ dxh_

template<typename MODEL >
std::vector<CtrlInc_> oops::DRMinimizer< MODEL >::dxh_
private

Definition at line 65 of file DRMinimizer.h.

◆ gradJb_

template<typename MODEL >
boost::scoped_ptr<CtrlInc_> oops::DRMinimizer< MODEL >::gradJb_
private

Definition at line 64 of file DRMinimizer.h.

◆ J_

template<typename MODEL >
const CostFct_& oops::DRMinimizer< MODEL >::J_
private

Definition at line 63 of file DRMinimizer.h.


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