Skip to content

Correct way to pass jump times to step size controllers if interpolation evaluated as part of vector field #723

@johannahaffner

Description

@johannahaffner

What is the correct way to pass information about knots ts of a linear interpolation to the step size controller? I'm using Kvaerno5 for a stiff ODE and specify experimental input $u(t)$ with a linear interpolation.

I noticed that the FSAL solver must be informed about the knots (small wiggles around them), and included the information about the knot times as a jump_ts argument to the step size controller, as specified here in the warning.
However, I have not put my linear interpolation into a control term - I simply pass it to the vector field as an argument and then evaluate it.

I then get ValueError: A fixed step size controller is being used alongside an implicit solver, but the tolerances for the implicit solver have not been specified. (Being unspecified is the default in Diffrax.) ... (no traceback).

This seems like a bit of a footgun? I don't intend to make the PID controller implement a fixed step size just because it now has to respect jump times, but that does seem to be the net effect (?).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions