Continuation Stepping Strategies

The stepping module provides concrete implementations of stepping strategies used in continuation algorithms.

Base Step Interface

_ContinuationStepBase()

Define the protocol for continuation stepping strategies.

class hiten.algorithms.continuation.stepping._ContinuationStepBase(*, step_min=1e-10, step_max=1.0, shrink_policy=None)[source]

Bases: ABC

Define the protocol for continuation stepping strategies.

Parameters:
  • step_min (float)

  • step_max (float)

  • shrink_policy (Optional[Callable[[np.ndarray], np.ndarray]])

abstractmethod predict(last_solution, step)[source]

Generate a prediction for the next solution.

Parameters:
Return type:

_StepProposal

on_accept(*, last_solution, new_solution, step, proposal)[source]

Hook executed after successful correction; returns next step.

Parameters:
Return type:

ndarray

on_reject(*, last_solution, step, proposal)[source]

Hook executed after failed correction; returns shrunk step.

Parameters:
Return type:

ndarray

Plain Stepping

_ContinuationPlainStep()

Implement a simple stepping strategy using a provided predictor function.

class hiten.algorithms.continuation.stepping._ContinuationPlainStep(predictor, *, step_min=1e-10, step_max=1.0, shrink_policy=None)[source]

Bases: _ContinuationStepBase

Implement a simple stepping strategy using a provided predictor function.

Parameters:
predict(last_solution, step)[source]

Generate a prediction for the next solution.

Parameters:
Return type:

_StepProposal

on_accept(*, last_solution, new_solution, step, proposal)[source]

Hook executed after successful correction; returns next step.

Parameters:
Return type:

ndarray | None

Natural Parameter Stepping

_NaturalParameterStep()

Implement a natural parameter stepping strategy with user-supplied predictor.

class hiten.algorithms.continuation.stepping._NaturalParameterStep(predictor, *, step_min=1e-10, step_max=1.0, shrink_policy=None)[source]

Bases: _ContinuationStepBase

Implement a natural parameter stepping strategy with user-supplied predictor.

Parameters:
predict(last_solution, step)[source]

Generate a prediction for the next solution.

Parameters:
Return type:

_StepProposal

Secant Stepping

_SecantStep()

Stateless secant step using an external tangent provider.

class hiten.algorithms.continuation.stepping._SecantStep(representation_fn, tangent_provider, *, step_min=1e-10, step_max=1.0, shrink_policy=None, initial_tangent=None)[source]

Bases: _ContinuationStepBase

Secant step using an external tangent provider.

Parameters:
predict(last_solution, step)[source]

Generate a prediction for the next solution.

Parameters:
Return type:

_StepProposal

Factory Functions

make_natural_stepper()

Factory for a natural-parameter stepper.

hiten.algorithms.continuation.stepping.make_natural_stepper()[source]

Return a natural-parameter stepper factory.

Return type:

Callable[[Callable, _ContinuationStepSupport | None, ndarray, ndarray, Callable, float, float, Callable[[ndarray], ndarray] | None], _ContinuationStepBase]

make_secant_stepper()

Factory for a secant stepper using an external tangent provider.

hiten.algorithms.continuation.stepping.make_secant_stepper()[source]

Return a secant stepper factory.

Return type:

Callable[[Callable, _ContinuationStepSupport | None, ndarray, ndarray, Callable, float, float, Callable[[ndarray], ndarray] | None], _ContinuationStepBase]