Open frankschae opened 1 year ago
Maybe this should be implemented in OrdinaryDiffEq and then just used with any solver?
Maybe this should be implemented in OrdinaryDiffEq and then just used with any solver?
Can you elaborate? I thought that it's fine to let a user define their own controller type as a subtype of AbstractController
and then dispatch on it to change the adaptive scheme. AbstractController
is defined in OrdinaryDiffEq and only imported here. I don't know how to implement a generically valid integrator.q = max(...)
.
I mean, why not implement CustomController in OrdinaryDiffEq and then document it as a feature for ODEs, SDEs, DDEs, DAEs, and SDDEs?
What would that look like? Would we only add
struct CustomController <: StochasticDiffEq.AbstractController
end
to OrdinaryDiffEq? Wouldn't that be worse than leaving the type "free"? I have in mind that users might want to do something sophisticated and it would be good, e.g., if CustomController
could hold additional fields (but adding it to the docs would be great of course).
Yeah, I think some documented type where a user gives some functions like that.
Isn't AbstractController
basically already that type (so you can subtype it with a concrete type with its own fields and do all the fancy things you want to do)?
Documenting it might be all that's necessary.
Maybe on this page https://docs.sciml.ai/DiffEqDocs/stable/extras/timestepping/?
That seems right.
If Controllers should subtype
StochasticDiffEq.AbstractController
this will allow us to implement custom adaptive schemes easily.