Skip to content

Commit 1dc6232

Browse files
committed
Improve termination conditions
1 parent 50539d0 commit 1dc6232

File tree

4 files changed

+32
-10
lines changed

4 files changed

+32
-10
lines changed

Manifest.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
164164

165165
[[deps.DiffEqBase]]
166166
deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"]
167-
git-tree-sha1 = "e5049e32074cd22f86d74036caf6663637623003"
167+
git-tree-sha1 = "4e661d0beddac31da05e71b79afd769232622de8"
168168
repo-rev = "ap/tstable_termination"
169169
repo-url = "https://github.com/SciML/DiffEqBase.jl"
170170
uuid = "2b5f629d-d688-5b77-993f-72d75c75574e"
@@ -689,9 +689,9 @@ version = "0.1.0"
689689

690690
[[deps.SLEEFPirates]]
691691
deps = ["IfElse", "Static", "VectorizationBase"]
692-
git-tree-sha1 = "897b39ec056c0619ea87adc7eeadba0bec0cf931"
692+
git-tree-sha1 = "f5c896d781486f1d67c8492f0e0ead2c3517208c"
693693
uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa"
694-
version = "0.6.40"
694+
version = "0.6.41"
695695

696696
[[deps.SciMLBase]]
697697
deps = ["ADTypes", "ArrayInterface", "ChainRulesCore", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces", "ZygoteRules"]

src/lbroyden.jl

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,6 @@ function perform_step!(cache::LimitedMemoryBroydenCache{true})
101101
@unpack f, p, du, u = cache
102102
T = eltype(u)
103103

104-
<<<<<<< HEAD
105-
=======
106-
termination_condition = cache.termination_condition(tc_storage)
107-
108-
>>>>>>> a83cf9c (Use the new Termination Condition API)
109104
α = perform_linesearch!(cache.ls_cache, u, du)
110105
_axpy!(-α, du, u)
111106
f(cache.fu2, u, p)

src/utils.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ end
176176
177177
Defaults to `mul!(C, A, B)`. However, for sparse matrices uses `C .= A * B`.
178178
"""
179-
__matmul!(C, A, B) = mul!(C, A, B)``
179+
__matmul!(C, A, B) = mul!(C, A, B)
180180
__matmul!(C::AbstractSparseMatrix, A, B) = C .= A * B
181181

182182
# Concretize Algorithms
@@ -273,7 +273,6 @@ function check_and_update!(tc_cache, cache, fu, u, uprev,
273273
cache.force_stop = true
274274
end
275275
end
276-
# FIXME: Purge things till here!
277276

278277
__init_identity_jacobian(u::Number, _) = u
279278
function __init_identity_jacobian(u, fu)

test/basictests.jl

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,10 @@ const TERMINATION_CONDITIONS = [
133133

134134
@testset "Termination condition: $(termination_condition) u0: $(_nameof(u0))" for termination_condition in TERMINATION_CONDITIONS,
135135
u0 in (1.0, [1.0, 1.0])
136+
<<<<<<< HEAD
136137

138+
=======
139+
>>>>>>> 1a0df4e (Improve termination conditions)
137140
probN = NonlinearProblem(quadratic_f, u0, 2.0)
138141
@test all(solve(probN, NewtonRaphson(); termination_condition).u .≈ sqrt(2.0))
139142
end
@@ -298,7 +301,10 @@ end
298301

299302
@testset "Termination condition: $(termination_condition) u0: $(_nameof(u0))" for termination_condition in TERMINATION_CONDITIONS,
300303
u0 in (1.0, [1.0, 1.0])
304+
<<<<<<< HEAD
301305

306+
=======
307+
>>>>>>> 1a0df4e (Improve termination conditions)
302308
probN = NonlinearProblem(quadratic_f, u0, 2.0)
303309
@test all(solve(probN, TrustRegion(); termination_condition).u .≈ sqrt(2.0))
304310
end
@@ -415,7 +421,10 @@ end
415421

416422
@testset "Termination condition: $(termination_condition) u0: $(_nameof(u0))" for termination_condition in TERMINATION_CONDITIONS,
417423
u0 in (1.0, [1.0, 1.0])
424+
<<<<<<< HEAD
418425

426+
=======
427+
>>>>>>> 1a0df4e (Improve termination conditions)
419428
probN = NonlinearProblem(quadratic_f, u0, 2.0)
420429
@test all(solve(probN, LevenbergMarquardt(); termination_condition).u .≈ sqrt(2.0))
421430
end
@@ -550,7 +559,10 @@ end
550559

551560
@testset "Termination condition: $(termination_condition) u0: $(_nameof(u0))" for termination_condition in TERMINATION_CONDITIONS,
552561
u0 in (1.0, [1.0, 1.0])
562+
<<<<<<< HEAD
553563

564+
=======
565+
>>>>>>> 1a0df4e (Improve termination conditions)
554566
probN = NonlinearProblem(quadratic_f, u0, 2.0)
555567
@test all(solve(probN, DFSane(); termination_condition).u .≈ sqrt(2.0))
556568
end
@@ -671,7 +683,10 @@ end
671683

672684
@testset "Termination condition: $(termination_condition) u0: $(_nameof(u0))" for termination_condition in TERMINATION_CONDITIONS,
673685
u0 in (1.0, [1.0, 1.0])
686+
<<<<<<< HEAD
674687

688+
=======
689+
>>>>>>> 1a0df4e (Improve termination conditions)
675690
probN = NonlinearProblem(quadratic_f, u0, 2.0)
676691
@test all(solve(probN, PseudoTransient(; alpha_initial = 10.0);
677692
termination_condition).u .≈ sqrt(2.0))
@@ -769,7 +784,10 @@ end
769784

770785
@testset "Termination condition: $(termination_condition) u0: $(_nameof(u0))" for termination_condition in TERMINATION_CONDITIONS,
771786
u0 in (1.0, [1.0, 1.0])
787+
<<<<<<< HEAD
772788

789+
=======
790+
>>>>>>> 1a0df4e (Improve termination conditions)
773791
probN = NonlinearProblem(quadratic_f, u0, 2.0)
774792
@test all(solve(probN, GeneralBroyden(); termination_condition).u .≈ sqrt(2.0))
775793
end
@@ -866,9 +884,14 @@ end
866884

867885
@testset "Termination condition: $(termination_condition) u0: $(_nameof(u0))" for termination_condition in TERMINATION_CONDITIONS,
868886
u0 in (1.0, [1.0, 1.0])
887+
<<<<<<< HEAD
869888

870889
probN = NonlinearProblem(quadratic_f, u0, 2.0)
871890
@test all(solve(probN, GeneralKlement(); termination_condition).u .≈ sqrt(2.0))
891+
=======
892+
probN = NonlinearProblem(quadratic_f, u0, 2.0)
893+
@test all(solve(probN,GeneralKlement(); termination_condition).u .≈ sqrt(2.0))
894+
>>>>>>> 1a0df4e (Improve termination conditions)
872895
end
873896
end
874897

@@ -967,9 +990,14 @@ end
967990

968991
@testset "Termination condition: $(termination_condition) u0: $(_nameof(u0))" for termination_condition in TERMINATION_CONDITIONS,
969992
u0 in (1.0, [1.0, 1.0])
993+
<<<<<<< HEAD
970994

971995
probN = NonlinearProblem(quadratic_f, u0, 2.0)
972996
@test all(solve(probN, LimitedMemoryBroyden();
997+
=======
998+
probN = NonlinearProblem(quadratic_f, u0, 2.0)
999+
@test all(solve(probN, LimitedMemoryBroyden();
1000+
>>>>>>> 1a0df4e (Improve termination conditions)
9731001
termination_condition).u .≈ sqrt(2.0))
9741002
end
9751003
end

0 commit comments

Comments
 (0)