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:
BaseStepConfigConfiguration 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_newtonand 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.- helper_operation_counts: OperationCounts