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

Add Lobatto IIIa-c and Radau IIa solvers #178

Merged
merged 70 commits into from
Sep 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
84b5604
Added tests
axla-io Mar 8, 2024
5644872
Solve routines for FIRM and MIRK
axla-io Mar 8, 2024
b5fa089
Added adaptivity
axla-io Mar 8, 2024
ed8aac4
Added alg_utils
axla-io Mar 8, 2024
1f410e2
Added algorithms
axla-io Mar 8, 2024
b7e6e74
Updated BoundaryValueDiffEq.jl
axla-io Mar 8, 2024
a411397
Added collocation
axla-io Mar 8, 2024
6112055
Added interpolation
axla-io Mar 8, 2024
ec2bde7
Added radau and lobatto tableaus
axla-io Mar 8, 2024
eb58a2a
Added types
axla-io Mar 8, 2024
d2ce79d
updated sparse jacobians
axla-io Mar 8, 2024
cfdf839
Updated utils
axla-io Mar 8, 2024
a229cf5
General debugging
axla-io Mar 9, 2024
13a935d
Tests not related to adaptivity now work
axla-io Mar 9, 2024
6c65096
sparse jac modification
axla-io Mar 9, 2024
531c735
OOP convergence
axla-io Mar 9, 2024
8a0fa31
Tests that work
axla-io Mar 9, 2024
87a496e
Working adaptivity
axla-io Mar 9, 2024
956ae89
Tests run for nested
axla-io Mar 9, 2024
23b90ea
Expanded FIRK interpolations work
axla-io Mar 9, 2024
dedd0c6
Interpolation runs for nested
axla-io Mar 9, 2024
b5dd3e0
Working
axla-io Mar 9, 2024
f65cecc
Fixed vector of vector example
axla-io Mar 16, 2024
ff03c82
testing nested
axla-io Mar 16, 2024
1874be4
Test nest tol
axla-io Mar 17, 2024
5928460
Split tests to nested and non nested
axla-io Mar 17, 2024
e96c3e3
Tolerance docstring
axla-io Mar 17, 2024
abd6a84
Expanded tests are passing
axla-io Mar 31, 2024
aa3ae08
Nested tested
axla-io Mar 31, 2024
6c76956
Updated docs, removed double lines
axla-io Mar 31, 2024
2d80a40
Removed tabs in formatting
axla-io Apr 1, 2024
9cfa960
Merge branch 'master' into al/properlobatto
ErikQQY Jul 21, 2024
b131653
Lobatto methods working
ErikQQY Jul 21, 2024
b77d5a0
Upgrade to the latest ADTypes
ErikQQY Jul 22, 2024
49579a4
Skip tests for overconstrained and underconstrained BVP
ErikQQY Jul 22, 2024
6997d5c
Fix interpolation when plotting
ErikQQY Jul 24, 2024
969a985
Merge branch 'master' into al/properlobatto
ErikQQY Aug 17, 2024
ab4b59f
All test cases should work now
ErikQQY Aug 17, 2024
aabbc4d
Merge branch 'master' into al/properlobatto
ErikQQY Aug 17, 2024
772762c
Remove Aqua ambiguities test
ErikQQY Aug 17, 2024
1dd7eba
Put FIRK nlls tests into different test group
ErikQQY Aug 18, 2024
df610a7
Fix RAT related errors
ErikQQY Aug 18, 2024
ff74dd2
Fix deprecated AutoSparse
ErikQQY Aug 18, 2024
9a02a0c
Fix NLLS tests for FIRK
ErikQQY Aug 18, 2024
4048f45
Fix deprecated errors and only test FIRK for now
ErikQQY Aug 19, 2024
7241024
Don't test all methods and fix time span error
ErikQQY Aug 21, 2024
cbce3df
Fix deprecated usage of RAT
ErikQQY Aug 21, 2024
ee7440c
Fix interpolation for nested FIRK
ErikQQY Aug 22, 2024
ef58021
Fix typo
ErikQQY Aug 22, 2024
e03858b
Add the other tests back and clean up
ErikQQY Aug 24, 2024
a945fa0
All methods are working now
ErikQQY Aug 25, 2024
3222a19
Merge branch 'master' into al/properlobatto
ErikQQY Aug 25, 2024
35cc24a
Fix several test_broken and less allocation
ErikQQY Aug 26, 2024
7df0a73
Fix BigFloat support for FIRK solvers
ErikQQY Aug 26, 2024
c414345
Fix several test_broken
ErikQQY Aug 26, 2024
0cba86b
Fix interp_eval
ErikQQY Aug 26, 2024
27154fa
Use ForwardDiff in FIRK test cases
ErikQQY Aug 27, 2024
d67f975
Upgrade OrdinaryDiffEq
ErikQQY Aug 27, 2024
b92e192
Split into different test groups
ErikQQY Aug 28, 2024
7882dcb
Dont specify os
ErikQQY Aug 28, 2024
7fb997f
Dont specify os
ErikQQY Aug 28, 2024
6aacb4b
Put all of the tests into different test groups
ErikQQY Aug 28, 2024
0dfe5c1
Use more test groups
ErikQQY Aug 29, 2024
b491e65
Fix Interpolation errors and format
ErikQQY Aug 29, 2024
ca3fcc4
Set Aqua tests as test_broken
ErikQQY Aug 29, 2024
8bb2ec4
Fix deprecation errors
ErikQQY Aug 29, 2024
1f87d85
Skip Aqua for unrelated depwarn
ErikQQY Aug 29, 2024
f39a827
Fix nlls tests cost too much time
ErikQQY Aug 29, 2024
e83e925
Skip RadauIIa5 with GaussNewton for now
ErikQQY Aug 30, 2024
f8f5b35
Refactor the internal of FIRK
ErikQQY Sep 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/workflows/Tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ jobs:
strategy:
fail-fast: false
matrix:
os:
- "ubuntu-latest"
- "macos-latest"
- "windows-latest"
group:
- "CPU"
- "MIRK"
- "MISC"
- "SHOOTING"
- "FIRK(EXPANDED)"
- "FIRK(NESTED)"
- "WRAPPERS"
uses: "SciML/.github/.github/workflows/tests.yml@v1"
with:
os: "${{ matrix.os }}"
group: "${{ matrix.group }}"
secrets: "inherit"
4 changes: 2 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ BoundaryValueDiffEqODEInterfaceExt = "ODEInterface"
[compat]
ADTypes = "1.2"
Adapt = "4"
Aqua = "0.8"
Aqua = "0.8.7"
ArrayInterface = "7.7"
BandedMatrices = "1.4"
ConcreteStructs = "0.2.3"
Expand All @@ -51,7 +51,7 @@ LinearSolve = "2.21"
Logging = "1.10"
NonlinearSolve = "3.8.1"
ODEInterface = "0.5"
OrdinaryDiffEq = "6.63"
OrdinaryDiffEq = "6.88.1"
PreallocationTools = "0.4.24"
PrecompileTools = "1.2"
Preferences = "1.4"
Expand Down
19 changes: 12 additions & 7 deletions src/BoundaryValueDiffEq.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ module BoundaryValueDiffEq

