1 #ifndef AMREX_SMOOTHER_MV_H_
2 #define AMREX_SMOOTHER_MV_H_
19 auto const& diag =
m_A->diagonalVector();
22 for (
int iter = 0; iter <
m_niters; ++iter) {
28 ForEach(xvec, Axvec, bvec, diag,
32 x += (
b-ax)/d * T(2./3.);
#define AMREX_GPU_DEVICE
Definition: AMReX_GpuQualifiers.H:18
Definition: AMReX_AlgVector.H:19
void setVal(T val)
Definition: AMReX_AlgVector.H:146
AlgPartition const & partition() const
Definition: AMReX_AlgVector.H:43
Definition: AMReX_Smoother_MV.H:11
JacobiSmoother(SpMatrix< T > const *a_A)
Definition: AMReX_Smoother_MV.H:13
SpMatrix< T > const * m_A
Definition: AMReX_Smoother_MV.H:40
int setNumIters(int a_niters)
Definition: AMReX_Smoother_MV.H:15
void operator()(AlgVector< T > &xvec, AlgVector< T > const &bvec)
Definition: AMReX_Smoother_MV.H:17
int m_niters
Definition: AMReX_Smoother_MV.H:41
Definition: AMReX_SpMatrix.H:19
void streamSynchronize() noexcept
Definition: AMReX_GpuDevice.H:237
Definition: AMReX_Amr.cpp:49
void SpMV(AlgVector< T > &y, SpMatrix< T > const &A, AlgVector< T > const &x)
Definition: AMReX_SpMV.H:20
constexpr void ForEach(TypeList< Ts... >, F &&f)
For each type t in TypeList, call f(t)
Definition: AMReX_TypeList.H:78