11 #ifndef OOPS_ASSIMILATION_LBGMRESRMINIMIZER_H_ 12 #define OOPS_ASSIMILATION_LBGMRESRMINIMIZER_H_ 18 #include "eckit/config/Configuration.h" 26 #include "oops/util/dot_product.h" 27 #include "oops/util/formats.h" 28 #include "oops/util/Logger.h" 59 const std::string
classname()
const override {
return "LBGMRESRMinimizer";}
65 const int,
const double)
override;
70 template<
typename MODEL>
78 template<
typename MODEL>
81 const int maxiter,
const double tolerance) {
91 #endif // OOPS_ASSIMILATION_LBGMRESRMINIMIZER_H_ double GMRESR(VECTOR &xx, const VECTOR &bb, const AMATRIX &A, const PMATRIX &precond, const int maxiter, const double tolerance)
LB (Left B-preconditioned) Minimizers.
LBGMRESRMinimizer(const eckit::Configuration &, const CostFct_ &)
CostFunction< MODEL > CostFct_
void solve(CtrlInc_ &, CtrlInc_ &, const LBHessianMatrix_ &, const int, const double) override
The namespace for the main oops code.
const std::string classname() const override
real(fp), parameter, public tolerance
ControlIncrement< MODEL > CtrlInc_
LBHessianMatrix< MODEL > LBHessianMatrix_
void zero()
Linear algebra operators.