Skip to content

Commit b9083ff

Browse files
Merge pull request #3 from Shreyas-Ekanathan/head
sync
2 parents 84ef783 + 0ba696d commit b9083ff

23 files changed

+1898
-1618
lines changed

lib/OrdinaryDiffEqBDF/Project.toml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name = "OrdinaryDiffEqBDF"
2+
uuid = "6ad6398a-0878-4a85-9266-38940aa047c8"
3+
authors = ["ParamThakkar123 <[email protected]>"]
4+
version = "1.0.0"
5+
6+
[deps]
7+
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
8+
TruncatedStacktraces = "781d530d-4396-4725-bb49-402e4bee1e77"
9+
MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221"
10+
MacroTools = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
11+
FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898"
12+
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
13+
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
14+
NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56"
15+
ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
16+
17+
[extras]
18+
DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d"
19+
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
20+
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
21+
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
22+
23+
[compat]
24+
julia = "1.10"
25+
26+
[targets]
27+
test = ["DiffEqDevTools", "Random", "SafeTestsets", "Test"]
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
module OrdinaryDiffEqBDF
2+
3+
import OrdinaryDiffEq: alg_order, calculate_residuals!,
4+
initialize!, perform_step!, @unpack, unwrap_alg,
5+
calculate_residuals, alg_extrapolates,
6+
OrdinaryDiffEqAlgorithm,
7+
OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache,
8+
OrdinaryDiffEqNewtonAdaptiveAlgorithm,
9+
OrdinaryDiffEqNewtonAlgorithm,
10+
AbstractController, DEFAULT_PRECS,
11+
CompiledFloats, uses_uprev,
12+
NLNewton, alg_cache, _vec, _reshape, @cache,
13+
isfsal, full_cache, build_nlsolver,
14+
nlsolve!, nlsolvefail, isnewton,
15+
constvalue, _unwrap_val,
16+
DIRK, set_new_W!,
17+
du_alias_or_new, trivial_limiter!,
18+
ImplicitEulerConstantCache,
19+
ImplicitEulerCache, COEFFICIENT_MULTISTEP,
20+
markfirststage!, UJacobianWrapper, mul!,
21+
issplit, qsteady_min_default, qsteady_max_default,
22+
get_current_alg_order, get_current_adaptive_order,
23+
default_controller, stepsize_controller!, step_accept_controller!,
24+
step_reject_controller!, post_newton_controller!,
25+
u_modified!
26+
using TruncatedStacktraces, MuladdMacro, MacroTools, FastBroadcast, RecursiveArrayTools
27+
import StaticArrays: SArray, MVector, SVector, @SVector, StaticArray, MMatrix, SA
28+
using LinearAlgebra: I
29+
using ArrayInterface
30+
31+
include("algorithms.jl")
32+
include("alg_utils.jl")
33+
include("bdf_utils.jl")
34+
include("bdf_caches.jl")
35+
include("controllers.jl")
36+
include("bdf_perform_step.jl")
37+
38+
export ABDF2, QNDF1, QBDF1, QNDF2, QBDF2, QNDF, QBDF, FBDF,
39+
SBDF2, SBDF3, SBDF4, MEBDF2, IMEXEuler, IMEXEulerARK
40+
41+
end
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
alg_extrapolates(alg::ABDF2) = true
2+
alg_extrapolates(alg::SBDF) = true
3+
alg_extrapolates(alg::MEBDF2) = true
4+
5+
alg_order(alg::ABDF2) = 2
6+
alg_order(alg::SBDF) = alg.order
7+
alg_order(alg::QNDF1) = 1
8+
alg_order(alg::QNDF2) = 2
9+
alg_order(alg::QNDF) = 1 #dummy value
10+
alg_order(alg::MEBDF2) = 2
11+
alg_order(alg::FBDF) = 1 #dummy value
12+
13+
issplit(alg::SBDF) = true
14+
15+
qsteady_min_default(alg::FBDF) = 9 // 10
16+
17+
qsteady_max_default(alg::QNDF) = 2 // 1
18+
qsteady_max_default(alg::QNDF2) = 2 // 1
19+
qsteady_max_default(alg::QNDF1) = 2 // 1
20+
qsteady_max_default(alg::FBDF) = 2 // 1
21+
22+
get_current_alg_order(alg::QNDF, cache) = cache.order
23+
get_current_alg_order(alg::FBDF, cache) = cache.order
24+
25+
get_current_adaptive_order(alg::QNDF, cache) = cache.order
26+
get_current_adaptive_order(alg::FBDF, cache) = cache.order

0 commit comments

Comments
 (0)