Skip to content

Commit 9bb1d69

Browse files
committed
Integrate Timer Outputs
1 parent 3806115 commit 9bb1d69

20 files changed

+522
-475
lines changed

Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
2727
SparseDiffTools = "47a9eef4-7e08-11e9-0b38-333d64bd3804"
2828
StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
2929
SumTypes = "8e1ec7a9-0e02-4297-b0fe-6433085c89f2"
30+
TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
3031

3132
[weakdeps]
3233
BandedMatrices = "aae01518-5342-5314-be14-df237901396f"

src/NonlinearSolve.jl

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,18 @@ import Reexport: @reexport
88
import PrecompileTools: @recompile_invalidations, @compile_workload, @setup_workload
99

1010
@recompile_invalidations begin
11-
using ADTypes, DiffEqBase, LazyArrays, LineSearches, LinearAlgebra, LinearSolve, Printf,
12-
SciMLBase, SimpleNonlinearSolve, SparseArrays, SparseDiffTools, SumTypes
11+
using ADTypes, ConcreteStructs, DiffEqBase, FastBroadcast, FastClosures, LazyArrays,
12+
LineSearches, LinearAlgebra, LinearSolve, MaybeInplace, Printf, SciMLBase,
13+
SimpleNonlinearSolve, SparseArrays, SparseDiffTools, SumTypes, TimerOutputs
1314

1415
import ArrayInterface: undefmatrix, can_setindex, restructure, fast_scalar_indexing
15-
import ConcreteStructs: @concrete
1616
import DiffEqBase: AbstractNonlinearTerminationMode,
1717
AbstractSafeNonlinearTerminationMode, AbstractSafeBestNonlinearTerminationMode,
1818
NonlinearSafeTerminationReturnCode, get_termination_mode
19-
import FastBroadcast: @..
20-
import FastClosures: @closure
2119
import FiniteDiff
2220
import ForwardDiff
2321
import ForwardDiff: Dual
2422
import LinearSolve: ComposePreconditioner, InvPreconditioner, needs_concrete_A
25-
import MaybeInplace: @bb
2623
import RecursiveArrayTools: recursivecopy!, recursivefill!
2724

2825
import SciMLBase: AbstractNonlinearAlgorithm, JacobianWrapper, AbstractNonlinearProblem,
@@ -121,14 +118,14 @@ const False = Val(false)
121118
# __alg_print_modifiers(_) = String[]
122119

123120
include("abstract_types.jl")
121+
include("internal/helpers.jl")
124122

125123
include("descent/newton.jl")
126124
include("descent/steepest.jl")
127125
include("descent/dogleg.jl")
128126
include("descent/damped_newton.jl")
129127
include("descent/geodesic_acceleration.jl")
130128

131-
include("internal/helpers.jl")
132129
include("internal/operators.jl")
133130
include("internal/jacobian.jl")
134131
include("internal/forward_diff.jl")
@@ -140,6 +137,7 @@ include("internal/approx_initialization.jl")
140137
include("globalization/line_search.jl")
141138
include("globalization/trust_region.jl")
142139

140+
include("core/generic.jl")
143141
include("core/approximate_jacobian.jl")
144142
include("core/generalized_first_order.jl")
145143
include("core/spectral_methods.jl")

src/abstract_types.jl

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,10 @@ abstract type AbstractNonlinearSolveCache{iip} end
129129

130130
SciMLBase.isinplace(::AbstractNonlinearSolveCache{iip}) where {iip} = iip
131131

132-
import SciMLBase: set_u!
133-
function get_u end
134-
function get_fu end
135-
function set_fu! end
136-
137-
function get_nf end
138-
function get_njacs end
139-
function get_nsteps end
140-
function get_nsolve end
141-
function get_nfactors end
132+
get_fu(cache::AbstractNonlinearSolveCache) = cache.fu
133+
get_u(cache::AbstractNonlinearSolveCache) = cache.u
134+
set_fu!(cache::AbstractNonlinearSolveCache, fu) = (cache.fu = fu)
135+
SciMLBase.set_u!(cache::AbstractNonlinearSolveCache, u) = (cache.u = u)
142136

143137
"""
144138
AbstractLinearSolverCache <: Function
@@ -202,3 +196,7 @@ abstract type AbstractTrustRegionMethodCache end
202196
function last_step_accepted(cache::AbstractTrustRegionMethodCache)
203197
return cache.last_step_accepted
204198
end
199+
200+
abstract type AbstractNonlinearSolveJacobianCache{iip} <: Function end
201+
202+
SciMLBase.isinplace(::AbstractNonlinearSolveJacobianCache{iip}) where {iip} = iip

0 commit comments

Comments
 (0)