-
Notifications
You must be signed in to change notification settings - Fork 5
PCG Solver
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.
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 .
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.