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

LBGMRESR Minimizer. More...

#include <LBGMRESRMinimizer.h>

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

Public Member Functions

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

Private Types

typedef LBHessianMatrix< MODEL > LBHessianMatrix_
 
typedef CostFunction< MODEL > CostFct_
 
typedef ControlIncrement< MODEL > CtrlInc_
 

Private Member Functions

void solve (CtrlInc_ &, CtrlInc_ &, const LBHessianMatrix_ &, const int, const double) override
 

Detailed Description

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

LBGMRESR Minimizer.

Left B Preconditioned GMRESR solver.

On entry:

  • dx = starting point, \( dx_{0} \).
  • rr = \( (sum dx^{b}_{i} + ) B H^T R^{-1} d \)

    Iteration will stop if the maximum iteration limit "maxiter" is reached or if the residual norm reduces by a factor of "tolerance".

    Each matrix must implement a method:

    • void multiply(const VECTOR&, VECTOR&) const

    which applies the matrix to the first argument, and returns the matrix-vector product in the second. (Note: the const is optional, but recommended.)

Definition at line 53 of file LBGMRESRMinimizer.h.

Member Typedef Documentation

◆ CostFct_

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

Definition at line 55 of file LBGMRESRMinimizer.h.

◆ CtrlInc_

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

Definition at line 56 of file LBGMRESRMinimizer.h.

◆ LBHessianMatrix_

template<typename MODEL >
typedef LBHessianMatrix<MODEL> oops::LBGMRESRMinimizer< MODEL >::LBHessianMatrix_
private

Definition at line 54 of file LBGMRESRMinimizer.h.

Constructor & Destructor Documentation

◆ LBGMRESRMinimizer()

template<typename MODEL >
oops::LBGMRESRMinimizer< MODEL >::LBGMRESRMinimizer ( const eckit::Configuration &  conf,
const CostFct_ J 
)

Definition at line 71 of file LBGMRESRMinimizer.h.

◆ ~LBGMRESRMinimizer()

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

Definition at line 61 of file LBGMRESRMinimizer.h.

Member Function Documentation

◆ classname()

template<typename MODEL >
const std::string oops::LBGMRESRMinimizer< MODEL >::classname ( ) const
inlineoverridevirtual

Implements oops::LBMinimizer< MODEL >.

Definition at line 59 of file LBGMRESRMinimizer.h.

◆ solve()

template<typename MODEL >
void oops::LBGMRESRMinimizer< MODEL >::solve ( CtrlInc_ dx,
CtrlInc_ rr,
const LBHessianMatrix_ LBHessian,
const int  maxiter,
const double  tolerance 
)
overrideprivatevirtual

Implements oops::LBMinimizer< MODEL >.

Definition at line 79 of file LBGMRESRMinimizer.h.

Here is the call graph for this function:

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