11 #ifndef OOPS_ASSIMILATION_PCGMINIMIZER_H_ 12 #define OOPS_ASSIMILATION_PCGMINIMIZER_H_ 39 const std::string
classname()
const override {
return "PCGMinimizer";}
46 const int,
const double)
override;
51 template<
typename MODEL>
54 const int ninner,
const double gnreduc) {
56 double reduc =
PCG(dx, rhs, hessian, B, ninner, gnreduc);
64 #endif // OOPS_ASSIMILATION_PCGMINIMIZER_H_ CostFunction< MODEL > CostFct_
Preconditioned Conjugate Gradients solver.
PCGMinimizer(const eckit::Configuration &, const CostFct_ &J)
HessianMatrix< MODEL > Hessian_
ControlIncrement< MODEL > CtrlInc_
The namespace for the main oops code.
double solve(CtrlInc_ &, const CtrlInc_ &, const Hessian_ &, const Bmat_ &, const int, const double) override
const std::string classname() const override
double PCG(VECTOR &x, const VECTOR &b, const AMATRIX &A, const PMATRIX &precond, const int maxiter, const double tolerance)