Tags: ODINN-SciML/ODINN.jl
Tags
[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)
[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)
[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)
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.
## 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)