-
-
Notifications
You must be signed in to change notification settings - Fork 259
Expand file tree
/
Copy pathOrdinaryDiffEqNonlinearSolve.jl
More file actions
86 lines (74 loc) · 3.14 KB
/
OrdinaryDiffEqNonlinearSolve.jl
File metadata and controls
86 lines (74 loc) · 3.14 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
module OrdinaryDiffEqNonlinearSolve
using ADTypes: ADTypes, dense_ad, AutoForwardDiff, AutoFiniteDiff
import SciMLBase
import SciMLBase: init, solve, solve!, remake
using SciMLBase: DAEFunction, DEIntegrator, NonlinearFunction, NonlinearProblem,
NonlinearLeastSquaresProblem, LinearProblem, ODEProblem, DAEProblem,
update_coefficients!, get_tmp_cache, AbstractSciMLOperator, ReturnCode,
AbstractNonlinearProblem, LinearAliasSpecifier
import DiffEqBase
import PreallocationTools: dualcache, get_tmp
using SimpleNonlinearSolve: SimpleTrustRegion, SimpleGaussNewton
using NonlinearSolve: FastShortcutNonlinearPolyalg, FastShortcutNLLSPolyalg, NewtonRaphson,
step!, NonlinearVerbosity
using MuladdMacro: @muladd
using FastBroadcast: @..
import FastClosures: @closure
using LinearAlgebra: UniformScaling, UpperTriangular, givens, cond, dot, lmul!, axpy!
import LinearAlgebra
using SparseArrays: SparseMatrixCSC
import ArrayInterface: ArrayInterface, ismutable, restructure
import LinearSolve: OperatorAssumptions
import LinearSolve
import ForwardDiff: ForwardDiff, pickchunksize
using ForwardDiff: Dual
using LinearSolve: I, rmul!, norm, mul!, ldiv!
using RecursiveArrayTools: recursivecopy!
import SciMLStructures: canonicalize, Tunable, isscimlstructure
import OrdinaryDiffEqCore
import SciMLOperators: islinear
import OrdinaryDiffEqCore: nlsolve_f, set_new_W!, set_W_γdt!
@static if isdefined(OrdinaryDiffEqCore, :default_nlsolve)
import OrdinaryDiffEqCore: default_nlsolve
end
using OrdinaryDiffEqCore: resize_nlsolver!, _initialize_dae!,
AbstractNLSolverAlgorithm, AbstractNLSolverCache,
AbstractNLSolver, NewtonAlgorithm,
OverrideInit, ShampineCollocationInit, BrownFullBasicInit,
_vec, _unwrap_val, DAEAlgorithm,
OrdinaryDiffEqAdaptiveImplicitAlgorithm,
OrdinaryDiffEqImplicitAlgorithm,
OrdinaryDiffEqCompositeAlgorithm,
_reshape, calculate_residuals, calculate_residuals!,
has_special_newton_error, isadaptive,
TryAgain, DIRK, COEFFICIENT_MULTISTEP, NORDSIECK_MULTISTEP, GLM,
FastConvergence, Convergence,
SlowConvergence, VerySlowConvergence, Divergence, NLStatus,
MethodType, alg_order, error_constant,
alg_extrapolates, resize_J_W!, has_autodiff, find_algebraic_vars_eqs
import OrdinaryDiffEqCore: _initialize_dae!, _default_dae_init!,
isnewton, get_W, isfirstcall, isfirststage,
isJcurrent, get_new_W_γdt_cutoff, resize_nlsolver!, apply_step!,
postamble!, @SciMLMessage
import OrdinaryDiffEqDifferentiation: update_W!, is_always_new, build_uf, build_J_W,
WOperator, StaticWOperator, wrapprecs,
build_jac_config, dolinsolve, alg_autodiff,
resize_jac_config!
import StaticArrays: SArray, MVector, SVector, @SVector, StaticArray, MMatrix, SA,
StaticMatrix
@static if isdefined(SciMLBase, :OrdinaryDiffEqTag)
import SciMLBase: OrdinaryDiffEqTag
elseif isdefined(DiffEqBase, :OrdinaryDiffEqTag)
import DiffEqBase: OrdinaryDiffEqTag
else
struct OrdinaryDiffEqTag end
end
include("type.jl")
include("utils.jl")
include("deprecated.jl")
include("nlsolve.jl")
include("functional.jl")
include("newton.jl")
include("initialize_dae.jl")
export BrownFullBasicInit, ShampineCollocationInit
end