SABER blocks¶
Specification¶
A SABER block encapsulates a linear operator that can be used to model covariance or localization matrices. For covariance matrices, a sequence of SABER blocks can be specified in the yaml configuration file:
covariance model: SABER saber blocks: - {saber block 1 ...} - {saber block 2 ...} - ... - {saber block N ...}
First, the adjoints of the blocks are applied in reverse order. Then, the direct blocks are applied in forward order:

If the first block has the key saber central block
activated, then it is considered as auto-adjoint:

For localization matrices, a single SABER block is specified:
covariance model: ensemble localization: localization method: SABER saber block: {saber block ...}
The list of available SABER blocks can be found in SABER components.
Interfaces¶
All SABER blocks have a constructor that takes as input arguments:
a geometry,
a set of parameters (see next section),
a background,
a first guess.
A single ATLAS FieldSet is passed as argument for all the SABER block methods, which makes them interoperable in any order. The five methods are:
randomize
: apply the square-root of the block to a random vector of centered Gaussian distribution of unit variance. Required for all blocks.multiply
: apply the block to an input ATLAS FieldSet. Required for all blocks.inverseMultiply
: apply the inverse of the block to an input ATLAS FieldSet. Not required if thesaber central block
anditerative inverse
keys are activated.multiplyAD
: apply the adjoint of the block to an input ATLAS FieldSet. Not required if thesaber central block
key is activated.inverseMultiplyAD
: apply the adjoint of the inverse of the block to an input ATLAS FieldSet. Not required if thesaber central block
key is activated.
Base parameters¶
All SABER blocks share some common base parameters, and have their own specific parameters (see SABER components). These base parameters are:
saber block name
: the name of the SABER block.input variables
: input variables.output variables
: output variables.active variables
[optional]: active variables modified by the block. This should be a subset of the input variables, the default value is the input variables.saber central block
[optional]: boolean to use this block as auto-adjoint (for the first block only). Default isfalse
.iterative inverse
[optional]: boolean to use an iterative solver to apply the inverse of this block (ifsaber central block
is also activated). Default isfalse
.