Skip to content

Memoizer

Parameters for memoizing wrappers.

The memoizers store and reuse previously computed results to speed up the fixed-point iterations in OBC and Lyapunov solvers.

See the section on open boundary conditions in the user guide for more information on the

mode#

mode: Literal['auto', 'force', 'force-after-first', 'off'] = 'auto'

The memoization mode determines when to reuse cached results.

  • "auto": Automatically decides whether to use memoization based on the specified tolerances. This will only lead to iteration savings when all ranks agree to memoize. This incurs a small amount of communication overhead.
  • "force": Always use memoization on all ranks.
  • "force-after-first": Use memoization after the first SCBA iteration.
  • "off": Never use memoization.

num_ref_iterations#

num_ref_iterations: PositiveInt = 2

The number of fixed-point iterations to perform.

This must be greater than or equal to 2. The first iteration is used to estimate the residuals, and a second fixed-point iteration is performed to get the residuals after the memoization is applied.

relative_tol#

relative_tol: PositiveFloat = 0.2

The relative tolerance on fixed-point residuals for memoization.

Note

Only used if mode is set to "auto".

absolute_tol#

absolute_tol: PositiveFloat = 1e-06

The absolute tolerance on fixed-point residuals for memoization.

Note

Only used if mode is set to "auto".

warning_threshold#

warning_threshold: PositiveFloat = 0.1

The threshold for issuing a memoization warning.

If the memoized functions residual is above this value after the fixed-point iterations, a warning is issued. This is to alert the user that the memoization may not be accurate enough and that the results may be unreliable.

agreement_threshold#

agreement_threshold: float = 0.999

The threshold for agreement between ranks for memoization.

The default value of 0.999 means 99.9% of the ranks must agree to use memoization.

Note

Only used if mode is set to "auto".