Skip to content

Expose Newton kw args in Theseus#154

Open
vchuravy wants to merge 3 commits into
mainfrom
vc/kwargs
Open

Expose Newton kw args in Theseus#154
vchuravy wants to merge 3 commits into
mainfrom
vc/kwargs

Conversation

@vchuravy

@vchuravy vchuravy commented May 5, 2026

Copy link
Copy Markdown
Member

Using the test from #135

@github-actions

github-actions Bot commented May 5, 2026

Copy link
Copy Markdown

Once the build has completed, you can preview your PR at this URL: https://NumericalMathematics.github.io/Ariadne.jl/previews/PR154/ in a couple of minutes.

@vchuravy
vchuravy requested review from MarcoArtiano and ranocha May 5, 2026 13:18
@github-actions

github-actions Bot commented May 5, 2026

Copy link
Copy Markdown

Your PR no longer requires formatting changes. Thank you for your contribution!

@vchuravy

vchuravy commented May 5, 2026

Copy link
Copy Markdown
Member Author

@ranocha

NoLineSearch

We terminate since we don't quite get to our tolerance: iter = 4.041063371944827e-6

julia> solve(ode, Theseus.ARS443(); 
               dt = 0.02,
               newton_kwargs = (; linesearch! = NoLineSearch(), ), verbose=1
           )
┌ Info: Jacobian-Free Newton-Krylov
│   res₀ = 6.2499999999e10
│   tol = 62500.0
│   tol_rel = 1.0e-6
│   tol_abs = 1.0e-6
└   η = 0.999
┌ Info: Newton
│   iter = 1.3749999989005224
│   η = 0.999
└   stats = Ariadne.Stats(1, 1, 1.3749999989005224)
┌ Info: Jacobian-Free Newton-Krylov
│   res₀ = 20.735612952581928
│   tol = 2.1735612952581928e-5
│   tol_rel = 1.0e-6
│   tol_abs = 1.0e-6
└   η = 0.999
┌ Info: Newton
│   iter = 1.305555553743123
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(1, 1, 1.305555553743123)
┌ Info: Newton
│   iter = 3.408950607142515e7
│   η = 0.999
└   stats = Ariadne.Stats(2, 3, 3.408950607142515e7)
┌ Info: Newton
│   iter = 2.4235388522725113e-6
│   η = 0.999
└   stats = Ariadne.Stats(3, 4, 2.4235388522725113e-6)
┌ Info: Jacobian-Free Newton-Krylov
│   res₀ = 44.398961789426075
│   tol = 4.539896178942607e-5
│   tol_rel = 1.0e-6
│   tol_abs = 1.0e-6
└   η = 0.999
┌ Info: Newton
│   iter = 1.8480555509380319
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(1, 1, 1.8480555509380319)
┌ Info: Newton
│   iter = 6.830618638331777e7
│   η = 0.999
└   stats = Ariadne.Stats(2, 3, 6.830618638331777e7)
┌ Info: Newton
│   iter = 3.1468298686924537e-6
│   η = 0.999
└   stats = Ariadne.Stats(3, 4, 3.1468298686924537e-6)
┌ Info: Jacobian-Free Newton-Krylov
│   res₀ = 171.97837448893065
│   tol = 0.00017297837448893065
│   tol_rel = 1.0e-6
│   tol_abs = 1.0e-6
└   η = 0.999
┌ Info: Newton
│   iter = 5.375318043563053
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(1, 1, 5.375318043563053)
┌ Info: Newton
│   iter = 5.77880881388132e8
│   η = 0.999
└   stats = Ariadne.Stats(2, 3, 5.77880881388132e8)
┌ Info: Newton
│   iter = 4.298072980191397e-6
│   η = 0.999
└   stats = Ariadne.Stats(3, 4, 4.298072980191397e-6)
┌ Info: Jacobian-Free Newton-Krylov
│   res₀ = 80.3534668136445
│   tol = 8.13534668136445e-5
│   tol_rel = 1.0e-6
│   tol_abs = 1.0e-6
└   η = 0.999
┌ Info: Newton
│   iter = 0.7722170678597933
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(1, 1, 0.7722170678597933)
┌ Info: Newton
│   iter = 1.1926383996985277e7
│   η = 0.999
└   stats = Ariadne.Stats(2, 3, 1.1926383996985277e7)
┌ Info: Newton
│   iter = 2.51472190981954e-6
│   η = 0.999
└   stats = Ariadne.Stats(3, 4, 2.51472190981954e-6)
┌ Info: Jacobian-Free Newton-Krylov
│   res₀ = 0.8266616250623365
│   tol = 1.8266616250623364e-6
│   tol_rel = 1.0e-6
│   tol_abs = 1.0e-6
└   η = 0.999
┌ Info: Newton
│   iter = 0.2565475192822428
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(1, 1, 0.2565475192822428)
┌ Info: Newton
│   iter = 1.3163325880018098e6
│   η = 0.999
└   stats = Ariadne.Stats(2, 3, 1.3163325880018098e6)
┌ Info: Newton
│   iter = 1.6974526065460492e-6
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(3, 4, 1.6974526065460492e-6)
┌ Info: Jacobian-Free Newton-Krylov
│   res₀ = 0.8131773520293808
│   tol = 1.8131773520293807e-6
│   tol_rel = 1.0e-6
│   tol_abs = 1.0e-6
└   η = 0.999
┌ Info: Newton
│   iter = 0.2539651640323741
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(1, 1, 0.2539651640323741)
┌ Info: Newton
│   iter = 1.2899660890555813e6
│   η = 0.999
└   stats = Ariadne.Stats(2, 3, 1.2899660890555813e6)
┌ Info: Newton
│   iter = 4.0410633821588785e-6
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(3, 4, 4.0410633821588785e-6)
┌ Info: Newton
│   iter = 4.041063378162076e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(4, 5, 4.041063378162076e-6)
┌ Info: Newton
│   iter = 4.041063374165273e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(5, 6, 4.041063374165273e-6)
┌ Info: Newton
│   iter = 1.816339712235401e-5
│   η = 0.999
└   stats = Ariadne.Stats(6, 7, 1.816339712235401e-5)
┌ Info: Newton
│   iter = 4.0410633883761274e-6
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(7, 8, 4.0410633883761274e-6)
┌ Info: Newton
│   iter = 4.0410633843793245e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(8, 9, 4.0410633843793245e-6)
┌ Info: Newton
│   iter = 4.041063380382522e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(9, 10, 4.041063380382522e-6)
┌ Info: Newton
│   iter = 4.041063376385719e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(10, 11, 4.041063376385719e-6)
┌ Info: Newton
│   iter = 4.041063372388916e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(11, 12, 4.041063372388916e-6)
┌ Info: Newton
│   iter = 1.8163397124130366e-5
│   η = 0.999
└   stats = Ariadne.Stats(12, 13, 1.8163397124130366e-5)
┌ Info: Newton
│   iter = 4.041063386599771e-6
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(13, 14, 4.041063386599771e-6)
┌ Info: Newton
│   iter = 4.041063382602968e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(14, 15, 4.041063382602968e-6)
┌ Info: Newton
│   iter = 4.041063378606165e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(15, 16, 4.041063378606165e-6)
┌ Info: Newton
│   iter = 4.041063374609362e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(16, 17, 4.041063374609362e-6)
┌ Info: Newton
│   iter = 4.041063370612559e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(17, 18, 4.041063370612559e-6)
┌ Info: Newton
│   iter = 1.8163397125906723e-5
│   η = 0.999
└   stats = Ariadne.Stats(18, 19, 1.8163397125906723e-5)
┌ Info: Newton
│   iter = 4.041063384823414e-6
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(19, 20, 4.041063384823414e-6)
┌ Info: Newton
│   iter = 4.041063380826611e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(20, 21, 4.041063380826611e-6)
┌ Info: Newton
│   iter = 4.041063376829808e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(21, 22, 4.041063376829808e-6)
┌ Info: Newton
│   iter = 4.041063372833005e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(22, 23, 4.041063372833005e-6)
┌ Info: Newton
│   iter = 1.8163397123686277e-5
│   η = 0.999
└   stats = Ariadne.Stats(23, 24, 1.8163397123686277e-5)
┌ Info: Newton
│   iter = 4.04106338704386e-6
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(24, 25, 4.04106338704386e-6)
┌ Info: Newton
│   iter = 4.041063383047057e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(25, 26, 4.041063383047057e-6)
┌ Info: Newton
│   iter = 4.041063379050254e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(26, 27, 4.041063379050254e-6)
┌ Info: Newton
│   iter = 4.041063375053451e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(27, 28, 4.041063375053451e-6)
┌ Info: Newton
│   iter = 4.041063371056648e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(28, 29, 4.041063371056648e-6)
┌ Info: Newton
│   iter = 1.8163397125462633e-5
│   η = 0.999
└   stats = Ariadne.Stats(29, 30, 1.8163397125462633e-5)
┌ Info: Newton
│   iter = 4.041063385267503e-6
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(30, 31, 4.041063385267503e-6)
┌ Info: Newton
│   iter = 4.0410633812707e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(31, 32, 4.0410633812707e-6)
┌ Info: Newton
│   iter = 4.041063377273897e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(32, 33, 4.041063377273897e-6)
┌ Info: Newton
│   iter = 4.041063373277094e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(33, 34, 4.041063373277094e-6)
┌ Info: Newton
│   iter = 1.8163397123242187e-5
│   η = 0.999
└   stats = Ariadne.Stats(34, 35, 1.8163397123242187e-5)
┌ Info: Newton
│   iter = 4.041063387487949e-6
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(35, 36, 4.041063387487949e-6)
┌ Info: Newton
│   iter = 4.041063383491146e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(36, 37, 4.041063383491146e-6)
┌ Info: Newton
│   iter = 4.041063379494343e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(37, 38, 4.041063379494343e-6)
┌ Info: Newton
│   iter = 4.04106337549754e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(38, 39, 4.04106337549754e-6)
┌ Info: Newton
│   iter = 4.0410633715007375e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(39, 40, 4.0410633715007375e-6)
┌ Info: Newton
│   iter = 1.8163397125018544e-5
│   η = 0.999
└   stats = Ariadne.Stats(40, 41, 1.8163397125018544e-5)
┌ Info: Newton
│   iter = 4.041063385711592e-6
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(41, 42, 4.041063385711592e-6)
┌ Info: Newton
│   iter = 4.041063381714789e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(42, 43, 4.041063381714789e-6)
┌ Info: Newton
│   iter = 4.041063377717986e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(43, 44, 4.041063377717986e-6)
┌ Info: Newton
│   iter = 4.0410633737211835e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(44, 45, 4.0410633737211835e-6)
┌ Info: Newton
│   iter = 1.8163397122798098e-5
│   η = 0.999
└   stats = Ariadne.Stats(45, 46, 1.8163397122798098e-5)
┌ Info: Newton
│   iter = 4.041063387932038e-6
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(46, 47, 4.041063387932038e-6)
┌ Info: Newton
│   iter = 4.041063383935235e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(47, 48, 4.041063383935235e-6)
┌ Info: Newton
│   iter = 4.0410633799384324e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(48, 49, 4.0410633799384324e-6)
┌ Info: Newton
│   iter = 4.0410633759416296e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(49, 50, 4.0410633759416296e-6)
┌ Info: Newton
│   iter = 4.041063371944827e-6
│   η = 0.8999999982197149
└   stats = Ariadne.Stats(50, 51, 4.041063371944827e-6)
┌ Info: Newton
│   iter = 1.8163397124574455e-5
│   η = 0.999
└   stats = Ariadne.Stats(51, 52, 1.8163397124574455e-5)
┌ Warning: Newton did not converge
│   stats = (solved = false, stats = Ariadne.Stats(51, 52, 1.8163397124574455e-5), t = 0.001694602)
│   integrator.t = 0.02
└ @ Theseus ~/src/Ariadne/libs/Theseus/src/imex/imex.jl:288
ERROR: Newton did not converge
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] stage!(integrator::Theseus.SimpleImplicitExplicit{…}, alg::Theseus.ARS443)
   @ Theseus ~/src/Ariadne/libs/Theseus/src/imex/imex.jl:289
 [3] step!(integrator::Theseus.SimpleImplicitExplicit{…})
   @ Theseus ~/src/Ariadne/libs/Theseus/src/imex/imex.jl:207
 [4] solve!
   @ ~/src/Ariadne/libs/Theseus/src/imex/imex.jl:173 [inlined]
 [5] #solve#42
   @ ~/src/Ariadne/libs/Theseus/src/imex/imex.jl:164 [inlined]
 [6] top-level scope
   @ REPL[8]:1
Some type information was truncated. Use `show(err)` to see complete types.

BacktrackingLineSearch

We are oscillating badly, with BacktrackingLineSearch(;n_iter_max=10)

julia> solve(ode, Theseus.ARS443(); 
               dt = 0.02,
               newton_kwargs = (; linesearch! = BacktrackingLineSearch(;n_iter_max=10), ), verbose=1
           )
┌ Info: Jacobian-Free Newton-Krylov
│   res₀ = 6.2499999999e10
│   tol = 62500.0
│   tol_rel = 1.0e-6
│   tol_abs = 1.0e-6
└   η = 0.999
┌ Info: Newton
│   iter = 1.3749999989005224
│   η = 0.999
└   stats = Ariadne.Stats(1, 1, 1.3749999989005224)
┌ Info: Jacobian-Free Newton-Krylov
│   res₀ = 20.735612952581928
│   tol = 2.1735612952581928e-5
│   tol_rel = 1.0e-6
│   tol_abs = 1.0e-6
└   η = 0.999
┌ Info: Newton
│   iter = 1.305555553743123
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(1, 1, 1.305555553743123)
┌ Info: Newton
│   iter = 130.0476318461387
│   η = 0.999
└   stats = Ariadne.Stats(2, 3, 130.0476318461387)
┌ Info: Newton
│   iter = 1.3030056392391
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(3, 4, 1.3030056392391)
┌ Info: Newton
│   iter = 129.54021158987902
│   η = 0.999
└   stats = Ariadne.Stats(4, 6, 129.54021158987902)
┌ Info: Newton
│   iter = 1.30046070505196
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(5, 7, 1.30046070505196)
┌ Info: Newton
│   iter = 129.0347079556054
│   η = 0.999
└   stats = Ariadne.Stats(6, 9, 129.0347079556054)
┌ Info: Newton
│   iter = 1.2979207414543648
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(7, 10, 1.2979207414543648)
┌ Info: Newton
│   iter = 128.53118758359543
│   η = 0.999
└   stats = Ariadne.Stats(8, 12, 128.53118758359543)
┌ Info: Newton
│   iter = 1.2953857387247907
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(9, 13, 1.2953857387247907)
┌ Info: Newton
│   iter = 128.02960609736385
│   η = 0.999
└   stats = Ariadne.Stats(10, 15, 128.02960609736385)
┌ Info: Newton
│   iter = 1.2928556872007066
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(11, 16, 1.2928556872007066)
┌ Info: Newton
│   iter = 127.52998573036427
│   η = 0.999
└   stats = Ariadne.Stats(12, 18, 127.52998573036427)
┌ Info: Newton
│   iter = 1.2903305773600326
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(13, 19, 1.2903305773600326)
┌ Info: Newton
│   iter = 127.03237091928393
│   η = 0.999
└   stats = Ariadne.Stats(14, 21, 127.03237091928393)
┌ Info: Newton
│   iter = 1.2878103990516927
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(15, 22, 1.2878103990516927)
┌ Info: Newton
│   iter = 126.53667288081633
│   η = 0.999
└   stats = Ariadne.Stats(16, 24, 126.53667288081633)
┌ Info: Newton
│   iter = 1.2852951430932726
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(17, 25, 1.2852951430932726)
┌ Info: Newton
│   iter = 126.0428472382797
│   η = 0.999
└   stats = Ariadne.Stats(18, 27, 126.0428472382797)
┌ Info: Newton
│   iter = 1.2827848000474786
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(19, 28, 1.2827848000474786)
┌ Info: Newton
│   iter = 125.55100503810294
│   η = 0.999
└   stats = Ariadne.Stats(20, 30, 125.55100503810294)
┌ Info: Newton
│   iter = 1.2802793595338757
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(21, 31, 1.2802793595338757)
┌ Info: Newton
│   iter = 125.0611463100493
│   η = 0.999
└   stats = Ariadne.Stats(22, 33, 125.0611463100493)
┌ Info: Newton
│   iter = 1.277778813141599
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(23, 34, 1.277778813141599)
┌ Info: Newton
│   iter = 124.57309345743911
│   η = 0.999
└   stats = Ariadne.Stats(24, 36, 124.57309345743911)
┌ Info: Newton
│   iter = 1.2752831496945478
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(25, 37, 1.2752831496945478)
┌ Info: Newton
│   iter = 124.08695752647228
│   η = 0.999
└   stats = Ariadne.Stats(26, 39, 124.08695752647228)
┌ Info: Newton
│   iter = 1.2727923609944862
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(27, 40, 1.2727923609944862)
┌ Info: Newton
│   iter = 123.60273854675113
│   η = 0.999
└   stats = Ariadne.Stats(28, 42, 123.60273854675113)
┌ Info: Newton
│   iter = 1.2703064372239445
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(29, 43, 1.2703064372239445)
┌ Info: Newton
│   iter = 123.12045875109409
│   η = 0.999
└   stats = Ariadne.Stats(30, 45, 123.12045875109409)
┌ Info: Newton
│   iter = 1.267825368724626
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(31, 46, 1.267825368724626)
┌ Info: Newton
│   iter = 122.63994054272686
│   η = 0.999
└   stats = Ariadne.Stats(32, 48, 122.63994054272686)
┌ Info: Newton
│   iter = 1.2653491460322255
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(33, 49, 1.2653491460322255)
┌ Info: Newton
│   iter = 122.16142818716177
│   η = 0.999
└   stats = Ariadne.Stats(34, 51, 122.16142818716177)
┌ Info: Newton
│   iter = 1.262877759781519
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(35, 52, 1.262877759781519)
┌ Info: Newton
│   iter = 121.68467747771547
│   η = 0.999
└   stats = Ariadne.Stats(36, 54, 121.68467747771547)
┌ Info: Newton
│   iter = 1.2604112005005028
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(37, 55, 1.2604112005005028)
┌ Info: Newton
│   iter = 121.20986606987118
│   η = 0.999
└   stats = Ariadne.Stats(38, 57, 121.20986606987118)
┌ Info: Newton
│   iter = 1.2579494587921327
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(39, 58, 1.2579494587921327)
┌ Info: Newton
│   iter = 120.7369273830369
│   η = 0.999
└   stats = Ariadne.Stats(40, 60, 120.7369273830369)
┌ Info: Newton
│   iter = 1.2554925250825935
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(41, 61, 1.2554925250825935)
┌ Info: Newton
│   iter = 120.26570602358946
│   η = 0.999
└   stats = Ariadne.Stats(42, 63, 120.26570602358946)
┌ Info: Newton
│   iter = 1.2530403899133808
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(43, 64, 1.2530403899133808)
┌ Info: Newton
│   iter = 119.79644625648126
│   η = 0.999
└   stats = Ariadne.Stats(44, 66, 119.79644625648126)
┌ Info: Newton
│   iter = 1.2505930441247564
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(45, 67, 1.2505930441247564)
┌ Info: Newton
│   iter = 119.32894828147487
│   η = 0.999
└   stats = Ariadne.Stats(46, 69, 119.32894828147487)
┌ Info: Newton
│   iter = 1.2481504782838384
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(47, 70, 1.2481504782838384)
┌ Info: Newton
│   iter = 118.86330094057155
│   η = 0.999
└   stats = Ariadne.Stats(48, 72, 118.86330094057155)
┌ Info: Newton
│   iter = 1.2457126831787817
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(49, 73, 1.2457126831787817)
┌ Info: Newton
│   iter = 118.39950426268548
│   η = 0.999
└   stats = Ariadne.Stats(50, 75, 118.39950426268548)
┌ Info: Newton
│   iter = 1.24327964974927
│   η = 0.8982009000000001
└   stats = Ariadne.Stats(51, 76, 1.24327964974927)
┌ Warning: Newton did not converge
│   stats = (solved = false, stats = Ariadne.Stats(51, 76, 1.24327964974927), t = 0.002214098)
│   integrator.t = 0.0
└ @ Theseus ~/src/Ariadne/libs/Theseus/src/imex/imex.jl:288
ERROR: Newton did not converge
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] stage!(integrator::Theseus.SimpleImplicitExplicit{…}, alg::Theseus.ARS443)
   @ Theseus ~/src/Ariadne/libs/Theseus/src/imex/imex.jl:289
 [3] step!(integrator::Theseus.SimpleImplicitExplicit{…})
   @ Theseus ~/src/Ariadne/libs/Theseus/src/imex/imex.jl:207
 [4] solve!
   @ ~/src/Ariadne/libs/Theseus/src/imex/imex.jl:173 [inlined]
 [5] #solve#42
   @ ~/src/Ariadne/libs/Theseus/src/imex/imex.jl:164 [inlined]
 [6] top-level scope
   @ REPL[7]:1
Some type information was truncated. Use `show(err)` to see complete types.

Forcing

julia> solve(ode, Theseus.ARS443(); 
               dt = 0.02,
               newton_kwargs = (; forcing=nothing), newton_tol_abs=1e-5)

The only way I managed to solve this sofar is to use a lower tol_abs and to disable EisenstattWalker.

Comment thread libs/Theseus/test/linesearch.jl Outdated
Comment on lines +32 to +35
solve(ode, Theseus.ARS443();
dt = 0.02,
newton_kwargs = (; linesearch! = BacktrackingLineSearch())
)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This still throws an error, right?

@ranocha ranocha left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, the code itself looks good to me. Maybe the example is too complicated for this method to handle it well...

Could you maybe adapt the test so that it passes, please? Then, we can at least use the feature directly when looking for a better example.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants