From 559220ad058701101486b2f914cca9d65521e432 Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Wed, 6 Mar 2024 20:06:01 +0530 Subject: [PATCH 1/2] feat: add discrete saving functionality --- Project.toml | 1 + src/DiffEqBase.jl | 2 ++ src/callbacks.jl | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/Project.toml b/Project.toml index f74b432d0..126625749 100644 --- a/Project.toml +++ b/Project.toml @@ -32,6 +32,7 @@ SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5" Tricks = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" TruncatedStacktraces = "781d530d-4396-4725-bb49-402e4bee1e77" diff --git a/src/DiffEqBase.jl b/src/DiffEqBase.jl index 2fe781dd2..3cda80b75 100644 --- a/src/DiffEqBase.jl +++ b/src/DiffEqBase.jl @@ -103,6 +103,8 @@ PrecompileTools.@recompile_invalidations begin import SciMLBase: AbstractDiffEqLinearOperator # deprecation path + import SymbolicIndexingInterface: parameter_values, current_time + import Tricks end diff --git a/src/callbacks.jl b/src/callbacks.jl index 1ca7b4d95..9e250d295 100644 --- a/src/callbacks.jl +++ b/src/callbacks.jl @@ -586,6 +586,8 @@ function apply_callback!(integrator, callback.affect_neg!(integrator, event_idx) : callback.affect_neg!(integrator) end end + SciMLBase.save_discrete_parameters_after_callback( + integrator.sol, parameter_values(integrator), current_time(integrator)) if integrator.u_modified reeval_internals_due_to_modification!(integrator) @@ -611,6 +613,9 @@ end end integrator.u_modified = true callback.affect!(integrator) + + SciMLBase.save_discrete_parameters_after_callback( + integrator.sol, parameter_values(integrator), current_time(integrator)) if integrator.u_modified reeval_internals_due_to_modification!(integrator, false) # continuous_modification=false end From dd8a670c35b44576035b5cd326adcade6d012433 Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Mon, 29 Apr 2024 11:03:07 +0530 Subject: [PATCH 2/2] temp commit --- test/downstream/Project.toml | 7 +++++-- test/runtests.jl | 22 +++++++++++----------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/test/downstream/Project.toml b/test/downstream/Project.toml index f23327752..9e2ed57e2 100644 --- a/test/downstream/Project.toml +++ b/test/downstream/Project.toml @@ -10,12 +10,15 @@ MultiScaleArrays = "f9640e96-87f6-5992-9c3b-0743c6a49ffa" NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" ODEProblemLibrary = "fdc4e326-1af4-4b90-96e7-779fcce2daa5" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -SciMLSensitivity = "1ed8b502-d754-442c-8d5d-10ac956f44a1" +RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" SDEProblemLibrary = "c72e72a9-a271-4b2b-8966-303ed956772e" -Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SciMLSensitivity = "1ed8b502-d754-442c-8d5d-10ac956f44a1" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" SteadyStateDiffEq = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" +Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4" +SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" diff --git a/test/runtests.jl b/test/runtests.jl index e8afed96d..26a25c6ce 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -41,11 +41,11 @@ end if !is_APPVEYOR && GROUP == "Downstream" activate_downstream_env() - @time @safetestset "Kwarg Warnings" include("downstream/kwarg_warn.jl") - @time @safetestset "Solve Error Handling" include("downstream/solve_error_handling.jl") - @time @safetestset "Null DE Handling" include("downstream/null_de.jl") - @time @safetestset "StaticArrays + AD" include("downstream/static_arrays_ad.jl") - @time @safetestset "Unitful" include("downstream/unitful.jl") + # @time @safetestset "Kwarg Warnings" include("downstream/kwarg_warn.jl") + # @time @safetestset "Solve Error Handling" include("downstream/solve_error_handling.jl") + # @time @safetestset "Null DE Handling" include("downstream/null_de.jl") + # @time @safetestset "StaticArrays + AD" include("downstream/static_arrays_ad.jl") + # @time @safetestset "Unitful" include("downstream/unitful.jl") @time @safetestset "Dual Detection Solution" include("downstream/dual_detection_solution.jl") @time @safetestset "Null Parameters" include("downstream/null_params_test.jl") @time @safetestset "Ensemble Simulations" include("downstream/ensemble.jl") @@ -60,12 +60,12 @@ end if !is_APPVEYOR && GROUP == "Downstream2" activate_downstream_env() - @time @safetestset "Prob Kwargs" include("downstream/prob_kwargs.jl") - @time @safetestset "Unwrapping" include("downstream/unwrapping.jl") - @time @safetestset "Callback BigFloats" include("downstream/bigfloat_events.jl") - @time @safetestset "DE stats" include("downstream/stats_tests.jl") - @time @safetestset "Ensemble AD Tests" include("downstream/ensemble_ad.jl") - @time @safetestset "Community Callback Tests" include("downstream/community_callback_tests.jl") + # @time @safetestset "Prob Kwargs" include("downstream/prob_kwargs.jl") + # @time @safetestset "Unwrapping" include("downstream/unwrapping.jl") + # @time @safetestset "Callback BigFloats" include("downstream/bigfloat_events.jl") + # @time @safetestset "DE stats" include("downstream/stats_tests.jl") + # @time @safetestset "Ensemble AD Tests" include("downstream/ensemble_ad.jl") + # @time @safetestset "Community Callback Tests" include("downstream/community_callback_tests.jl") @time @safetestset "AD via ode with complex numbers" include("downstream/complex_number_ad.jl") @time @testset "Distributed Ensemble Tests" include("downstream/distributed_ensemble.jl") end