11 #ifndef OOPS_ASSIMILATION_PLANCZOSMINIMIZER_H_ 12 #define OOPS_ASSIMILATION_PLANCZOSMINIMIZER_H_ 39 const std::string
classname()
const override {
return "PLanczosMinimizer";}
47 const int,
const double)
override;
52 template<
typename MODEL>
55 const int ninner,
const double gnreduc) {
57 double reduc =
PLanczos(dx, rhs, hessian, B, ninner, gnreduc);
65 #endif // OOPS_ASSIMILATION_PLANCZOSMINIMIZER_H_
HessianMatrix< MODEL > Hessian_
const std::string classname() const override
ControlIncrement< MODEL > CtrlInc_
double PLanczos(VECTOR &xx, const VECTOR &bb, const AMATRIX &A, const PMATRIX &precond, const int maxiter, const double tolerance)
double solve(CtrlInc_ &, const CtrlInc_ &, const Hessian_ &, const Bmat_ &, const int, const double) override
The namespace for the main oops code.
CostFunction< MODEL > CostFct_
Preconditioned Lanczos solver.
PLanczosMinimizer(const eckit::Configuration &, const CostFct_ &J)