Wednesday, April 19, 2017

PDAF

"The Parallel Data Assimilation Framework - PDAF - is a software environment for ensemble data assimilation. PDAF simplifies the implementation of the data assimilation system with existing numerical models. With this, users can obtain a data assimilation system with less work and can focus on applying data assimilation.

PDAF provides fully implemented and optimized data assimilation algorithms, in particular ensemble-based Kalman filters like LETKF and LSEIK. It allows users to easily test different assimilation algorithms and observations. PDAF is optimized for the application with large-scale models that usually run on big parallel computers and is applicable for operational applications. However, it is also well suited for smaller models and even toy models.

PDAF provides a standardized interface that separates the numerical model from the assimilation routines. This allows to perform the further development of the assimilation methods and the model independently. New algorithmic developments can be readily made available through the interface such that they can be immediately applied with existing implementations. The test suite of PDAF provides small models for easy testing of algorithmic developments and for teaching data assimilation.

The features:
  • PDAF is implemented in Fortran90 with some features from Fortran 2003. The standard interface also supports models that are written in other languages like C or C++.
  • The parallelization uses the MPI (Message Passing Interface) standard. The localized filters use, in addition, OpenMP-parallelization.
  • The core routines are fully independent of the model code. They can be compiled separately and can be used as a library. 
PDAF provides the following algorithms for data assimilation. All filters are fully implemented, optimized and parallelized.
Local filters:
  • LSEIK (Nerger et al., 2006)
  • LETKF (Hunt et al., 2007)
  • LESTKF (Local Error Subspace Transform Kalman Filter, Nerger et al., 2012, see publications)
  • LNETF (localized Nonlinear Ensemble Transform Filter by Toedter and Ahrens (2015), added in version 1.12)
Global filters:
  • ESTKF (Error Subspace Transform Kalman Filter, Nerger et al., 2012, see publications)
  • ETKF (The implementation follows Hunt et al. (2007) but without localization, which is available in the LETKF implementation)
  • EnKF (The classical formulation with perturbed observations by Evensen (1994), Burgers et al. (1998))
  • SEEK (The original formulation by Pham et al. (1998))
  • SEIK (Pham et al. (1998a, 2001), the implemented variant is described in more detail by Nerger et al. (2005))
  • NETF (Nonlinear Ensemble Transform Filter by Toedter and Ahrens (2015), added in version 1.12)
Starting from version 1.9 of PDAF, smoothers algorithms are provided for the following algorithms
  • ESTKF & LESTKF
  • ETKF & LETKF
  • EnKF
  • NETF (added in version 1.12)
PDAF simplifies the implementation of data assimilation systems using existing model code by the following:
  1. PDAF provides fully implemented, parallelized, and optimized ensemble-based algorithms for data assimilation. Currently, these are ensemble-based Kalman filters like the LSEIK, LETKF, and EnKF methods.
  2. PDAF is attached to the model source code by minimal changes to the code. These changes only concern the general part of the code, but not the numerics of the model. In addition, a small set of routines is required that are specific to the model or the observations to be assimilated. These routines can be implemented like routines of the model.
  3. PDAF is called through a well-defined standard interface. This allows, for example, to switch between the LSEIK, LETKF, and LESTKF methods without additional coding.
  4. PDAF provides parallelization support for the data assimilation system. If your numerical model is already parallelized, PDAF enables the data assimilation system to run several model tasks in parallel within a single executable. However, PDAF can also be used without parallelization, for example to test small systems.
  5. PDAF does not require that your model can be called as a subroutine. Rather PDAF is added to the model and the formed data assimilation system can be executed pretty much like the model-program would without data assimilation.
  6. PDAF also offers an offline mode. This is for the case that you don't want to (or even cannot) modify your model source code at all. In the offline mode, PDAF is compiled separately from the model together with the supporting routines to handle the observations. Then the model and the assimilation step are executed separately. While this strategy is possible, we don't recommend it, because it's computationally less efficient. 
http://pdaf.awi.de/trac/wiki



No comments:

Post a Comment