PETSCDALETKF#

The Local ETKF performs the analysis update locally around each grid point, enabling scalable assimilation on large domains by avoiding the global ensemble covariance matrix.

Options Database Keys#

  • -petscda_type letkf - set the PetscDAType to PETSCDALETKF

  • -petscda_ensemble_size size - number of ensemble members

  • -petscda_ensemble_inflation factor - multiplicative inflation factor applied to anomalies

  • -petscda_letkf_batch_size batch_size - set the batch size for GPU processing

  • -petscda_letkf_localization_radius radius - localization cutoff radius for the built-in kernels (must be positive)

  • -petscda_letkf_localization_type (none|gaspari_cohn|gaussian|boxcar) - select the localization kernel

  • -petscda_view - view the PetscDA at the end of every PetscDAEnsembleAnalysis() call

Notes#

The default localization kernel is PETSCDA_LETKF_LOC_GASPARI_COHN, which requires the user to call PetscDALETKFSetLocalizationRadius() and PetscDALETKFSetLocalizationCoordinates() before the first analysis. To skip localization entirely use PetscDALETKFSetLocalizationType(da, PETSCDA_LETKF_LOC_NONE) (or -petscda_letkf_localization_type none). Both the CPU and Kokkos analysis paths support multi-rank runs; the Kokkos backend is selected when the covariance matrix da->R is a Kokkos AIJ type, otherwise the CPU per-vertex (or LOC_NONE replicated) path is used. -petscda_view fires at the tail of every PetscDAEnsembleAnalysis() call (mirroring KSPSolve()/SNESSolve()), so over a multi-cycle assimilation run the view is emitted once per analysis. Code that wants a single end-of-run snapshot should call PetscDAView() explicitly after the assimilation loop instead.

See Also#

PetscDA: Data Assimilation, PetscDA, PetscDACreate(), PetscDALETKFSetLocalizationRadius(), PetscDALETKFGetLocalizationRadius(), PetscDALETKFSetLocalizationType(), PetscDALETKFGetLocalizationType(), PetscDALETKFSetLocalizationCoordinates(), PetscDALETKFResetLocalization(), PetscDAEnsembleSetSize(), PetscDASetSizes(), PetscDAEnsembleSetInflation(), PetscDAEnsembleComputeMean(), PetscDAEnsembleComputeAnomalies(), PetscDAEnsembleAnalysis(), PetscDAEnsembleForecast()

Level#

beginner

Location#

src/ml/da/impls/ensemble/letkf/letkfilter.c

Examples#

src/ml/da/tutorials/ex3.c
src/ml/da/tutorials/ex2.c


Index of all PetscDA routines
Table of Contents for all manual pages
Index of all manual pages