ImplicitStepConfig

class cubie.integrators.ImplicitStepConfig(precision: type[float16] | type[float32] | type[float64] | dtype[float16] | dtype[float32] | dtype[float64], n_states: int = 1, n_drivers: int = 0, is_adaptive: bool = True, dxdt_fn: Callable | None = None, observables_fn: Callable | None = None, drivers_fn: Callable | None = None, get_solver_helper_fn: Callable | None = None, tableau: ButcherTableau | None = None, operator_beta: float = 1.0, operator_gamma: float = 1.0, preconditioner_order: int | None = None, preconditioner_type: str = 'jacobi', use_smoothed_error: bool = False, inexact_newton: bool = False, prefactored: bool = True, cached_auxiliaries_location: str = 'local', newton_nonlinear_solver_fn: Callable | None = None, krylov_linear_solver_fn: Callable | None = None, prepare_jacobian_fn: Callable | None = None, error_linear_solver_fn: Callable | None = None, helper_operation_counts: OperationCounts = NOTHING, *, jit_flags: JITFlags = NOTHING, unroll: UnrollFlags = NOTHING)[source]

Bases: BaseStepConfig

Configuration settings for implicit integration steps.

Parameters:
  • operator_beta – Stage-operator coefficient on the mass-matrix term.

  • operator_gamma – Stage-operator coefficient on the Jacobian term.

  • preconditioner_order – Number of series terms the preconditioner carries; order zero on 'jacobi' is the plain diagonal solve. Unset, it takes the type’s default: two for 'neumann', none for 'jacobi'.

  • use_smoothed_error (bool) – Provide a smoothed error to the step-size controller.

  • inexact_newton (bool) – Freeze the Newton iteration matrix at the step-start state (simplified Newton).

  • prefactored (bool) – With inexact_newton and a direct solver on a diagonal tableau, store finished step-start LU factors per distinct tableau diagonal instead of frozen Jacobian entries.

  • cached_auxiliaries_location (str) – Buffer location for the step-start Jacobian cache.

  • helper_operation_counts (cubie.odesystems.solver_helpers.OperationCounts) – Operator counts of the helpers the last build requested.

Notes

The mass matrix is not an algorithm parameter: it belongs to the ODE system, and mass-consuming solver helpers read it from the system when generated through get_solver_helper_fn.

cached_auxiliaries_location: str
error_linear_solver_fn: Callable | None
helper_operation_counts: OperationCounts
inexact_newton: bool
krylov_linear_solver_fn: Callable | None
newton_nonlinear_solver_fn: Callable | None
property operator_beta: float

Return the stage operator’s mass-matrix coefficient.

property operator_gamma: float

Return the stage operator’s Jacobian coefficient.

property preconditioner_order: int

Return the series-term count, resolving unset by type.

preconditioner_type: str
prefactored: bool
prepare_jacobian_fn: Callable | None
property smoothed_error_capable: bool

Return whether the tableau supports the smoothed estimate.

property smoothed_error_enabled: bool

Return whether smoothing is both requested and capable.

property smoothing_gamma: float

Return the tableau smoothing coefficient cast to precision.

property solver_width: int

Return the solver vector length.

use_smoothed_error: bool