core 0.5.0
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
Loading...
Searching...
No Matches
peclet::core::amr::LeafHaloExchange Class Reference

Device-resident value refresh over a finalized LeafHalo: pack the owner's local values as a Kokkos kernel, move only the compact buffers across MPI (host-staged by default, GPU-aware via PECLET_CORE_GPU_AWARE_MPI — the GridHalo/DistributedGatherHalo pattern), scatter into the ghost tail of the extended device field. More...

#include <leaf_halo.hpp>

Public Member Functions

template<int Dim, unsigned Bits>
void init (const LeafHalo< Dim, Bits > &h)
 
Index numGhosts () const
 
void exchange (View< double > x, int tag=45) const
 Refresh x[nLocal, nLocal+nGhost) (x is the extended device field, size >= extendedSize()).
 
void exchange3 (View< double > x0, View< double > x1, View< double > x2, int tag=46) const
 Batched 3-component refresh (one message round for u0,u1,u2 — stride-3 packing).
 

Detailed Description

Device-resident value refresh over a finalized LeafHalo: pack the owner's local values as a Kokkos kernel, move only the compact buffers across MPI (host-staged by default, GPU-aware via PECLET_CORE_GPU_AWARE_MPI — the GridHalo/DistributedGatherHalo pattern), scatter into the ghost tail of the extended device field.

exchange3 batches three components per message round.

Definition at line 307 of file leaf_halo.hpp.

Member Function Documentation

◆ init()

template<int Dim, unsigned Bits>
void peclet::core::amr::LeafHaloExchange::init ( const LeafHalo< Dim, Bits > &  h)
inline

◆ numGhosts()

Index peclet::core::amr::LeafHaloExchange::numGhosts ( ) const
inline

Definition at line 337 of file leaf_halo.hpp.

◆ exchange()

void peclet::core::amr::LeafHaloExchange::exchange ( View< double x,
int  tag = 45 
) const
inline

Refresh x[nLocal, nLocal+nGhost) (x is the extended device field, size >= extendedSize()).

Definition at line 340 of file leaf_halo.hpp.

References peclet::core::amr::transferFieldGradients().

Referenced by peclet::core::amr::AmrFlow< Bits >::prepareDistributed(), and peclet::core::amr::AmrFlow< Bits >::syncScalar().

◆ exchange3()

void peclet::core::amr::LeafHaloExchange::exchange3 ( View< double x0,
View< double x1,
View< double x2,
int  tag = 46 
) const
inline

Batched 3-component refresh (one message round for u0,u1,u2 — stride-3 packing).

Definition at line 360 of file leaf_halo.hpp.

References peclet::core::amr::transferFieldGradients().

Referenced by peclet::core::amr::AmrFlow< Bits >::syncVel().


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