Skip to content

PCG Solver

Travis sluka edited this page Jul 3, 2017 · 1 revision

The following is an overview of the observation-space preconditioned conjugate gradient solver, the design of which was borrowed heavly from the Navy's NCODA system [1][2]

The 3DVar formulation used here is the observation space formulation:

which is solved in two step. First is to solve via iteration the following for

then finding the analysis increments by:

This is all handled by several modules in the code. The main conjugate gradient solver is in the g3dv_pcg module, the background covariance model is handled by g3dv_bgcov and the separation of observations in to blocks by g3dv_obs.

Preconditioned conjugate gradient solver

with and iteratively solve for as follows until either a specified number of iterations have occurred or the residual, has reduced from the initial value, by a specified factor. The formation of the preconditioning matrix, is described later.

initialize the following variables:

begin iterations until solution converges:

if (k > 1):

then for each iteration with (k>0):

It should be noted that in the actual code only the most recent vectors for and are stored, and so only the final dot products of are kept from 2 steps ago for calculating .

Preconditioning

TODO


[1]: Daley, R., & Barker, E. (2001). NAVDAS Source Book 2001. NRL Publication NRL. PU/7530—01-441, 161pp.

[2]: Cummings, J. A., & Smedstad, O. M. (2013). Variational data assimilation for the global ocean. In Data Assimilation for Atmospheric, Oceanic and Hydrologic Applications (Vol. II) (pp. 303-343). Springer Berlin Heidelberg.


Clone this wiki locally