core
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
Loading...
Searching...
No Matches
peclet::core::amr::DistributedMultigridView< Dim, Bits > Class Template Reference

Device-resident distributed geometric multigrid for the plain Laplacian (the device analogue of the host DistributedMultigrid). More...

#include <distributed_view.hpp>

Public Types

using Octree = DistributedOctree< Dim, Bits >
 

Public Member Functions

void build (const IVec< Dim > &g0, const AmrGeometry< Dim > &geo, const std::array< bool, Dim > &periodic, MPI_Comm comm)
 
std::size_t numLevels () const
 
Index numLeaves (std::size_t L=0) const
 
DistributedPoissonView< Dim, Bits > & op (std::size_t L=0)
 
Octreeoctree (std::size_t L=0)
 
View< doublex (std::size_t L=0)
 
View< doubleb (std::size_t L=0)
 
void vcycle (View< double > x, View< const double > b, int pre=2, int post=2, int bottom=30, std::size_t L=0)
 One V-cycle of A x = b on level L (correction scheme); entirely device-resident bar the compact gather buffers + the residual-norm Allreduce.
 

Detailed Description

template<int Dim, unsigned Bits = (Dim == 2 ? 32u : (Dim == 3 ? 21u : 16u))>
class peclet::core::amr::DistributedMultigridView< Dim, Bits >

Device-resident distributed geometric multigrid for the plain Laplacian (the device analogue of the host DistributedMultigrid).

Hierarchy + nesting maps mirror the host build; smoother is the device distributed Jacobi; restriction (child-CSR gather) and prolongation (piecewise-constant) are the local, bit-exact device kernels from multigrid.hpp.

Definition at line 242 of file distributed_view.hpp.

Member Typedef Documentation

◆ Octree

template<int Dim, unsigned Bits = (Dim == 2 ? 32u : (Dim == 3 ? 21u : 16u))>
using peclet::core::amr::DistributedMultigridView< Dim, Bits >::Octree = DistributedOctree<Dim, Bits>

Definition at line 244 of file distributed_view.hpp.

Member Function Documentation

◆ build()

template<int Dim, unsigned Bits = (Dim == 2 ? 32u : (Dim == 3 ? 21u : 16u))>
void peclet::core::amr::DistributedMultigridView< Dim, Bits >::build ( const IVec< Dim > &  g0,
const AmrGeometry< Dim > &  geo,
const std::array< bool, Dim > &  periodic,
MPI_Comm  comm 
)
inline

Definition at line 246 of file distributed_view.hpp.

References MPI_Comm_size(), and peclet::core::toDevice().

◆ numLevels()

template<int Dim, unsigned Bits = (Dim == 2 ? 32u : (Dim == 3 ? 21u : 16u))>
std::size_t peclet::core::amr::DistributedMultigridView< Dim, Bits >::numLevels ( ) const
inline

Definition at line 314 of file distributed_view.hpp.

◆ numLeaves()

template<int Dim, unsigned Bits = (Dim == 2 ? 32u : (Dim == 3 ? 21u : 16u))>
Index peclet::core::amr::DistributedMultigridView< Dim, Bits >::numLeaves ( std::size_t  L = 0) const
inline

Definition at line 315 of file distributed_view.hpp.

◆ op()

template<int Dim, unsigned Bits = (Dim == 2 ? 32u : (Dim == 3 ? 21u : 16u))>
DistributedPoissonView< Dim, Bits > & peclet::core::amr::DistributedMultigridView< Dim, Bits >::op ( std::size_t  L = 0)
inline

Definition at line 316 of file distributed_view.hpp.

◆ octree()

template<int Dim, unsigned Bits = (Dim == 2 ? 32u : (Dim == 3 ? 21u : 16u))>
Octree & peclet::core::amr::DistributedMultigridView< Dim, Bits >::octree ( std::size_t  L = 0)
inline

Definition at line 317 of file distributed_view.hpp.

◆ x()

template<int Dim, unsigned Bits = (Dim == 2 ? 32u : (Dim == 3 ? 21u : 16u))>
View< double > peclet::core::amr::DistributedMultigridView< Dim, Bits >::x ( std::size_t  L = 0)
inline

◆ b()

template<int Dim, unsigned Bits = (Dim == 2 ? 32u : (Dim == 3 ? 21u : 16u))>
View< double > peclet::core::amr::DistributedMultigridView< Dim, Bits >::b ( std::size_t  L = 0)
inline

◆ vcycle()

template<int Dim, unsigned Bits = (Dim == 2 ? 32u : (Dim == 3 ? 21u : 16u))>
void peclet::core::amr::DistributedMultigridView< Dim, Bits >::vcycle ( View< double x,
View< const double b,
int  pre = 2,
int  post = 2,
int  bottom = 30,
std::size_t  L = 0 
)
inline

The documentation for this class was generated from the following file: