Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap for this project #5

Open
olivierbonte opened this issue Dec 12, 2024 · 2 comments
Open

Roadmap for this project #5

olivierbonte opened this issue Dec 12, 2024 · 2 comments

Comments

@olivierbonte
Copy link

Hi @chooron,

First and foremost thank you for open sourcing this package, really interesting to see someone trying to combine the powers of superflex and SciML! As I am myself trying to implement a very simple hydrological land surface model for exploring neural network parametrisations in evaporation modelling (see https://github.com/olivierbonte/DifferentiableEvaporation), I would be interested to know what your future plans are for this project?

More specifically, as far as I can see it now, there is only an explicit Euler solver implemented (https://github.com/chooron/HydroModels.jl/blob/main/src/utils/solver.jl). For my own purposes, it would be very interesting to be able to use DifferentialEquations.jl. Are there any plans to implement such a feature in the future? Or any way in which can I help to support the development of such a feature?

Thanks in advance!
Kind regards
Olivier

@chooron
Copy link
Owner

chooron commented Dec 13, 2024

First and foremost thank you for open sourcing this package, really interesting to see someone trying to combine the powers of superflex and SciML! As I am myself trying to implement a very simple hydrological land surface model for exploring neural network parametrisations in evaporation modelling (see https://github.com/olivierbonte/DifferentiableEvaporation), I would be interested to know what your future plans are for this project?

I will continue to advance this project (as my graduation thesis), mainly including the following parts:

First, I will further improve existing issues in the project code (mainly focusing on Route calculations and component wrapper), and synchronize the documentation accordingly
Then I will gradually work on reproducing some Neural-Network embedded hydrological models, including M50, M100, dPLHBV, etc.

More specifically, as far as I can see it now, there is only an explicit Euler solver implemented (https://github.com/chooron/HydroModels.jl/blob/main/src/utils/solver.jl). For my own purposes, it would be very interesting to be able to use DifferentialEquations.jl. Are there any plans to implement such a feature in the future? Or any way in which can I help to support the development of such a feature?

Thank you for your suggestion. The integration with DifferentialEquations.jl was already completed in v0.1.0 of this project. However, binding SciML libraries with this project would increase model loading efficiency, so in v0.1.1, I decoupled the SciML libraries from HydroModels.jl into another utility library HydroModelTools.jl (it hasn't been registered yet). This library uses Solver to wrap DifferentialEquations.jl's solving process, with its calculation interface being completely consistent with the built-in solver.jl in HydroModels.jl. Additionally, this library provides parameter optimization utility classes in optimizer.jl, which wraps the optimization process from Optimization.jl for model parameter optimization.

Finally, thank you for your attention to this project. I will continue to update and optimize the project. If you have any ideas or questions, please feel free to provide feedback.

@olivierbonte
Copy link
Author

Thanks for the clarifications! If there was a paper to come out on your work with the Neural-Network embedded hydrological models, I'd be very interested in reading it.

Thank you for pointing me to the HydroModelTools.jl library, I'll definitely check it out! Also thanks for the example usage in the docs

For my own project, I am still very much in the trial and error phase of choosing between directly using OrdinaryDiffEq, using Modellingtoolkit (thank you for raising some interesting points raised here) and your package. In any ideas or further questions were to come up during this experimentation related to your package, I will for sure let you know. In any case curious to see what the future brings for this package!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants