@@ -120,29 +120,26 @@ fsmoother = GaussSeidel(ForwardSweep())
120120A = poisson (1000 )
121121A = float .(A)
122122ml = ruge_stuben (A)
123- x = solve (ml, A * ones (1000 ))
123+ x = AlgebraicMultigrid . _solve (ml, A * ones (1000 ))
124124@test sum (abs2, x - ones (1000 )) < 1e-8
125125
126126ml = ruge_stuben (A, presmoother = fsmoother,
127127 postsmoother = fsmoother)
128- x = solve (ml, A * ones (1000 ))
128+ x = AlgebraicMultigrid . _solve (ml, A * ones (1000 ))
129129@test sum (abs2, x - ones (1000 )) < 1e-8
130130
131131
132132A = include (" randlap.jl" )
133133
134134ml = ruge_stuben (A, presmoother = fsmoother,
135135 postsmoother = fsmoother)
136- x = solve (ml, A * ones (100 ))
136+ x = AlgebraicMultigrid . _solve (ml, A * ones (100 ))
137137@test sum (abs2, x - zeros (100 )) < 1e-8
138138
139139ml = ruge_stuben (A)
140- x = solve (ml, A * ones (100 ))
140+ x = AlgebraicMultigrid . _solve (ml, A * ones (100 ))
141141@test sum (abs2, x - zeros (100 )) < 1e-6
142142
143-
144-
145-
146143end
147144
148145@testset " Preconditioning" begin
@@ -155,7 +152,7 @@ p = aspreconditioner(ml)
155152b = zeros (n)
156153b[1 ] = 1
157154b[2 ] = - 1
158- x = solve (p . ml, A * ones (n), maxiter = 1 , abstol = 1e-12 )
155+ x = AlgebraicMultigrid . _solve ( ml, A * ones (n), maxiter = 1 , abstol = 1e-12 )
159156diff = x - [ 1.88664780e-16 , 2.34982727e-16 , 2.33917697e-16 ,
160157 8.77869044e-17 , 7.16783490e-17 , 1.43415460e-16 ,
161158 3.69199021e-17 , 9.70950385e-17 , 4.77034895e-17 ,
@@ -173,7 +170,9 @@ diff = x - [ 1.88664780e-16, 2.34982727e-16, 2.33917697e-16,
173170 - 6.76965535e-16 , - 7.00643227e-16 , - 6.23581397e-16 ,
174171 - 7.03016682e-16 ]
175172@test sum (abs2, diff) < 1e-8
176- x = solve (p. ml, b, maxiter = 1 , abstol = 1e-12 )
173+ x = solve (A, b, RugeStubenAMG (); presmoother = smoother,
174+ postsmoother = smoother,
175+ maxiter = 1 , abstol = 1e-12 )
177176diff = x - [ 0.76347046 , - 0.5498286 , - 0.2705487 , - 0.15047352 , - 0.10248021 ,
178177 0.60292674 , - 0.11497073 , - 0.08460548 , - 0.06931461 , 0.38230708 ,
179178 - 0.055664 , - 0.04854558 , - 0.04577031 , 0.09964325 , 0.01825624 ,
@@ -214,7 +213,7 @@ diff = x - [0.823762, -0.537478, -0.306212, -0.19359, -0.147621, 0.685002,
214213 0.0511691 , 0.0502043 , 0.0498349 , 0.0498134 ]
215214@test sum (abs2, diff) < 1e-8
216215
217- x = solve (ml, b, maxiter = 1 , reltol = 1e-12 )
216+ x = AlgebraicMultigrid . _solve (ml, b, maxiter = 1 , reltol = 1e-12 )
218217diff = x - [0.775725 , - 0.571202 , - 0.290989 , - 0.157001 , - 0.106981 , 0.622652 ,
219218 - 0.122318 , - 0.0891874 , - 0.0709834 , 0.392621 , - 0.055544 , - 0.0507485 ,
220219 - 0.0466376 , 0.107175 , 0.0267468 , - 0.0200843 , - 0.0282827 , - 0.0299929 ,
@@ -240,7 +239,7 @@ for (T,V) in ((Float64, Float64), (Float32,Float32),
240239 ml = smoothed_aggregation (a)
241240 b = V .(b)
242241 c = cg (a, b, maxiter = 10 )
243- @test eltype (solve (ml, b)) == eltype (c)
242+ @test eltype (AlgebraicMultigrid . _solve (ml, b)) == eltype (c)
244243end
245244
246245end
@@ -308,15 +307,16 @@ for sz in [10, 5, 2]
308307end
309308
310309# Issue #46
311- for f in (smoothed_aggregation, ruge_stuben)
310+ for f in ((smoothed_aggregation, SmoothedAggregationAMG),
311+ (ruge_stuben, RugeStubenAMG))
312312
313313 a = load (" bug.jld2" )[" G" ]
314- ml = f (a)
314+ ml = f[ 1 ] (a)
315315 p = aspreconditioner (ml)
316316 b = zeros (size (a,1 ))
317317 b[1 ] = 1
318318 b[2 ] = - 1
319- @test sum (abs2, a * solve (ml , b) - b) < 1e-10
319+ @test sum (abs2, a * solve (a , b, f[ 2 ]() ) - b) < 1e-10
320320 @test sum (abs2, a * cg (a, b, Pl = p, maxiter = 1000 ) - b) < 1e-10
321321
322322end
327327X = poisson (27_000 )+ 24.0 * I
328328ml = ruge_stuben (X)
329329b = rand (27_000 )
330- @test solve (ml, b, reltol = 1e-10 ) ≈ X \ b rtol = 1e-10
330+ @test AlgebraicMultigrid . _solve (ml, b, reltol = 1e-10 ) ≈ X \ b rtol = 1e-10
0 commit comments