|
OOPS
|
The preconditioner for the saddle-point minimizer. More...
#include <SaddlePointLMPMatrix.h>


Public Member Functions | |
| SaddlePointLMPMatrix (const CostFct_ &j) | |
| void | setup (const std::vector< SPVector_ > &, const std::vector< SPVector_ > &) |
| const int & | getk () const |
| void | multiply (const SPVector_ &, SPVector_ &) const |
Private Types | |
| typedef ControlIncrement< MODEL, OBS > | CtrlInc_ |
| typedef CostFctWeak< MODEL, OBS > | CostFctWeak_ |
| typedef CostFunction< MODEL, OBS > | CostFct_ |
| typedef SaddlePointVector< MODEL, OBS > | SPVector_ |
| typedef DualVector< MODEL, OBS > | LagVector_ |
Private Member Functions | |
| void | Pinitmultiply (const SPVector_ &, SPVector_ &) const |
| void | Gmultiply (const SPVector_ &, Eigen::VectorXd &) const |
| void | Rmultiply (Eigen::VectorXd &, SPVector_ &) const |
| void | Fmultiply (Eigen::VectorXd &, Eigen::VectorXd &) const |
Private Attributes | |
| const CostFctWeak_ & | j_ |
| const bool | idmodel_ |
| std::vector< SPVector_ > | xyVEC_ |
| std::vector< SPVector_ > | pqVEC_ |
| std::vector< LagVector_ > | RpVEC_ |
| std::vector< CtrlInc_ > | RqVEC_ |
| std::unique_ptr< SPVector_ > | spvecinit_ |
| int | nvec_ |
| Eigen::MatrixXd | ZMat_ |
| Eigen::MatrixXd | FMat_ |
The preconditioner for the saddle-point minimizer.
The preconditioner is obtained by using low-rank updates. Let us define the matrices:
\( R = [ 0 Rp ], G = [ Zinv*Rp' 0 ] \) \( [ Rq 0 ] [ 0 Zinv'*Rq' ] \)
\( F = I + G*P0inv*R \)
where \( P0 \) is the initial preconditioner and \( I \) is the identity matrix of order 2.
Then the preconditioner is updated from
\( Pk = P0inv - P0inv*R*Finv*G*P0inv \)
The solvers represent matrices as objects that implement a "multiply" method. This class defines objects that apply the saddle-point matrix.
Definition at line 55 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 58 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 57 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 56 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 60 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 59 of file SaddlePointLMPMatrix.h.
|
explicit |
Definition at line 95 of file SaddlePointLMPMatrix.h.
|
private |
|
inline |
Definition at line 67 of file SaddlePointLMPMatrix.h.
|
private |
| void oops::SaddlePointLMPMatrix< MODEL, OBS >::multiply | ( | const SPVector_ & | x, |
| SPVector_ & | z | ||
| ) | const |
|
private |
|
private |
| void oops::SaddlePointLMPMatrix< MODEL, OBS >::setup | ( | const std::vector< SPVector_ > & | xyVEC, |
| const std::vector< SPVector_ > & | pqVEC | ||
| ) |
|
private |
Definition at line 89 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 81 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 80 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 87 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 83 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 84 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 85 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 86 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 82 of file SaddlePointLMPMatrix.h.
|
private |
Definition at line 88 of file SaddlePointLMPMatrix.h.