Changes between Initial Version and Version 1 of Implement3DVarAnalysisOverviewPDAF3


Ignore:
Timestamp:
May 25, 2025, 1:52:58 PM (8 weeks ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Implement3DVarAnalysisOverviewPDAF3

    v1 v1  
     1= Overview of the Analysis Step for 3D-Var Methods =
     2
     3{{{
     4#!html
     5<div class="wiki-toc">
     6<h4>Implementation Guide - Analysis Step</h4>
     7<ol><li><a href="ImplementationofAnalysisStep">Main page: Implementing the analysis step<a></li>
     8<ol>
     9<li><b>Ensemble filters</b></li>
     10<ol>
     11<li><a href="ImplementFilterAnalysisOverviewPDAF3">General overview for ensemble filter</a></li>
     12<li><a href="ImplementAnalysisPDAF3Universal">Universal interface </a></li>
     13<li><a href="ImplementAnalysisPDAF3UniversalLocal">Universal interface using g2l/l2g_state</a></li>
     14<li><a href="ImplementanalysisPDAF3Gloval">Interface specific for global filters</a></li>
     15</ol>
     16<li><b>3D-Var methods</b></li>
     17<ol>
     18<li> <a href="Implement3DVarAnalysisOverviewPDAF3"> General overview for 3D-Var methods</a></li>
     19<li><a href="ImplementAnalysisPDAF3_3DVar">Implementation for 3D-Var</a></li>
     20<li><a href="ImplementAnalysisPDAF3_3DEnVar">Implementation for 3D Ensemble Var</a></li>
     21<li><a href="ImplementAnalysisPDAF3_Hyb3DVar">Implementation for Hybrid 3D-Var</a></li>
     22</ol>
     23
     24<li><a href="OMI_nondiagonal_observation_error_covariance_matrices">Using nondiagonal R-matrices</a></li>
     25<li><a href="PDAF_OMI_Overview">PDAF-OMI Overview</a></li>
     26</ol>
     27</div>
     28}}}
     29
     30For the analysis step of ensemble filters several routines need to be implemented. We prove a conceptional overview here. The detailed interfaces are then described on the pages for the different interface.
     31
     32Figure 1 gives an overview of the different routines one needs to provide to the analysis step of an a 3D-Var method. The actual routines depend on the chosen 3D-Var method as will be described after discussing the groups of subroutines.
     33
     34[[Image(//pics/Analysis_3DVars_web2.3.png)]]
     35[[BR]]'''Figure 1:''' Required routines for the analysis step of 3D-Var methods. There are four groups of routines: The interface to the model (light blue), the observation module (red), state localization in case of Ensemble or Hybrid Var using the LESTKF (purple), and handling of covariances (dark blue). The routine marked in yellow are additions compared to what is required for ensemble filters. Without [wiki:PDAFlocal_overview PDAFlocal] there are two additional routines in the localization module.
     36
     37
     38The routines are organized in four groups:
     39
     40=== Model Interface ===
     41 The model Interface consists of the routines `collect_state_pdaf` and `distribute_state_pdaf`. These routine perform the concersion between model fields and state vector. The routines have been discussed in the context of the [ModifyModelforEnsembleIntegration modification of the model for the ensemble integration].
     42
     43=== OMI Observation Module ===
     44 The observation module performs all observation-related operations. In case of OMI, one needs the following routines:
     45  * `init_dim_obs_pdafomi`: For each observation type that is assimilation this routine reads the observations and initialized observation values, coordinates, and errors. In addition indices are specified that link the state vector to the observations so that the observation operator is prepared
     46  * `obs_op_pdafomi`: For each observation type there is one routine providing the observation operator. For this, OMI provides different observation operators
     47  * `init_dim_obs_l_pdafomi`: This routine initializes the local observations of each observation type. This is only required if the LESTKF is applied to transform the ensemble perturbations. With OMI this is mainly a single subroutine call, while OMI does the actual initialization
     48  * `obs_op_lin_pdafomi`: This routine applied the linearized observation operator for each observation type during the iterative optimization. So far OMI only provised linear observation operators. For these `obs_op_lin_pdafomi` can call the same operator at `obs_op_pdafomi`.
     49  * `obs_op_adj_pdafomi`: This routine applied for each observation type the adjoint observation operator. This is applied to the observation vector and returns a state vector. OMI provides the adjoints of the provided forward operators.
     50
     51=== Localization ===
     52 These routines are only required for 3D-Var variants transforming the ensemble perturbations with the LESTKF. They handle the initialization of the state vector for a local analysis. These routines are
     53  * `init_n_domain`: This routine sets the number of local analysis domains
     54  * `init_dim_l`: This routine determines the state vector size for the local analysis domain and initializes the index information to fill a local state vector
     55
     56=== Covariances ===
     57
     58 The covariance routines perform the so-called control vector transformation (cvt). The 3D-Vars are implemented in incremental form and transform from the state space (state vector increment '''dx''') to the control space (control vector '''v''') using a square-root '''L''' of the background covariance matrix '''B''' = '''L''' '''L'''^T^.
     59 * `cvt_pdaf`: This routine performs the transformation '''x''' = '''L''' '''v'''.
     60 * `cvt_adj_pdaf`: This routine performsn the adjoint transformation '''y''' = '''L''' '''x'''
     61 * `cvt_ens_pdaf`: This routine performs the transformation '''x''' = '''Z''' '''v''' using an ensemble-represented matrix square root '''Z''' with '''Z''' '''Z'''^T^ = '''B'''. For this operation the routine is provided with the array holding the state ensemble.
     62 * `cvt_adj_ens_pdaf`: This routine performsn the adjoint transformation '''y''' = '''Z''' '''x''' using an ensemble-represented matrix square root '''Z''' with '''Z''' '''Z'''^T^ = '''B'''. For this operation the routine is provided with the array holding the state ensemble.
     63
     64== 3D-Var Methods in PDAF ==
     65
     66PDAF provides 3 different variants of 3D-Var. For those methods using en ensemble to represent covariances, the transformation of ensemble perturbations can be cmoputed using the global ESTKF or the localized LESTKF filters. The methods are
     67 * '''3D-Var:''' This variant uses parameterized covariances. It is run in PDAF with an ensemble size of one. The functionality in `cvt_pdaf` and `cvt_adj_pdaf` is coded by the user according to the particular problem, e.g. by using variable transformations for balances or using decorrelation lengths or EOFs to propagate increments.
     68 * '''3D Ensemble Var:''' The ensemble variational method represents the covariance by an ensemble. Thus the functionality in `cvt_ens_pdaf` and `cvt_adj_ens_pdaf` is, in its simplest form, simply given by the scaled ensemble perturbations. In addition localization can be applied. In this case the number of columns of the ensemble array is multiplied and tapering is applied. The transformation of the ensemble transformations can be performed in two ways
     69  * '''ESTKF:''': In this case the ensemble perturbations are transformed by the global ESTKF method. Adapt from using the ensemble variances of the cvt-routines, the interface for this 3D-Var method is identical to that of the parameterized 3D-Var.
     70  * '''LESTKF:''': In this case the ensemble perturbations are transformed by the local ESTKF method. In this case, the call to the assimilation routine also specifies the routines needed to apply the localization.
     71 * ''' Hybrid 3D-Var:''' The hybrid 3D-Var implementation represents the covariance matrix by a combination of a parameterized with an ensemble part. Thus mathematically the columns are concatenated as '''B'''^1/2^ = ['''L''' '''Z''']. In practive this variant call both `cvt_pdaf` and `cvt_ens_pdaf` (and likewise both adjoint variants) one after the other and each routine does its part of the covariance operation. As for the 3D Ensemble Var, the transformation of the ensemble transformations can be performed in two ways
     72  * '''ESTKF:''': In this case the ensemble perturbations are transformed by the global ESTKF method. Compared to the interface of the parameterized 3D-Var, the call to the assimilation routine includes all cvt routines, both for the parameterized and the ensemble transformatiob.
     73  * '''LESTKF:''': In this case the ensemble perturbations are transformed by the local ESTKF method. In this case, the call to the assimilation routine also specifies the routines needed to apply the localization.
     74
     75'''Note on ''3D Ensemble Var'' vs. ''Hybrid 3D-Var''''': The '''hybrid 3D-Var''' implemented provides a clear separation between the parameterized and the ensemble parts, which should make the combined use easy. However, this scheme might be to restrictive depending on how one likes to combine the ensemble information with the parameterized covariance operations. To this end one can base a more advanced hybrid implementation on '''3D Ensemble Var''' variant. In particular it is important to note that the routines `cvt_ens_pdaf` and `cvt_adj_ens_pdaf` are not restricted to using the ensemble-represented covariances. Also the dimension of the control vector can be freely specified and is not restrictired to a multiple of the ensemble size. This allows to apply any combination of parameterized and ensemble covariance operation.
     76
     77== Code examples ==
     78
     79The different 3D-Var variants are demonstrated in the tutorial code in the PDAF package in the sub-directories of
     80{{{
     81   tutorial/variational/
     82}}}
     83These tutorial implementations are analogous to the tutorials for the ensemble filters.
     84
     85
     86
     87== Documention of the required implementations ==
     88
     89For the application of the 3D-Var methods there are separate routines (added with PDAF 2.0):
     90 * [wiki:ImplementAnalysis_3DVar Implementation of the analysis for 3D-Var with parameterized background covariance matrix]
     91 * [wiki:ImplementAnalysis_3DEnVar Implementation of the analysis for 3D Ensemble Var ]
     92 * [wiki:ImplementAnalysis_Hyb3DVar Implementation of the analysis for hybrid 3D-Var]
     93