Skip to content

Tags: ODINN-SciML/ODINN.jl

Tags

v1.1.0

Toggle v1.1.0's commit message
[Diff since v1.0.0](v1.0.0...v1.1.0)

**Merged pull requests:**
- Setup code formatter (#445) (@albangossard)
- Law plots comparison feature (#449) (@JordiBolibar)
- Aqua tests added (#451) (@JordiBolibar)
- CompatHelper: bump compat for Optim to 2, (keep existing compat) (#456) (@github-actions[bot])
- CompatHelper: bump compat for JET to 0.11, (keep existing compat) (#457) (@github-actions[bot])
- CompatHelper: bump compat for GeoStats to 0.84, (keep existing compat) (#458) (@github-actions[bot])
- CompatHelper: bump compat for Mooncake to 0.5, (keep existing compat) (#459) (@github-actions[bot])
- Update main from dev (#460) (@albangossard)
- update scimlsensitivity dependency (#461) (@albangossard)
- allow to run with Julia 1.10 to fix ODINN test env (#462) (@albangossard)
- Add a Julia version check when loading ODINN (#464) (@albangossard)
- Fix optim dependencies (#466) (@albangossard)
- Move Julia 1.12 check to runtime (#467) (@JordiBolibar)
- Fix warning typo in precompilation (#470) (@JordiBolibar)

**Closed issues:**
- Centralize optimization packages into Optimization.jl (#159)
- Set up a code formatter (#308)
- Fix unstable ODE in adjoint computation of SciMLSensitivity (#354)
- How to handle batching in gradient computation (#374)
- Improve tests with Aqua.jl (#387)
- Create plotting function to compare learnt parametrization with ground truth (#441)
- Fix problem with `LossV` and `LossHV` with classical inversions (#443)
- run!(inversion) not running with Julia 1.12 (#463)

v1.0.0

Toggle v1.0.0's commit message
[Diff since v0.3.0](v0.3.0...v1.0.0)

First major release of ODINN. Let's have fun!

- A stable API with a new redesigned architecture
- Differentiable iceflow models
- Extensive documentation
- And extensive test suite with CI

**Merged pull requests:**
- Speed-up the tests by downscaling the glacier grid (#316) (@albangossard)
- [WIP] Inversion results pipeline + re-organization of scripts + inversion test (#317) (@facusapienza21)
- Update following matrix data order changes in Sleipnir (#336) (@albangossard)
- Enable `grad_free_test` with MB (#337) (@albangossard)
- Add basal sliding in SIA (#340) (@albangossard)
- Ice velocity loss (#341) (@albangossard)
- Refactor ODINN to support the laws API (#343) (@albangossard)
- Documentation fix (#345) (@albangossard)
- Update for laws and plotting utils (#347) (@JordiBolibar)
- Fix long running tests (#349) (@albangossard)
- Fix Enzyme VJPs + make compatible with SciML (#350) (@albangossard)
- Docs updated, change of structure and new pages (#352) (@JordiBolibar)
- Enable SciMLSensitivity gradient computation test (#355) (@albangossard)
-  Propagate miscellaneous changes from Sleipnir (#357) (@albangossard)
- Ice velocity loss merge conflict (#358) (@albangossard)
- Companion changes to remove SIA out-of-place workflow (#361) (@JordiBolibar)
- Introduce fast tests (#362) (@albangossard)
- Add tensorboard training stats (#364) (@albangossard)
- Merge `dev` into `main` (#367) (@JordiBolibar)
- Fast tests and docs updated (#368) (@JordiBolibar)
- Add contribution of MB to gradient computation (#369) (@albangossard)
- Implementation of Inversion Pipeline wrt to Initial Condition of Ice Thickness (#370) (@facusapienza21)
- Code of conduct (#372) (@facusapienza21)
- CompatHelper: add new compat entry for SciMLStructures at version 1, (keep existing compat) (#376) (@github-actions[bot])
- CompatHelper: add new compat entry for DiffEqCallbacks at version 4, (keep existing compat) (#379) (@github-actions[bot])
- CompatHelper: bump compat for JLD2 to 0.6, (keep existing compat) (#382) (@github-actions[bot])
- Initial Condition Mask (#385) (@facusapienza21)
- Merge dev branch into main (#388) (@albangossard)
- Fix prints in the documentation (#390) (@albangossard)
- Regularization and Multi-Objective losses (#393) (@facusapienza21)
- Customize the VJP functions in the laws (#395) (@albangossard)
- Fix optimization dependency (#396) (@albangossard)
- Sync main with dev (#397) (@albangossard)
- update dependencies to support Julia 1.12 (#400) (@albangossard)
- fix plot of laws in the documentation + issue with PlotlyJS on Ubuntu 24.04 (#407) (@albangossard)
- Implementation of D Law based on Interpolation Cache (#413) (@facusapienza21)
- Implement classical inversion (#414) (@albangossard)
- Documentation update: IC + miscellanea  (#417) (@facusapienza21)
- Split discrete VJPs into two seperate functions (#418) (@albangossard)
- Adaptive tstops (#420) (@albangossard)
- uniformize dependencies (#424) (@albangossard)
- Gridded classical inversions (#425) (@JordiBolibar)
- Implement Weertman Sliding Law (#430) (@albangossard)
- Rename Diffusivityꜛ (#431) (@albangossard)
- Fix small issue with tstops in loss evaluation (#433) (@facusapienza21)
- Merge dev into main (#435) (@albangossard)
- Rename files, struct and functions (#436) (@albangossard)
- CompatHelper: add new compat entry for DifferentiationInterface at version 0.7, (keep existing compat) (#439) (@github-actions[bot])
- Review documentation (#440) (@albangossard)
- Review documentation (#442) (@facusapienza21)
- Final merge into `main` for 1.0 release :) (#444) (@JordiBolibar)

**Closed issues:**
- Prepare notebook with a demo (#40)
- Move all dates to calendar years (#67)
- Enforce static types (#103)
- Fix warnings in CI (#117)
- Try `GaussAdjoint` (#145)
- Try KANs in UDEs (#149)
- Design interface to target given parameters or subparts of equations for (functional) inversions (#154)
- Replace closures with passing explicit parameters (#156)
- Create custom `show` method for main types (#172)
- Environment only working with regressed `OrdinaryDiffEqSymplecticRK` version (#178)
- Check which function should map ice thickness to ice velocity in the loss (#291)
- Update functional inversion tutorial with new API (#293)
- Move continuous adjoint and discrete VJP code together (#295)
- Design API laws (#302)
- Testing how to use finite differences for testing (#305)
- Establish type stability unit tests (#309)
- Avoid running tests twice for PRs and push (#311)
- Implement inversion with gridded ice velocity in the loss (#313)
- Fix tests that involve MB (#314)
- Restore test coverage (#335)
- Implement standard inversion tests (#339)
- Log training stats with tensorboard (#342)
- Multiprocessing freezes (#344)
- Update documentation (#351)
- Remove out-of-place SIA implementation (#353)
- Check gradient computed by the manual adjoint method when MB is enabled + fix it (#365)
- Add initial condition inversion (#366)
- 1.0 release wishlist (#371)
- Fix the custom `Base.show` methods in the documentation (#389)
- Investigate use of private registry (#408)
- Add VJP tests of the regularization (#410)
- Rename files related to inversions (#415)
- Make forward simulation stops at relevant tstops based on data (#416)
- Rename Diffusivityꜛ and "ꜛ" functions (#423)
- Loss function evaluation requires evaluations of interpolation when this is not defined (#432)

v0.3.0

Toggle v0.3.0's commit message
[Diff since v0.2.0](v0.2.0...v0.3.0)

- ODINN.jl API for functional inversion has change with respect to previous versions. Now a Target object is design for each custom inversion
- Custom continuous adjoint with discrete, continuous, and Enzyme VJPs used for computation of the gradient in the inversion

**Merged pull requests:**
- UDEs working with experiment with different MB (#122) (@JordiBolibar)
- First prototype of new API (#125) (@JordiBolibar)
- New API prototype (#127) (@JordiBolibar)
- New API prototype (#128) (@JordiBolibar)
- CompatHelper: bump compat for Flux to 0.14, (keep existing compat) (#129) (@github-actions[bot])
- 🔄 synced file(s) with ODINN-SciML/Sleipnir.jl (#130) (@facusapienza21)
- CompatHelper: bump compat for Polynomials to 4, (keep existing compat) (#131) (@github-actions[bot])
- CompatHelper: bump compat for AbbreviatedStackTraces to 0.2, (keep existing compat) (#132) (@github-actions[bot])
- CompatHelper: add new compat entry for Downloads at version 1, (keep existing compat) (#133) (@github-actions[bot])
- CompatHelper: add new compat entry for Statistics at version 1, (keep existing compat) (#134) (@github-actions[bot])
- CompatHelper: bump compat for Makie to 0.20, (keep existing compat) (#135) (@github-actions[bot])
- CompatHelper: bump compat for CairoMakie to 0.11, (keep existing compat) (#136) (@github-actions[bot])
- CompatHelper: bump compat for GR to 0.73, (keep existing compat) (#138) (@github-actions[bot])
- New architecture using Sleipnir, Huginn and Muninn (#139) (@JordiBolibar)
- CompatHelper: bump compat for GeoMakie to 0.6, (keep existing compat) (#140) (@github-actions[bot])
- CompatHelper: bump compat for OptimizationOptimisers to 0.2, (keep existing compat) (#142) (@github-actions[bot])
- 🔄 synced file(s) with ODINN-SciML/Sleipnir.jl (#143) (@facusapienza21)
- Added structure and utilities for classic inversion (#144) (@vivekag7)
- [WIP] Debugging Reverse after merge with ForwardDiff setup (#150) (@JordiBolibar)
- Migrate to pure julia (#170) (@albangossard)
- First rough version of the docs (#176) (@JordiBolibar)
- First rough version of the docs (#177) (@JordiBolibar)
- Fix OrdinaryDiffEqSymplecticRK dependency (#179) (@albangossard)
- Including documentation in the new architecture dev branch (#180) (@JordiBolibar)
- update compat helper's default branch (#181) (@albangossard)
- CompatHelper: bump compat for AbbreviatedStackTraces to 0.3, (keep existing compat) (#190) (@github-actions[bot])
- CompatHelper: add new compat entry for Reexport at version 1, (keep existing compat) (#191) (@github-actions[bot])
- CompatHelper: add new compat entry for Sleipnir at version 0.7, (keep existing compat) (#192) (@github-actions[bot])
- CompatHelper: add new compat entry for Cthulhu at version 2, (keep existing compat) (#193) (@github-actions[bot])
- CompatHelper: bump compat for Optimization to 4, (keep existing compat) (#194) (@github-actions[bot])
- CompatHelper: add new compat entry for Zygote at version 0.7, (keep existing compat) (#195) (@github-actions[bot])
- CompatHelper: bump compat for Flux to 0.16, (keep existing compat) (#196) (@github-actions[bot])
- CompatHelper: add new compat entry for ImageFiltering at version 0.7, (keep existing compat) (#197) (@github-actions[bot])
- CompatHelper: add new compat entry for GeoStats at version 0.74, (keep existing compat) (#198) (@github-actions[bot])
- CompatHelper: add new compat entry for Muninn at version 0.4, (keep existing compat) (#200) (@github-actions[bot])
- CompatHelper: add new compat entry for Optimisers at version 0.4, (keep existing compat) (#201) (@github-actions[bot])
- CompatHelper: bump compat for OptimizationOptimisers to 0.3, (keep existing compat) (#202) (@github-actions[bot])
- CompatHelper: bump compat for JLD2 to 0.5, (keep existing compat) (#203) (@github-actions[bot])
- CompatHelper: bump compat for OptimizationOptimJL to 0.4, (keep existing compat) (#204) (@github-actions[bot])
- CompatHelper: bump compat for JLD2 to 0.5, (keep existing compat) (#205) (@github-actions[bot])
- CompatHelper: bump compat for OptimizationOptimJL to 0.4, (keep existing compat) (#206) (@github-actions[bot])
- CompatHelper: bump compat for OrdinaryDiffEqSymplecticRK to 1, (keep existing compat) (#207) (@github-actions[bot])
- Move back to pinned Project.toml + ongoing plotting in docs tutorial (#208) (@JordiBolibar)
- Documentation updated  (#224) (@JordiBolibar)
- Includes test for dummy gradient and fix propagated bugs (#226) (@facusapienza21)
- Fix type stability (#228) (@albangossard)
- Migrate all `Flux` to `Lux` (#229) (@facusapienza21)
- Update and improve docs (#236) (@JordiBolibar)
- Custom adjoint testing (#239) (@ChrisRackauckas)
- Custom adjoint tests (#241) (@albangossard)
- Custom continuous adjoint + tests of the different adjoints (#242) (@albangossard)
- Integration of Enzyme VJP in the custom adjoint pipeline (#243) (@albangossard)
- Fix Enzyme VJP calls + add tests (#245) (@albangossard)
- Gradient check with the Halfar solution + add custom loss struct (#265) (@albangossard)
- Fixes in Continuous adjoint and MWE working for multiple glaciers (#266) (@facusapienza21)
- Add VJP benchmark in CI (#268) (@albangossard)
- Multiprocessing and precompilation improved (#269) (@JordiBolibar)
- Merge changes from `customAdjoint` (#274) (@facusapienza21)
- Ice velocity integration (#294) (@albangossard)
- Increase distance_to_border in halfar tests to reduce the error (#296) (@albangossard)
- Design of API for custom target inversion (#298) (@facusapienza21)
- Functional inversion tutorial (#299) (@JordiBolibar)
- Improve Continuous VJP computation (#300) (@facusapienza21)
- Functional inversion tutorial (#304) (@albangossard)
- Make SIA2D_target type stable (#310) (@JordiBolibar)
- Fixes following type stability changes in Huginn (#315) (@albangossard)

**Closed issues:**
- Test for the forward-backward method based on analytical solution (#16)
- Make parameters local (#36)
- Potential improvements on `Parameters` subtypes (#65)
- Properly optimize Julia code (#68)
- Make Glathida functions work in a `pmap` (#71)
- Merge common code into functions between `iceflow.jl` and `inversions.jl` (#72)
- New API (#82)
- Create workflow to download massive `gdir` data using `wget` (#83)
- Bug with integration Fiona + OGGM + ODINN  (#86)
- Make `generate_batches` function general by using `varargs` (#89)
- Create `Glacier` or `Gdir` type to store glacier state and initial conditions (#93)
- Huge RAM usage when using multiprocessing - PyCall and OGGM suspected (#96)
- Revise closures and functions within functions (#113)
- Fix cache of Julia precompiled files for GitHub Actions CI (#115)
- Experiment of UDE sensitivity to MB differences (#120)
- Create documentation (#121)
- Check values of `S` retrieved from OGGM (#124)
- Fully migrate from `Flux.jl` to `Lux.jl` (#152)
- Update docstrings following SciML style (#155)
- Remove unnecessary dependencies (#158)
- Change vector parameter for optimization variable to ComponentArray (#227)
- Use multiple dispatch to update the adjoint in `gradient.jl` (#244)
- Remove precompilation logs in every worker when using multiprocessing (#246)
- Cache precompilation on every worker from main worker's cache when using multiprocessing (#263)
- Combine all tests for gradient calculation into one single function (#267)
- Clean Compat Helper old branches (#270)
- Use Revise.jl in workers and rethink anonymous functions (#301)

v0.2.0

Toggle v0.2.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
UDEs working with experiment with different MB (#122)

Fixed a few bugs in the UDE workflow. The UDEs work suprisingly well with a different MB model. This means that using surface velocities is really a well proxy, which is robust to changes in surface elevation.

v0.1.0

Toggle v0.1.0's commit message
## ODINN v0.1.0

First release

**Closed issues:**
- Implicit method needed to solve the SIA (#1)
- Global Parameter setting file (#3)
- Mass balance needs to be added in small timesteps in forward model (#4)
- Use Sparse Arrays for glacier matrices (#5)
- Create fake A(ELA) function (#6)
- Generate training dataset with fake A function (#7)
- Train UDE on A for the SIA PDE (#8)
- A as a function of long-term temperature (#9)
- LoadError: Mutating arrays is not supported using Zygote (#10)
- Include different numerical methods in the DE solvers and add them as parameter options.  (#11)
- Initialize UA with stable value (#13)
- Physical constrains in the NN (#17)
- Investigate use of batches for UDE training (#18)
- Optimize code with `SparseArrays` (#19)
- Loss function using surface velocities (#20)
- Parallelize ice flow model (#21)
- Use initial glacier conditions from OGGM (#25)
- Formalize Python and OGGM installation and folder structure (#30)
- UDE not training with OGGM initial state (#31)
- Train on multiple glaciers (#35)

**Merged pull requests:**
- Staggered grid keeps original size(H) (#12) (@JordiBolibar)
- Backpropagation working with Tullio + damping ongoing (#14) (@JordiBolibar)
- Diffeqops merge with other branch (#15) (@JordiBolibar)
- Missing dependency added (#23) (@JordiBolibar)
- Training UDEs with ice velocities (`V`)  (#24) (@JordiBolibar)
- Corrections of surface velocity + minor changes (#26) (@facusapienza21)
- ODINN integrated with OGGM (#27) (@JordiBolibar)
- Combined loss function with `H` and `V`  (#28) (@JordiBolibar)
- Benchmarks added + attempt to normalize loss function (#32) (@JordiBolibar)
- Huge speed-up + Cuffey and Paterson `A` fake law + Real climate data (#37) (@JordiBolibar)
- Training UDEs with any glacier on Earth (#39) (@JordiBolibar)
- Retraining of UDEs + pretty dataset plots (#41) (@JordiBolibar)
- Notebooks moved to separate repository (#42) (@JordiBolibar)
- First release (#44) (@JordiBolibar)
- Small error fix + repo structural changes (#45) (@JordiBolibar)
- First release (#46) (@JordiBolibar)
- Small error fix + docstrings added for many functions (#47) (@JordiBolibar)
- Compat added to Project.toml and small fix (#48) (@JordiBolibar)
- Compat change for package release (#49) (@JordiBolibar)
- Project fix for package release (#50) (@JordiBolibar)
- Fix on Project.toml for first release (#51) (@JordiBolibar)
- First release (#52) (@JordiBolibar)