@@ -10,7 +10,7 @@ equation (BRUSS) using NonlinearSolve.jl.
10
10
## Definition of the Brusselator Equation
11
11
12
12
!!! note
13
-
13
+
14
14
Feel free to skip this section: it simply defines the example problem.
15
15
16
16
The Brusselator PDE is defined as follows:
@@ -117,11 +117,11 @@ However, if you know the sparsity of your problem, then you can pass a different
117
117
type. For example, a ` SparseMatrixCSC ` will give a sparse matrix. Other sparse matrix types
118
118
include:
119
119
120
- - Bidiagonal
121
- - Tridiagonal
122
- - SymTridiagonal
123
- - BandedMatrix ([ BandedMatrices.jl] ( https://github.com/JuliaLinearAlgebra/BandedMatrices.jl ) )
124
- - BlockBandedMatrix ([ BlockBandedMatrices.jl] ( https://github.com/JuliaLinearAlgebra/BlockBandedMatrices.jl ) )
120
+ - Bidiagonal
121
+ - Tridiagonal
122
+ - SymTridiagonal
123
+ - BandedMatrix ([ BandedMatrices.jl] ( https://github.com/JuliaLinearAlgebra/BandedMatrices.jl ) )
124
+ - BlockBandedMatrix ([ BlockBandedMatrices.jl] ( https://github.com/JuliaLinearAlgebra/BlockBandedMatrices.jl ) )
125
125
126
126
## Approximate Sparsity Detection & Sparse Jacobians
127
127
@@ -167,7 +167,7 @@ and `u` and call `jacobian_sparsity` on our function with the example arguments,
167
167
kick out a sparse matrix with our pattern, that we can turn into our ` jac_prototype ` .
168
168
169
169
!!! tip
170
-
170
+
171
171
Alternatively you can use the ` SparseConnectivityTracer.jl ` package to automatically
172
172
generate a sparse Jacobian.
173
173
@@ -224,7 +224,7 @@ choices, see the
224
224
` linsolve ` choices are any valid [ LinearSolve.jl] ( https://linearsolve.sciml.ai/dev/ ) solver.
225
225
226
226
!!! note
227
-
227
+
228
228
Switching to a Krylov linear solver will automatically change the nonlinear problem
229
229
solver into Jacobian-free mode, dramatically reducing the memory required. This can be
230
230
overridden by adding ` concrete_jac=true ` to the algorithm.
@@ -330,7 +330,7 @@ prob_brusselator_2d_exact_tracer = NonlinearProblem(
330
330
u0, p; abstol = 1e-10, reltol = 1e-10)
331
331
prob_brusselator_2d_approx_di = NonlinearProblem(
332
332
NonlinearFunction(brusselator_2d_loop;
333
- sparsity = DenseSparsityDetector(AutoForwardDiff(); atol= 1e-4)),
333
+ sparsity = DenseSparsityDetector(AutoForwardDiff(); atol = 1e-4)),
334
334
u0, p; abstol = 1e-10, reltol = 1e-10)
335
335
336
336
@btime solve(prob_brusselator_2d_exact_symbolics, NewtonRaphson());
0 commit comments