PetscDALETKFSetLocalizationType#

Selects the localization kernel used by PETSCDALETKF.

Synopsis#

Logically Collective

Input Parameters#

Notes#

Use PETSCDA_LETKF_LOC_NONE to bypass localization entirely; the analysis is then mathematically equivalent to the global ETKF and dispatches through a single global eigensolve plus a dense BLASgemm weight transform reduced across ranks, instead of the per-vertex local loop.

For the built-in distance-based kernels (PETSCDA_LETKF_LOC_GASPARI_COHN, PETSCDA_LETKF_LOC_GAUSSIAN, PETSCDA_LETKF_LOC_BOXCAR) you must also call PetscDALETKFSetLocalizationRadius() and PetscDALETKFSetLocalizationCoordinates(). The localization matrix is then constructed lazily before the first analysis. All three built-in kernels are 1 at distance 0; radius selects the effective support but the cutoff distance and continuity at the cutoff differ. PETSCDA_LETKF_LOC_GASPARI_COHN is compactly supported with cutoff at distance 2*radius, and is C^1 continuous everywhere (it tapers smoothly to zero at the cutoff). PETSCDA_LETKF_LOC_GAUSSIAN is exp(-d^2 / (2*radius^2)) truncated at distance 2*radius; the truncation introduces a discontinuity of exp(-2) (~0.135) at the cutoff, so prefer PETSCDA_LETKF_LOC_GASPARI_COHN if a smooth taper at the cutoff matters. PETSCDA_LETKF_LOC_BOXCAR is 1 inside radius and 0 outside; the discontinuity is by design.

See Also#

PetscDA: Data Assimilation, PETSCDALETKF, PetscDA, PetscDALETKFLocalizationType, PetscDALETKFGetLocalizationType(), PetscDALETKFSetLocalizationRadius(), PetscDALETKFSetLocalizationCoordinates()

Level#

intermediate

Location#

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

Examples#

src/ml/da/tutorials/ex1.c

Implementations#

PetscDALETKFSetLocalizationType_LETKF() in src/ml/da/impls/ensemble/letkf/letkfilter.c


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