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:

../../../_images/figure_saber_blocks_1.jpg

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

../../../_images/figure_saber_blocks_2.jpg

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 the saber central block and iterative inverse keys are activated.

  • multiplyAD: apply the adjoint of the block to an input ATLAS FieldSet. Not required if the saber central block key is activated.

  • inverseMultiplyAD: apply the adjoint of the inverse of the block to an input ATLAS FieldSet. Not required if the saber 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 is false.

  • iterative inverse [optional]: boolean to use an iterative solver to apply the inverse of this block (if saber central block is also activated). Default is false.