import PrecompileTools: @compile_workload, @setup_workload

using ADTypes, Adapt, ArrayInterface, DiffEqBase, ForwardDiff, LinearAlgebra, NonlinearSolve,
OrdinaryDiffEq, Preferences, RecursiveArrayTools, Reexport, SciMLBase, Setfield,
SparseDiffTools
using ADTypes, Adapt, ArrayInterface, DiffEqBase, ForwardDiff, LinearAlgebra,
NonlinearSolve, OrdinaryDiffEq, Preferences, RecursiveArrayTools, Reexport, SciMLBase,
Setfield, SparseDiffTools

using PreallocationTools: PreallocationTools, DiffCache

Expand All @@ -30,9 +30,12 @@ include("algorithms.jl")
include("alg_utils.jl")

include("mirk_tableaus.jl")
include("lobatto_tableaus.jl")
include("radau_tableaus.jl")

include("solve/single_shooting.jl")
include("solve/multiple_shooting.jl")
include("solve/firk.jl")
include("solve/mirk.jl")

include("collocation.jl")
Expand Down Expand Up @@ -108,8 +111,7 @@ end
resid[3] = solₜ₂[2] + 1.729109
return nothing
end
bc1_nlls = (sol, p, t) -> [
sol[:, 1][1], sol[:, end][1] - 1, sol[:, end][2] + 1.729109]
bc1_nlls = (sol, p, t) -> [sol[:, 1][1], sol[:, end][1] - 1, sol[:, end][2] + 1.729109]

bc1_nlls_a! = (resid, ua, p) -> (resid[1] = ua[1])
bc1_nlls_b! = (resid, ub, p) -> (resid[1] = ub[1] - 1;
Expand Down Expand Up @@ -205,8 +207,7 @@ end
resid[3] = solₜ₂[2] + 1.729109
return nothing
end
bc1_nlls = (sol, p, t) -> [
sol(0.0)[1], sol(100.0)[1] - 1, sol(1.0)[2] + 1.729109]
bc1_nlls = (sol, p, t) -> [sol(0.0)[1], sol(100.0)[1] - 1, sol(1.0)[2] + 1.729109]

tspan = (0.0, 100.0)
u0 = [0.0, 1.0]
Expand Down Expand Up @@ -273,6 +274,10 @@ export Shooting, MultipleShooting
export MIRK2, MIRK3, MIRK4, MIRK5, MIRK6
export BVPM2, BVPSOL, COLNEW # From ODEInterface.jl

export RadauIIa1, RadauIIa2, RadauIIa3, RadauIIa5, RadauIIa7
export LobattoIIIa2, LobattoIIIa3, LobattoIIIa4, LobattoIIIa5
export LobattoIIIb2, LobattoIIIb3, LobattoIIIb4, LobattoIIIb5
export LobattoIIIc2, LobattoIIIc3, LobattoIIIc4, LobattoIIIc5
export MIRKJacobianComputationAlgorithm, BVPJacobianAlgorithm

end
Loading
Loading