Go to the documentation of this file.
11 #ifndef OOPS_ASSIMILATION_SADDLEPOINTPRECONDMATRIX_H_
12 #define OOPS_ASSIMILATION_SADDLEPOINTPRECONDMATRIX_H_
14 #include <boost/noncopyable.hpp>
32 template<
typename MODEL,
typename OBS>
53 template<
typename MODEL,
typename OBS>
61 template<
typename MODEL,
typename OBS>
72 j_.jb().multiplyB(z.
lambda().
dx(), l);
76 Lhatinv(l, z.
dx(), norder);
78 for (
unsigned jj = 0; jj < j_.nterms(); ++jj) {
85 template<
typename MODEL,
typename OBS>
87 const int norder)
const {
92 for (
int jj = 0; jj < norder; ++jj) {
93 j_.runTLM(ww, idmodel_);
101 template<
typename MODEL,
typename OBS>
103 const int norder)
const {
108 for (
int jj = 0; jj < norder; ++jj) {
110 j_.runADJ(ww, idmodel_);
118 #endif // OOPS_ASSIMILATION_SADDLEPOINTPRECONDMATRIX_H_
CostFctWeak< MODEL, OBS > CostFctWeak_
The namespace for the main oops code.
const Multipliers_ & lambda() const
Accessor method to get the lambda_ component.
The preconditioner for the saddle-point minimizer.
void append(std::unique_ptr< GeneralizedDepartures > &&)
const CtrlInc_ & dx() const
Accessor method to get the dx_ component.
void Lhatinvt(const CtrlInc_ &, CtrlInc_ &, const int) const
void Lhatinv(const CtrlInc_ &, CtrlInc_ &, const int) const
SaddlePointPrecondMatrix(const CostFct_ &j)
void multiply(const SPVector_ &, SPVector_ &) const
ControlIncrement< MODEL, OBS > CtrlInc_
Control vector for the saddle point formulation.
CostFunction< MODEL, OBS > CostFct_
SaddlePointVector< MODEL, OBS > SPVector_
std::shared_ptr< const GeneralizedDepartures > getv(const unsigned) const
Weak Constraint 4D-Var Cost Function.