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