Hi @fverdugo
I have been taking a look at DifferentialEquations.jl, in order to create ODESolvers as wrappers of this library solvers.
In our current version of the GridapTimeStepper package, I think that we can do it.
For instance, looking at the DAE solvers, what one requires is a residual, which is a method that we have.
https://docs.sciml.ai/stable/tutorials/dae_example/
https://docs.sciml.ai/stable/types/dae_types/
On the other hand, you can also provide a Jacobian, with a coefficient that comes from the solver, as we have. So, we could easily provide this method too.
https://docs.sciml.ai/stable/features/performance_overloads/
We can also provide our linear solvers (it says nonlinear too, but I cannot find an example)
https://docs.sciml.ai/stable/features/linear_nonlinear/#Linear-Solvers:-linsolve-Specification-1
We could create a solver from DifferentialEquation at every time step, from t_n to t_n+dt. I cannot see how to use the methods in the library as iterators, so they cannot be used for the whole period. Furthermore, it seems they are storing the unknown at all time steps (it can be tuned), which is not what we want.
It is unclear to me how to create a wrapper for their solvers such that we can easily provide all the options of the library in our creational methods for the wrapper.
What do you think?
Hi @fverdugo
I have been taking a look at
DifferentialEquations.jl, in order to createODESolvers as wrappers of this library solvers.In our current version of the
GridapTimeStepperpackage, I think that we can do it.For instance, looking at the
DAEsolvers, what one requires is a residual, which is a method that we have.https://docs.sciml.ai/stable/tutorials/dae_example/
https://docs.sciml.ai/stable/types/dae_types/
On the other hand, you can also provide a Jacobian, with a coefficient that comes from the solver, as we have. So, we could easily provide this method too.
https://docs.sciml.ai/stable/features/performance_overloads/
We can also provide our linear solvers (it says nonlinear too, but I cannot find an example)
https://docs.sciml.ai/stable/features/linear_nonlinear/#Linear-Solvers:-linsolve-Specification-1
We could create a
solverfromDifferentialEquationat every time step, fromt_ntot_n+dt. I cannot see how to use the methods in the library as iterators, so they cannot be used for the whole period. Furthermore, it seems they are storing the unknown at all time steps (it can be tuned), which is not what we want.It is unclear to me how to create a wrapper for their solvers such that we can easily provide all the options of the library in our creational methods for the wrapper.
What do you think?