waLBerla 7.3
Loading...
Searching...
No Matches
walberla::v8::sweep Namespace Reference

Namespaces

namespace  detail
namespace  exectag
namespace  internal

Classes

class  BorderSweep
 Sweep restriction to a domain border. More...
class  FusedSweep
 Fusion of two sweeps. More...
class  CommHidingSweep
class  SweepFactory
 Factory for derived and wrapper sweeps. More...
struct  CellIdx
class  SparseIndexList
class  SerialSweeper

Enumerations

enum  CommHidingIntervall { ALL , INNER , OUTER }

Functions

template<CellFunction Func>
void forAllCells (const exectag::Serial &, const CellInterval &ci, Func &&func)
 Single-thread CPU cellwise kernel dispatcher.
template<CellFunction Func>
void forAllCells (const exectag::OpenMP &, const CellInterval &ci, Func &&func)
 Multi-threaded CPU cellwise kernel dispatcher using OpenMP.
template<CellFunction Func>
void forAllCells (const exectag::GPU &, const CellInterval &, Func &&)
 GPU-accelerated kernel dispatcher.
template<ExecTag XTag, CellFunction Func>
void forAllCells (const XTag &exTag, const StructuredBlockForest &blocks, Func &&func)
 Invoke forAllCells on the default per-block cell interval.
void sync ()
 Synchronize with concurrent execution on the default stream.
template<ExecTag XTag, CellPairFunction Func>
void forAllCellPairs (XTag xtag, const CellInterval &firstCi, const CellInterval &secondCi, Func func)
 Run an operation for every pair of cells in the given intervals.

Enumeration Type Documentation

◆ CommHidingIntervall

Enumerator
ALL 
INNER 
OUTER 

Function Documentation

◆ forAllCellPairs()

template<ExecTag XTag, CellPairFunction Func>
void walberla::v8::sweep::forAllCellPairs ( XTag xtag,
const CellInterval & firstCi,
const CellInterval & secondCi,
Func func )
inline

Run an operation for every pair of cells in the given intervals.

Iterates the given cell intervals sequentially and in lockstep in z-y-x order (x is the fastest, z the slowest coordinate) and calls func for every pair of cells.

Exceptions
std::invalid_argumentIn debug mode, throws if the given cell intervals are of different size.

◆ forAllCells()

template<ExecTag XTag, CellFunction Func>
void walberla::v8::sweep::forAllCells ( const XTag & exTag,
const StructuredBlockForest & blocks,
Func && func )

Invoke forAllCells on the default per-block cell interval.

◆ sync()

void walberla::v8::sweep::sync ( )
inline

Synchronize with concurrent execution on the default stream.

When running with a GPU programming model, wait for currently active work on the primary stream or queue is finished.

Note
This function only waits for executions dispatched on a default-constructed exectag::GPU.
When no GPU back-end is enabled, this function may still safely be called, but will do nothing