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

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