diff --git a/docs/src/api.md b/docs/src/api.md index ca6b8fb..a43b0c3 100644 --- a/docs/src/api.md +++ b/docs/src/api.md @@ -37,3 +37,7 @@ HYPRE.ParaSails HYPRE.GetNumIterations HYPRE.GetFinalRelativeResidualNorm ``` + +```@docs +HYPRE.BoomerAMGPrecBuilder +``` diff --git a/src/precs.jl b/src/precs.jl index dc046c3..68bc64d 100644 --- a/src/precs.jl +++ b/src/precs.jl @@ -9,7 +9,24 @@ function LinearAlgebra.ldiv!(y::AbstractVector, prec::BoomerAMGPrecWrapper, x::A end """ - BoomerAMGPrecBuilder(settings_fun; kwargs...) + HYPRE.BoomerAMGPrecBuilder(settings_fun; kwargs...) + +LinearSolve.jl compatible constructor for BoomerAMG preconditioners. +Here `settings_fun(bamg::HYPRE.BoomerAMG, A::AbstractMatrix, p)` will be called on construction to +allow users setting options directly in BoomerAMG via the internal interface. The `kwargs` will be +passed into the BoomerAMG constructor. + +## Example + +```julia +function set_debug_printlevel(bamg, A, p) + HYPRE.HYPRE_BoomerAMGSetPrintLevel(bamg, 3) +end +bamg = HYPRE.BoomerAMGPrecBuilder( + set_debug_printlevel; + Tol = 1e-9, +) +``` """ struct BoomerAMGPrecBuilder{SFun, Tk} settings_fun!::SFun