Skip to content

Commit

Permalink
Re-implement common interface bindings (#114)
Browse files Browse the repository at this point in the history
* Re-add OrdinaryDiffEq and remove DataStructures from Project

* Update Project.toml

* WIP: re-design common interface with DiffEq ecosystem

* Add support for `parse_eqs` kwarg

* Add stepsize control for TaylorMethod, fix TaylorMethodCache, add empty warnkeywords, add verbose kwarg

* Support high-dimensional arrays in jetcoeffs!, stepsize

* Fix stepping methods, re-add keyword warning list, add evaluate! method for high-dim arrays

* Update common interface tests

* Add time-dependent scalar ODE in common interface; fix other tests
[ci skip]

* Fix error message
[skip ci]

* Remove unused imports
[skip ci]

* Last minute fixes

* Update .gitignore

* Remove unused lines in tests

* Update tests

* Update tests comments

* Minor fixes

* Add working version of continuous callback test

* Add update_jetcoeffs_cache! for callback handling

* Add vector continuous callback tests in common interface

* Update docs
[ci skip]

* Allow AbstractArray{...,N} in parsed jetcoeffs!

* Update docs

* Simplify oop if else block

* Add StaticArrays to test deps

* Add support for DynamicalODE in common interface

* Add DynamicalODE tests from #108 (thanks to @SebastianM-C)

* Remove timed integrations

* Fix continuous and vector callbacks
via overloading DiffEqBase.addsteps! for ::TaylorMethodCache

* Add comments
[skip ci]

* In-place DynamicalODEProblem: don't convert to ODEProblem

* Fix oop DynamicalODEProblem and add some tests

* Fix oop ODEProblem and DynamicalODEProblem

* Add/update tests

* DynamicalODEProblem: when using `SVector` in oop problems, convert initial condition to mutable array

* Add comments
[skip ci]

* Update .gitignore

* Update test/common.jl

* Address review

* Remove show

* Update TaylorSeries version
  • Loading branch information
PerezHz authored Dec 5, 2020
1 parent dbbd504 commit 6cb5399
Show file tree
Hide file tree
Showing 9 changed files with 419 additions and 181 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ examples/.ipynb_checkpoints
examples/JuliaCon2017/.ipynb_checkpoints/
docs/build/
docs/site/
.vscode/
13 changes: 9 additions & 4 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,38 @@ repo = "https://github.com/PerezHz/TaylorIntegration.jl.git"
version = "0.8.5"

[deps]
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
Espresso = "6912e4f1-e036-58b0-9138-08d1e6358ea9"
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
Requires = "ae029012-a4dd-5104-9daa-d747884805df"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
TaylorSeries = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea"

[compat]
DataStructures = "0.17.2"
DiffEqBase = "6"
Elliptic = "0.5, 1.0"
Espresso = "0.6.1"
OrdinaryDiffEq = "5"
RecursiveArrayTools = "2.2"
Reexport = "0.2"
Requires = "0.5.2, 1.0"
TaylorSeries = "0.10.2"
StaticArrays = "0.12.5"
TaylorSeries = "0.10.9"
julia = "1"

[extras]
Elliptic = "b305315f-e792-5b7a-8f41-49f472929428"
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
TaylorSeries = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["TaylorSeries", "LinearAlgebra", "Test", "Elliptic", "InteractiveUtils", "Pkg"]
test = ["TaylorSeries", "LinearAlgebra", "Test", "Elliptic", "InteractiveUtils", "Pkg", "StaticArrays"]
8 changes: 5 additions & 3 deletions docs/src/common.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@ aspects, we do not rely on them simply because using properly `@taylorize`
improves the performance.

!!! note
Currently, the only keyword argument supported by `DiffEqBase.solve` that is
implemented in `TaylorIntegration.jl` is `:saveat`. The keyword argument
Currently, the only keyword arguments supported by `DiffEqBase.solve` that
are implemented in `TaylorIntegration.jl` are `:saveat` and `:tstops`. There
is also experimental support for `:callback`, both discrete and continuous;
some examples may be found in `test/common.jl`. The keyword argument
`:parse_eqs` is available in order to control the use of methods defined
via [`@taylorize`](@ref).

Expand Down Expand Up @@ -270,4 +272,4 @@ containing the differential equations.

[1] Murray, Carl D., Stanley F. Dermott. Solar System dynamics. Cambridge University Press, 1999.

[2] [DiffEqBenchmarks.jl/DynamicalODE](https://nbviewer.jupyter.org/github/JuliaDiffEq/DiffEqBenchmarks.jl/blob/master/DynamicalODE/Henon-Heiles_energy_conservation_benchmark.ipynb)
[2] [SciMLBenchmarks.jl/DynamicalODE](https://benchmarks.sciml.ai/html/DynamicalODE/Henon-Heiles_energy_conservation_benchmark.html)
4 changes: 2 additions & 2 deletions docs/src/taylorize.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,8 @@ list some limitations and advices.
- The macro allows to use array declarations through `Array`, but other ways
(e.g. `similar`) are not yet implemented.

- Avoid using variables prefixed by an underscore, in particular `_T` and `_S`;
using them may lead to name collisions with some internal variables.
- Avoid using variables prefixed by an underscore, in particular `_T`, `_S` and
`_N`; using them may lead to name collisions with some internal variables.

- Broadcasting is not recognized by `@taylorize`.

Expand Down
Loading

0 comments on commit 6cb5399

Please sign in to comment.