@@ -76,24 +76,24 @@ to reuse the preconditioner once constructed for the subsequent solution of a mo
76
76
``` @example precon3
77
77
using LinearSolve, LinearAlgebra
78
78
79
- Base.@kwdef struct WeightedDiagonalBuilder
79
+ Base.@kwdef struct WeightedDiagonalPreconBuilder
80
80
w::Float64
81
81
end
82
82
83
- (builder::WeightedDiagonalBuilder )(A,p) = (builder.w*Diagonal(A),I)
83
+ (builder::WeightedDiagonalPreconBuilder )(A,p) = (builder.w*Diagonal(A),I)
84
84
85
85
n = 4
86
86
A = n*I-rand(n, n)
87
87
b = rand(n)
88
88
89
89
prob = LinearProblem(A, b)
90
- sol = solve(prob, KrylovJL_GMRES(precs = WeightedDiagonalBuilder (w=0.9)) )
90
+ sol = solve(prob, KrylovJL_GMRES(precs = WeightedDiagonalPreconBuilder (w=0.9)) )
91
91
sol.u
92
92
93
93
B=A.+0.1
94
94
cache=sol.cache
95
95
reinit!(cache,A=B, reuse_precs=true)
96
- sol = solve!(cache, KrylovJL_GMRES(precs = WeightedDiagonalBuilder (w=0.9)) )
96
+ sol = solve!(cache, KrylovJL_GMRES(precs = WeightedDiagonalPreconBuilder (w=0.9)) )
97
97
sol.u
98
98
```
99
99
## Preconditioner Interface
@@ -128,14 +128,14 @@ The following preconditioners match the interface of LinearSolve.jl.
128
128
Implementations of the algebraic multigrid method. Must be converted to a
129
129
preconditioner via ` AlgebraicMultigrid.aspreconditioner(AlgebraicMultigrid.precmethod(A)) ` .
130
130
Requires ` A ` as a ` AbstractMatrix ` . Provides the following methods:
131
-
131
+
132
132
+ ` AlgebraicMultigrid.ruge_stuben(A) `
133
133
+ ` AlgebraicMultigrid.smoothed_aggregation(A) `
134
134
- [ PyAMG] ( https://github.com/cortner/PyAMG.jl ) :
135
135
Implementations of the algebraic multigrid method. Must be converted to a
136
136
preconditioner via ` PyAMG.aspreconditioner(PyAMG.precmethod(A)) ` .
137
137
Requires ` A ` as a ` AbstractMatrix ` . Provides the following methods:
138
-
138
+
139
139
+ ` PyAMG.RugeStubenSolver(A) `
140
140
+ ` PyAMG.SmoothedAggregationSolver(A) `
141
141
- [ ILUZero.ILU0Precon(A::SparseMatrixCSC{T,N}, b_type = T)] ( https://github.com/mcovalt/ILUZero.jl ) :
@@ -154,7 +154,7 @@ The following preconditioners match the interface of LinearSolve.jl.
154
154
and ` HYPRE.BoomerAMG ` .
155
155
- [ KrylovPreconditioners.jl] ( https://github.com/JuliaSmoothOptimizers/KrylovPreconditioners.jl/ ) : Provides GPU-ready
156
156
preconditioners via KernelAbstractions.jl. At the time of writing the package provides the following methods:
157
-
157
+
158
158
+ Incomplete Cholesky decomposition ` KrylovPreconditioners.kp_ic0(A) `
159
159
+ Incomplete LU decomposition ` KrylovPreconditioners.kp_ilu0(A) `
160
160
+ Block Jacobi ` KrylovPreconditioners.BlockJacobiPreconditioner(A, nblocks, device) `
0 commit comments