-
-
Notifications
You must be signed in to change notification settings - Fork 259
Expand file tree
/
Copy pathOrdinaryDiffEqFIRK.jl
More file actions
68 lines (61 loc) · 2.41 KB
/
OrdinaryDiffEqFIRK.jl
File metadata and controls
68 lines (61 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
module OrdinaryDiffEqFIRK
import OrdinaryDiffEqCore: alg_order, calculate_residuals!,
initialize!, perform_step!, unwrap_alg,
calculate_residuals, default_controller, PredictiveController, PIController,
OrdinaryDiffEqAlgorithm, OrdinaryDiffEqNewtonAdaptiveAlgorithm,
OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache,
OrdinaryDiffEqAdaptiveAlgorithm, CompiledFloats, uses_uprev,
alg_cache, _vec, _reshape, @cache, @threaded, isthreaded,
PolyesterThreads,
isfsal, full_cache, constvalue, _unwrap_val,
differentiation_rk_docstring, trivial_limiter!,
_ode_interpolant!, _ode_addsteps!, AbstractController,
qmax_default, alg_adaptive_order,
stepsize_controller!, step_accept_controller!,
step_reject_controller!,
alg_can_repeat_jac, NewtonAlgorithm,
fac_default_gamma,
get_current_adaptive_order, get_fsalfirstlast,
get_current_alg_order,
isfirk, generic_solver_docstring,
_ad_chunksize_int, _ad_fdtype, _fixup_ad,
LinearAliasSpecifier
using MuladdMacro, DiffEqBase, RecursiveArrayTools, Polyester
using SciMLOperators: AbstractSciMLOperator
using LinearAlgebra: I, UniformScaling, mul!, lu, dot, eigvals
import LinearSolve
import FastBroadcast: @..
import OrdinaryDiffEqCore
import OrdinaryDiffEqCore: _ode_interpolant, _ode_interpolant!, has_stiff_interpolation
import FastPower: fastpower
using OrdinaryDiffEqDifferentiation: UJacobianWrapper, build_J_W, build_jac_config,
UDerivativeWrapper, calc_J!, dolinsolve, calc_J,
islinearfunction
using OrdinaryDiffEqNonlinearSolve: du_alias_or_new, Convergence, FastConvergence, NLStatus,
VerySlowConvergence,
Divergence, get_new_W_γdt_cutoff
import ADTypes: AutoForwardDiff, AbstractADType
import OrdinaryDiffEqCore: PredictiveControllerCache
@static if Base.pkgversion(OrdinaryDiffEqCore) >= v"3.10"
@eval begin
import OrdinaryDiffEqCore: get_current_qmax
end
else
@eval begin
# Fallback for older OrdinaryDiffEqCore: no first-step qmax behavior
@inline get_current_qmax(integrator, qmax) = qmax
end
end
using Reexport
@reexport using SciMLBase
include("algorithms.jl")
include("alg_utils.jl")
include("controllers.jl")
include("firk_caches.jl")
include("firk_tableaus.jl")
include("firk_perform_step.jl")
include("firk_interpolants.jl")
include("firk_addsteps.jl")
include("integrator_interface.jl")
export RadauIIA3, RadauIIA5, RadauIIA9, AdaptiveRadau, GaussLegendre
end