PetscDALETKFSetLocalizationType#
Selects the localization kernel used by PETSCDALETKF.
Synopsis#
Logically Collective
Input Parameters#
da - the
PetscDAcontexttype - the kernel type (see
PetscDALETKFLocalizationType)
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#
Examples#
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