Rosenbrock tableau registry

ROSENBROCK_TABLEAUS maps human-friendly identifiers to RosenbrockTableau instances. The registry powers get_algorithm_step() aliases and allows callers to select Rosenbrock-W schemes without manually specifying the coefficients.

cubie.integrators.algorithms.ROSENBROCK_TABLEAUS Dict[str, RosenbrockTableau]

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object’s

(key, value) pairs

dict(iterable) -> new dictionary initialized as if via:

d = {} for k, v in iterable:

d[k] = v

dict(**kwargs) -> new dictionary initialized with the name=value pairs

in the keyword argument list. For example: dict(one=1, two=2)

The default GenericRosenbrockWStep configuration uses the three-stage third-order ROS3P tableau ("ros3p").

Available aliases

Named Rosenbrock-W tableaus

Key

Description

Reference

"ros3p"

Three-stage third-order ROS3P method.

[RangAngermann2005]

"rodas3p"

Five-stage third-order RODAS3P Kaps–Rentrop scheme.

[SciMLRosenbrock]

"rosenbrock23", "ode23s", "rosenbrock23_sciml"

Three-stage SciML Rosenbrock 2(3) method (MATLAB ode23s analogue).

[ShampineReichelt1997]

Tableau container

class cubie.integrators.algorithms.generic_rosenbrockw_tableaus.RosenbrockTableau(a: Tuple[Tuple[float, ...], ...], b: Tuple[float, ...], c: Tuple[float, ...], order: int, b_hat: Tuple[float, ...] | None = None, C: Tuple[Tuple[float, ...], ...] = NOTHING, gamma: float = 0.25, gamma_stages: Tuple[float, ...] = NOTHING)[source]

Bases: ButcherTableau

Coefficient tableau describing a Rosenbrock-W integration scheme.

Parameters:
  • a (Tuple[Tuple[float, ...], ...]) – Lower-triangular matrix of stage coupling coefficients.

  • b (Tuple[float, ...]) – Weights applied to the stage increments when forming the solution.

  • c (Tuple[float, ...]) – Stage abscissae expressed as fractions of the step size.

  • order (int) – Classical order of the Rosenbrock-W method.

  • b_hat (Tuple[float, ...] | None) – Optional embedded weights that deliver an error estimate.

  • C (Tuple[Tuple[float, ...], ...]) – Lower-triangular matrix containing Jacobian update coefficients.

  • gamma (float) – Diagonal shift applied to the stage Jacobian solves.

  • gamma_stages (Tuple[float, ...]) – Optional per-stage diagonal shifts applied to the Jacobian solves.

C: Tuple[Tuple[float, ...], ...]
gamma: float
gamma_stages: Tuple[float, ...]
typed_gamma_stages(numba_precision: type) Tuple[float, ...][source]

Return stage-specific gamma shifts typed to numba_precision.

References

[RangAngermann2005]

J. Rang and L. Angermann. “New Rosenbrock–W methods of order 3 for partial differential-algebraic equations of index 1.” BIT Numerical Mathematics 45(4), 2005.

[SciMLRosenbrock]

SciML/OrdinaryDiffEq.jl. Rodas3PTableau in rosenbrock_tableaus.jl. https://github.com/SciML/OrdinaryDiffEq.jl

[ShampineReichelt1997]

L. F. Shampine and M. W. Reichelt. “The MATLAB ODE Suite.” SIAM J. Sci. Comput. 18(1), 1997.