|
core 0.5.0
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
|
#include <graph_amg_device.hpp>
Classes | |
| struct | DLevel |
Public Types | |
| using | DView = View< double > |
| using | IView = View< Index > |
Public Member Functions | |
| void | build (const HostCsrOp &A, const AmgParams &prm={}) |
| Host setup + one-time device mirror. Rebuild whenever the operator changes. | |
| void | apply (const DView &r, const DView &z) const |
| z = M⁻¹ r: one V-cycle (correction scheme) from a zero initial guess. Device views, size n. | |
| int | numLevels () const |
| Index | size (int L=0) const |
| const GraphAMG & | hostHierarchy () const |
| void | mirror () |
| void | vcycle (int L) const |
| void | smooth (const DLevel &lv, int sweeps) const |
| void | jacobiSweep (const DLevel &lv) const |
| void | chebSweep (const DLevel &lv) const |
| void | coarseSolve (const DLevel &lv) const |
Static Public Member Functions | |
| template<class T > | |
| static View< T > | toDev (const std::vector< T > &v, const char *name) |
| static void | spmv (const DLevel &lv, const DView &x, const DView &y) |
| static double | dot (const DView &a, const DView &b, Index n) |
Definition at line 29 of file graph_amg_device.hpp.
| using peclet::core::solver::GraphAMGDevice::DView = View<double> |
Definition at line 31 of file graph_amg_device.hpp.
| using peclet::core::solver::GraphAMGDevice::IView = View<Index> |
Definition at line 32 of file graph_amg_device.hpp.
|
inline |
Host setup + one-time device mirror. Rebuild whenever the operator changes.
Definition at line 35 of file graph_amg_device.hpp.
z = M⁻¹ r: one V-cycle (correction scheme) from a zero initial guess. Device views, size n.
Definition at line 42 of file graph_amg_device.hpp.
References peclet::core::solver::GraphAMGDevice::DLevel::b, vcycle(), and peclet::core::solver::GraphAMGDevice::DLevel::x.
|
inline |
Definition at line 50 of file graph_amg_device.hpp.
|
inline |
Definition at line 51 of file graph_amg_device.hpp.
|
inline |
Definition at line 52 of file graph_amg_device.hpp.
|
inlinestatic |
Definition at line 68 of file graph_amg_device.hpp.
Referenced by mirror().
|
inline |
Definition at line 77 of file graph_amg_device.hpp.
References peclet::core::solver::GraphAMGDevice::DLevel::b, peclet::core::solver::GraphAMGDevice::DLevel::coef, peclet::core::solver::GraphAMGDevice::DLevel::diag, peclet::core::solver::GraphAMGDevice::DLevel::invDiag, peclet::core::solver::GraphAMG::levels(), peclet::core::solver::GraphAMGDevice::DLevel::lmax, peclet::core::solver::GraphAMGDevice::DLevel::n, peclet::core::solver::GraphAMGDevice::DLevel::nbr, peclet::core::solver::GraphAMGDevice::DLevel::nc, peclet::core::solver::GraphAMGDevice::DLevel::Pcol, peclet::core::solver::GraphAMGDevice::DLevel::Pstart, peclet::core::solver::GraphAMGDevice::DLevel::Pval, peclet::core::solver::GraphAMGDevice::DLevel::Rcol, peclet::core::solver::GraphAMGDevice::DLevel::res, peclet::core::solver::GraphAMGDevice::DLevel::Rstart, peclet::core::solver::GraphAMGDevice::DLevel::Rval, peclet::core::solver::GraphAMGDevice::DLevel::start, peclet::core::solver::GraphAMGDevice::DLevel::t0, peclet::core::solver::GraphAMGDevice::DLevel::t1, toDev(), and peclet::core::solver::GraphAMGDevice::DLevel::x.
|
inlinestatic |
Definition at line 130 of file graph_amg_device.hpp.
References peclet::core::solver::GraphAMGDevice::DLevel::coef, peclet::core::solver::GraphAMGDevice::DLevel::diag, peclet::core::solver::GraphAMGDevice::DLevel::n, peclet::core::solver::GraphAMGDevice::DLevel::nbr, and peclet::core::solver::GraphAMGDevice::DLevel::start.
Referenced by chebSweep(), coarseSolve(), jacobiSweep(), and vcycle().
|
inline |
Definition at line 143 of file graph_amg_device.hpp.
References peclet::core::solver::GraphAMGDevice::DLevel::b, coarseSolve(), peclet::core::solver::GraphAMGDevice::DLevel::n, peclet::core::solver::GraphAMGDevice::DLevel::Pcol, peclet::core::solver::AmgParams::post, peclet::core::solver::AmgParams::pre, peclet::core::solver::GraphAMGDevice::DLevel::Pstart, peclet::core::solver::GraphAMGDevice::DLevel::Pval, peclet::core::solver::GraphAMGDevice::DLevel::Rcol, peclet::core::solver::GraphAMGDevice::DLevel::res, peclet::core::solver::GraphAMGDevice::DLevel::Rstart, peclet::core::solver::GraphAMGDevice::DLevel::Rval, smooth(), spmv(), vcycle(), and peclet::core::solver::GraphAMGDevice::DLevel::x.
|
inline |
Definition at line 187 of file graph_amg_device.hpp.
References peclet::core::solver::AmgParams::chebDegree, chebSweep(), and jacobiSweep().
Referenced by coarseSolve(), and vcycle().
|
inline |
Definition at line 197 of file graph_amg_device.hpp.
References peclet::core::solver::GraphAMGDevice::DLevel::b, peclet::core::solver::GraphAMGDevice::DLevel::invDiag, peclet::core::solver::AmgParams::jacobiOmega, peclet::core::solver::GraphAMGDevice::DLevel::lmax, peclet::core::solver::GraphAMGDevice::DLevel::n, peclet::core::solver::GraphAMGDevice::DLevel::res, spmv(), and peclet::core::solver::GraphAMGDevice::DLevel::x.
Referenced by smooth().
|
inline |
Definition at line 206 of file graph_amg_device.hpp.
References peclet::core::solver::GraphAMGDevice::DLevel::b, peclet::core::solver::AmgParams::chebDegree, peclet::core::solver::GraphAMGDevice::DLevel::invDiag, peclet::core::solver::GraphAMGDevice::DLevel::lmax, peclet::core::solver::GraphAMGDevice::DLevel::n, peclet::core::solver::GraphAMGDevice::DLevel::res, spmv(), peclet::core::solver::GraphAMGDevice::DLevel::t0, peclet::core::solver::GraphAMGDevice::DLevel::t1, and peclet::core::solver::GraphAMGDevice::DLevel::x.
Referenced by smooth().
|
inlinestatic |
Definition at line 233 of file graph_amg_device.hpp.
Referenced by coarseSolve().
|
inline |
Definition at line 243 of file graph_amg_device.hpp.
References peclet::core::solver::GraphAMGDevice::DLevel::b, peclet::core::solver::AmgParams::coarseSweeps, dot(), peclet::core::solver::GraphAMGDevice::DLevel::n, peclet::core::solver::GraphAMGDevice::DLevel::res, smooth(), spmv(), peclet::core::solver::GraphAMGDevice::DLevel::t0, peclet::core::solver::GraphAMGDevice::DLevel::t1, and peclet::core::solver::GraphAMGDevice::DLevel::x.
Referenced by vcycle().