Skip to content

Incorrect behavior with save_everystep and saveat set #29

@dburov190

Description

@dburov190

Here's an MWE:

using OrdinaryDiffEq
using ODEInterfaceDiffEq

function lorenz(rhs, z, p, t)
  rhs[1] = p.sigma * (z[2] - z[1])
  rhs[2] = z[1] * (p.rho - z[3]) - z[2]
  rhs[3] = z[1] * z[2] - p.beta * z[3]
end
struct LorenzParameters
  sigma::Float64
  beta::Float64
  rho::Float64
end

z0 = [1; 0; 0]
z0 = Float64.(z0)
p = LorenzParameters(10, 8/3, 28)
pb = ODEProblem(lorenz, z0, (0.0, 4.0), p)
sol = solve(pb, dop853(); saveat = 1e-3, save_everystep = true)
println(issorted(sol.t))

Outputs false. As a result, here's what you get if you plot one of the variables:
julia_failed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions