Skip to content

Commit 1c427a6

Browse files
Merge pull request #345 from avik-pal/ap/rework_internals
What is a Nonlinear Solver? And How to easily build Newer Ones
2 parents b661754 + 1d7d202 commit 1c427a6

File tree

113 files changed

+7185
-5103
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+7185
-5103
lines changed

.github/workflows/CI.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ concurrency:
1313
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
1414
jobs:
1515
test:
16-
runs-on: ubuntu-latest
16+
runs-on: ${{ matrix.os }}
1717
strategy:
1818
fail-fast: false
1919
matrix:
@@ -24,8 +24,11 @@ jobs:
2424
- Wrappers
2525
- Miscellaneous
2626
version:
27-
- '1'
28-
- '~1.10.0-0'
27+
- '1.10'
28+
os:
29+
- ubuntu-latest
30+
- macos-latest
31+
- windows-latest
2932
steps:
3033
- uses: actions/checkout@v4
3134
- uses: julia-actions/setup-julia@v1

.github/workflows/Documentation.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ jobs:
2020
run: julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
2121
- name: Build and deploy
2222
env:
23+
JULIA_DEBUG: "Documenter"
2324
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token
2425
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key
2526
run: julia --project=docs/ --code-coverage=user docs/make.jl

Project.toml

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
name = "NonlinearSolve"
22
uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
33
authors = ["SciML"]
4-
version = "3.4.0"
4+
version = "3.5.0"
55

66
[deps]
77
ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b"
88
ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
99
ConcreteStructs = "2569d6c7-a4a2-43d3-a901-331e8e4be471"
1010
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
11-
EnumX = "4e289a0a-7415-4d19-859d-a7e5c4648b56"
1211
FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898"
1312
FastClosures = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a"
1413
FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41"
@@ -19,16 +18,16 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1918
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
2019
MaybeInplace = "bb5d69b7-63fc-4a16-80bd-7e42200c7bdb"
2120
PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
21+
Preferences = "21216c6a-2e73-6563-6e65-726566657250"
2222
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
2323
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
2424
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
2525
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
26-
SciMLOperators = "c0aeaf25-5076-4817-a8d5-81caf7dfa961"
2726
SimpleNonlinearSolve = "727e6d20-b764-4bd8-a329-72de5adea6c7"
2827
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
2928
SparseDiffTools = "47a9eef4-7e08-11e9-0b38-333d64bd3804"
30-
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
31-
UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed"
29+
StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
30+
TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
3231

3332
[weakdeps]
3433
BandedMatrices = "aae01518-5342-5314-be14-df237901396f"
@@ -55,14 +54,13 @@ NonlinearSolveSymbolicsExt = "Symbolics"
5554
NonlinearSolveZygoteExt = "Zygote"
5655

5756
[compat]
58-
ADTypes = "0.2.5"
57+
ADTypes = "0.2.6"
5958
Aqua = "0.8"
6059
ArrayInterface = "7.7"
6160
BandedMatrices = "1.4"
6261
BenchmarkTools = "1.4"
63-
ConcreteStructs = "0.2"
64-
DiffEqBase = "6.144"
65-
EnumX = "1"
62+
ConcreteStructs = "0.2.3"
63+
DiffEqBase = "6.146.0"
6664
Enzyme = "0.11.11"
6765
FastBroadcast = "0.2.8"
6866
FastClosures = "0.3"
@@ -73,36 +71,37 @@ ForwardDiff = "0.10.36"
7371
LazyArrays = "1.8.2"
7472
LeastSquaresOptim = "0.8.5"
7573
LineSearches = "7.2"
76-
LinearAlgebra = "<0.0.1, 1"
74+
LinearAlgebra = "1.10"
7775
LinearSolve = "2.21"
7876
MINPACK = "1.2"
7977
MaybeInplace = "0.1.1"
8078
NLsolve = "4.5"
8179
NaNMath = "1"
8280
NonlinearProblemLibrary = "0.1.2"
8381
OrdinaryDiffEq = "6.63"
84-
Pkg = "1"
82+
Pkg = "1.10"
8583
PrecompileTools = "1.2"
84+
Preferences = "1.4"
8685
Printf = "1.10"
8786
Random = "1.91"
88-
RecursiveArrayTools = "3.2"
87+
RecursiveArrayTools = "3.4"
8988
Reexport = "1.2"
9089
SIAMFANLEquations = "1.0.1"
9190
SafeTestsets = "0.1"
92-
SciMLBase = "2.11"
93-
SciMLOperators = "0.3.7"
94-
SimpleNonlinearSolve = "1.0.2"
91+
SciMLBase = "2.19.0"
92+
SimpleNonlinearSolve = "1.2"
9593
SparseArrays = "1.10"
9694
SparseDiffTools = "2.14"
9795
SpeedMapping = "0.3"
9896
StableRNGs = "1"
9997
StaticArrays = "1.7"
98+
StaticArraysCore = "1.4"
10099
Sundials = "4.23.1"
101100
Symbolics = "5.13"
102-
Test = "1"
103-
UnPack = "1.0"
101+
Test = "1.10"
102+
TimerOutputs = "0.5.23"
104103
Zygote = "0.6.67"
105-
julia = "1.9"
104+
julia = "1.10"
106105

107106
[extras]
108107
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"

docs/LocalPreferences.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[NonlinearSolve]
2+
enable_timer_outputs = true

docs/Project.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
44
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
55
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
66
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
7+
DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244"
78
IncompleteLU = "40713840-3770-5561-ab4c-a76e7d0d7895"
9+
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
810
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
911
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
1012
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
@@ -25,6 +27,7 @@ ArrayInterface = "6, 7"
2527
BenchmarkTools = "1"
2628
DiffEqBase = "6.136"
2729
Documenter = "1"
30+
DocumenterCitations = "1"
2831
IncompleteLU = "0.2"
2932
LinearSolve = "2"
3033
ModelingToolkit = "8"

docs/make.jl

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
using Documenter,
2-
NonlinearSolve, SimpleNonlinearSolve, Sundials, SteadyStateDiffEq, SciMLBase, DiffEqBase
1+
using Documenter, DocumenterCitations
2+
using NonlinearSolve,
3+
SimpleNonlinearSolve, Sundials, SteadyStateDiffEq, SciMLBase, DiffEqBase
34

45
cp(joinpath(@__DIR__, "Manifest.toml"), joinpath(@__DIR__, "src/assets/Manifest.toml"),
56
force = true)
@@ -8,14 +9,16 @@ cp(joinpath(@__DIR__, "Project.toml"), joinpath(@__DIR__, "src/assets/Project.to
89

910
include("pages.jl")
1011

12+
bib = CitationBibliography(joinpath(@__DIR__, "src", "refs.bib"))
13+
1114
makedocs(; sitename = "NonlinearSolve.jl",
1215
authors = "Chris Rackauckas",
1316
modules = [NonlinearSolve, SimpleNonlinearSolve, SteadyStateDiffEq, Sundials,
1417
DiffEqBase, SciMLBase],
1518
clean = true, doctest = false, linkcheck = true,
1619
linkcheck_ignore = ["https://twitter.com/ChrisRackauckas/status/1544743542094020615"],
17-
checkdocs = :export,
18-
format = Documenter.HTML(assets = ["assets/favicon.ico"],
20+
checkdocs = :exports, warnonly = [:missing_docs], plugins = [bib],
21+
format = Documenter.HTML(assets = ["assets/favicon.ico", "assets/citations.css"],
1922
canonical = "https://docs.sciml.ai/NonlinearSolve/stable/"),
2023
pages)
2124

docs/pages.jl

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,46 @@
11
# Put in a separate page so it can be used by SciMLDocs.jl
22

3-
pages = ["index.md",
3+
pages = [
4+
"index.md",
45
"Getting Started with Nonlinear Rootfinding in Julia" => "tutorials/getting_started.md",
56
"Tutorials" => Any["tutorials/code_optimization.md",
67
"tutorials/large_systems.md",
78
"tutorials/modelingtoolkit.md",
89
"tutorials/small_compile.md",
910
"tutorials/iterator_interface.md",
1011
"tutorials/optimizing_parameterized_ode.md"],
11-
"Basics" => Any["basics/NonlinearProblem.md",
12-
"basics/NonlinearFunctions.md",
12+
"Basics" => Any["basics/nonlinear_problem.md",
13+
"basics/nonlinear_functions.md",
1314
"basics/solve.md",
14-
"basics/NonlinearSolution.md",
15-
"basics/TerminationCondition.md",
16-
"basics/Logging.md",
17-
"basics/SparsityDetection.md",
18-
"basics/FAQ.md"],
19-
"Solver Summaries and Recommendations" => Any["solvers/NonlinearSystemSolvers.md",
20-
"solvers/BracketingSolvers.md",
21-
"solvers/SteadyStateSolvers.md",
22-
"solvers/NonlinearLeastSquaresSolvers.md",
23-
"solvers/FixedPointSolvers.md",
24-
"solvers/LineSearch.md"],
25-
"Detailed Solver APIs" => Any["api/nonlinearsolve.md",
26-
"api/simplenonlinearsolve.md",
15+
"basics/nonlinear_solution.md",
16+
"basics/termination_condition.md",
17+
"basics/diagnostics_api.md",
18+
"basics/sparsity_detection.md",
19+
"basics/faq.md"],
20+
"Solver Summaries and Recommendations" => Any["solvers/nonlinear_system_solvers.md",
21+
"solvers/bracketing_solvers.md",
22+
"solvers/steady_state_solvers.md",
23+
"solvers/nonlinear_least_squares_solvers.md",
24+
"solvers/fixed_point_solvers.md"],
25+
"Native Functionalities" => Any["native/solvers.md",
26+
"native/simplenonlinearsolve.md",
27+
"native/steadystatediffeq.md",
28+
"native/descent.md",
29+
"native/globalization.md",
30+
"native/diagnostics.md"],
31+
"Wrapped Solver APIs" => Any["api/fastlevenbergmarquardt.md",
32+
"api/fixedpointacceleration.md",
33+
"api/leastsquaresoptim.md",
2734
"api/minpack.md",
2835
"api/nlsolve.md",
29-
"api/sundials.md",
30-
"api/steadystatediffeq.md",
31-
"api/leastsquaresoptim.md",
32-
"api/fastlevenbergmarquardt.md",
36+
"api/siamfanlequations.md",
3337
"api/speedmapping.md",
34-
"api/fixedpointacceleration.md",
35-
"api/siamfanlequations.md"],
38+
"api/sundials.md"],
39+
"Development Documentation" => ["devdocs/internal_interfaces.md",
40+
"devdocs/linear_solve.md",
41+
"devdocs/jacobian.md",
42+
"devdocs/operators.md",
43+
"devdocs/algorithm_helpers.md"],
3644
"Release Notes" => "release_notes.md",
45+
"References" => "references.md",
3746
]

docs/src/api/nonlinearsolve.md

Lines changed: 0 additions & 56 deletions
This file was deleted.

docs/src/api/simplenonlinearsolve.md

Lines changed: 0 additions & 34 deletions
This file was deleted.

docs/src/assets/citations.css

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
.citation dl {
2+
display: grid;
3+
grid-template-columns: max-content auto;
4+
}
5+
.citation dt {
6+
grid-column-start: 1;
7+
}
8+
.citation dd {
9+
grid-column-start: 2;
10+
margin-bottom: 0.75em;
11+
}
12+
.citation ul {
13+
padding: 0 0 2.25em 0;
14+
margin: 0;
15+
list-style: none;
16+
}
17+
.citation ul li {
18+
text-indent: -2.25em;
19+
margin: 0.33em 0.5em 0.5em 2.25em;
20+
}
21+
.citation ol li {
22+
padding-left: 0.75em;
23+
}

docs/src/basics/NonlinearSolution.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)