congrad/std congrad/std#
Description#
CONGRAD minimizer: conjugate-gradient / Lanczos algorithm for variational DA.
CONGRAD implements a Lanczos-based conjugate-gradient algorithm tailored for
variational data assimilation. It minimises the quadratic approximation of
the cost function \(J(oldsymbol{\chi})\) by building a Krylov subspace
basis via the Lanczos iteration and solving the reduced tridiagonal system
exactly. A key feature is that the algorithm simultaneously estimates the
leading eigenvectors (pevecs) of the inverse Hessian, which can be used
to reconstruct a low-rank approximation of the posterior uncertainty reduction
matrix \(\mathbf{P}_a\).
Original algorithm: Mike Fisher (ECMWF), April 2002.
Python adaptation: Frédéric Chevallier (LSCE), April 2004.
YAML arguments#
The following arguments are used to configure the plugin. pyCIF will return an exception at the initialization if mandatory arguments are not specified, or if any argument does not fit accepted values or type:
Optional arguments#
- save_uncertainties : bool, optional, default False
Save the estimated eigenvectors of the inverse of the hessian. They allow the reconstruction of the uncertainty reduction matrix
- force_linearize : bool, optional, default False
Force linearizing the cost function by using the TL instead of the forward
- maxiter : int, optional, default 1
maximum number of iterations
Requirements#
The current plugin requires the present plugins to run properly:
Requirement name |
Requirement type |
Explicit definition |
Any valid |
Default name |
Default version |
|---|---|---|---|---|---|
simulator |
True |
True |
gausscost |
std |
YAML template#
Please find below a template for a YAML configuration:
1minimizer:
2 plugin:
3 name: congrad
4 version: std
5 type: minimizer
6
7 # Optional arguments
8 save_uncertainties: XXXXX # bool
9 force_linearize: XXXXX # bool
10 maxiter: XXXXX # int
See also