FV3 Bundle
|
#include <RPLanczosMinimizer.h>
Public Member Functions | |
const std::string | classname () const override |
RPLanczosMinimizer (const eckit::Configuration &, const CostFct_ &J) | |
~RPLanczosMinimizer () | |
Public Member Functions inherited from oops::DualMinimizer< MODEL > | |
DualMinimizer (const CostFct_ &J) | |
~DualMinimizer () | |
Public Member Functions inherited from oops::Minimizer< MODEL > | |
Minimizer (const CostFct_ &J) | |
virtual | ~Minimizer () |
ControlIncrement< MODEL > * | minimize (const eckit::Configuration &) |
Private Types | |
typedef CostFunction< MODEL > | CostFct_ |
typedef DualVector< MODEL > | Dual_ |
typedef HBHtMatrix< MODEL > | HBHt_ |
typedef RinvMatrix< MODEL > | Rinv_ |
Private Member Functions | |
double | solve (Dual_ &, double &, Dual_ &, const HBHt_ &, const Rinv_ &, const int &, const double &, Dual_ &, const double &) override |
RLanczos Minimizer.
Augmented Restricted Lanczos method. It is the Lanczos version of RPCG.
This solver is based on the algorithm from Gurol, PhD Manuscript,
It solves the linear system \( (I + R^{-1}HBH^T) lambda = H^T R^{-1}d \) with \( HBH^T \) inner-product in the augmented observation space.
Note that the traditional \( B\)-preconditioning in model space corresponds to \(I\) for this algorithm.
A second-level preconditioner, \( G \), must be symmetric and positive definite with respect to \( HBH^T \) inner-product. Possible preconditioning is detailed in S. Gurol, PhD Manuscript, 2013.
On entry:
On exit, vv and vvp will contain the solution \( lambda = [vv; vp] \)
The return value is the achieved reduction in preconditioned residual norm.
Iteration will stop if the maximum iteration limit "maxiter" is reached or if the preconditioned residual norm reduces by a factor of "tolerance".
Definition at line 68 of file RPLanczosMinimizer.h.
|
private |
Definition at line 69 of file RPLanczosMinimizer.h.
|
private |
Definition at line 70 of file RPLanczosMinimizer.h.
|
private |
Definition at line 71 of file RPLanczosMinimizer.h.
|
private |
Definition at line 72 of file RPLanczosMinimizer.h.
|
inline |
Definition at line 76 of file RPLanczosMinimizer.h.
|
inline |
Definition at line 77 of file RPLanczosMinimizer.h.
|
inlineoverridevirtual |
Implements oops::DualMinimizer< MODEL >.
Definition at line 75 of file RPLanczosMinimizer.h.
|
overrideprivatevirtual |
Implements oops::DualMinimizer< MODEL >.
Definition at line 87 of file RPLanczosMinimizer.h.