BoomerAMG preconditioner over the Kokkos surface Newton matrix.
More...
#include <KokkosAmgPreconditioner.hpp>
BoomerAMG preconditioner over the Kokkos surface Newton matrix.
Lives entirely in the plugin's ExecSpace/MemSpace. Construct once, then per CVODE psetup call setup(), per psolve call solve().
◆ KokkosAmgPreconditioner() [1/2]
| openswmm::twoD::gpu::KokkosAmgPreconditioner::KokkosAmgPreconditioner |
( |
| ) |
|
|
default |
◆ ~KokkosAmgPreconditioner()
| openswmm::twoD::gpu::KokkosAmgPreconditioner::~KokkosAmgPreconditioner |
( |
| ) |
|
◆ KokkosAmgPreconditioner() [2/2]
◆ finalize()
| void openswmm::twoD::gpu::KokkosAmgPreconditioner::finalize |
( |
| ) |
|
◆ initialize()
| void openswmm::twoD::gpu::KokkosAmgPreconditioner::initialize |
( |
const MeshViews & | mesh | ) |
|
Build static CSR sparsity from the mesh topology + allocate hypre objects in the active memory location. Call once per solver initialize().
◆ invalidate()
| void openswmm::twoD::gpu::KokkosAmgPreconditioner::invalidate |
( |
| ) |
|
|
inlinenoexcept |
Drop the lagged-reuse cache: the next setup() rebuilds the matrix and hierarchy regardless of the recompute flag. Call after the solver state is re-seeded (CVodeReInit).
◆ operator=()
◆ ready()
| bool openswmm::twoD::gpu::KokkosAmgPreconditioner::ready |
( |
| ) |
const |
|
inlinenoexcept |
◆ setup()
| void openswmm::twoD::gpu::KokkosAmgPreconditioner::setup |
( |
const MeshViews & | mesh, |
|
|
const StateViews & | state, |
|
|
double | gamma, |
|
|
bool | recompute ) |
Assemble M = I − γ·J from the current Views and (re)build the hierarchy. When recompute is false and a hierarchy exists, the prior matrix + hierarchy are reused verbatim (CVODE's lagged-preconditioner policy — mirrors the serial HypreAmgPreconditioner).
◆ solve()
| void openswmm::twoD::gpu::KokkosAmgPreconditioner::solve |
( |
DView | r, |
|
|
DView | z, |
|
|
double | gamma ) |
Apply one BoomerAMG V-cycle: z ≈ M⁻¹ r (Views in the plugin's MemSpace).
The documentation for this class was generated from the following files: