Browse Source

Fix test

pull/35/head
termi-official 9 months ago
parent
commit
f662b8fd04
  1. 1
      src/HYPRE.jl
  2. 16
      src/precs.jl
  3. 8
      test/runtests.jl

1
src/HYPRE.jl

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
module HYPRE
using MPI: MPI
import LinearAlgebra
export HYPREMatrix, HYPREVector

16
src/precs.jl

@ -1,5 +1,3 @@ @@ -1,5 +1,3 @@
import LinearAlgebra
struct BoomerAMGPrecWrapper{MatType}
P::HYPRE.BoomerAMG
A::MatType
@ -19,17 +17,13 @@ struct BoomerAMGPrecBuilder{SFun, Tk} @@ -19,17 +17,13 @@ struct BoomerAMGPrecBuilder{SFun, Tk}
end
# Syntactic sugar wth some defaults
function BoomerAMGPrecBuilder(settings_fun! = (amg, A, p) -> nothing; MaxIter = 1, Tol = 0.0, kwargs...)
return construct_boomeramg_prec_builder(settings_fun!; MaxIter, Tol, kwargs)
end
# Helper to package kwargs
function construct_boomeramg_prec_builder(settings_fun!; kwargs...)
function BoomerAMGPrecBuilder(settings_fun! = (amg, A, p) -> nothing; kwargs...)
return BoomerAMGPrecBuilder(settings_fun!, kwargs)
end
function (b::BoomerAMGPrecBuilder)(A, p)
amg = HYPRE.BoomerAMG(; b.kwargs)
settings_fun!(amg, A, p)
return (BoomerAMGPrecWrapper(amg, A), I)
amg = HYPRE.BoomerAMG(; b.kwargs...)
Internals.set_precond_defaults(amg)
b.settings_fun!(amg, A, p)
return (BoomerAMGPrecWrapper(amg, A), LinearAlgebra.I)
end

8
test/runtests.jl

@ -28,9 +28,9 @@ end @@ -28,9 +28,9 @@ end
x = zeros(100)
# Solve
tol = 1e-9
function set_debug_printlevel(amg, A, p)
HYPRE.HYPRE_BoomerAMGSetPrintLevel(amg, 3)
end
# function set_debug_printlevel(amg, A, p)
# HYPRE.HYPRE_BoomerAMGSetPrintLevel(amg, 3)
# end
bamg = HYPRE.BoomerAMGPrecBuilder(
(amg, A, p) -> nothing;
MaxIter = 1,
@ -39,7 +39,7 @@ end @@ -39,7 +39,7 @@ end
prob = LinearProblem(A, b)
solver = KrylovJL_CG(precs = bamg)
x = solve(prob, solver, atol=1.0e-14)
@test x A \ b atol=tol
@test x A \ b atol=tol
end

Loading…
Cancel
Save