flow
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
Loading...
Searching...
No Matches
mac_stencils.hpp File Reference

flow — portable (Kokkos) MAC stencil operators: Red-Black Gauss-Seidel smoothers + divergence. More...

#include <Kokkos_Core.hpp>

Go to the source code of this file.

Classes

struct  peclet::flow::I3
 

Namespaces

namespace  peclet
 
namespace  peclet::flow
 

Typedefs

using peclet::flow::SExec = Kokkos::DefaultExecutionSpace
 
using peclet::flow::SMem = SExec::memory_space
 
using peclet::flow::SField = Kokkos::View< double *, SMem >
 
using peclet::flow::SConst = Kokkos::View< const double *, SMem >
 

Functions

long peclet::flow::L3 (int x, int y, int z, I3 e)
 
void peclet::flow::diffSmoothColor (SField c, SConst b, I3 e, I3 og, int g, double beta, double Ac, int color, SConst dcorr)
 
void peclet::flow::poisSmoothColor (SField phi, SConst d, I3 e, I3 og, int g, int color)
 
void peclet::flow::divergence (SConst u, SConst v, SConst w, SField d, I3 e, int g)
 
void peclet::flow::poisSweep (SField phi, SConst d, I3 e, I3 og, int g)
 

Detailed Description

flow — portable (Kokkos) MAC stencil operators: Red-Black Gauss-Seidel smoothers + divergence.

Kokkos port of the core stencil kernels in distributed_ns.cuh (diff_k, pois_k, diverg_k): per inner cell, a 7-point stencil on the extended (inner+ghost) block, x-fastest. Red-Black Gauss-Seidel is expressed as two parallel_for passes (color 0 then 1) with the global-parity filter ((x+ogx)+(y+ogy)+(z+ogz))&1 == color — identical to the CUDA RB-GS (within a color the updates are independent, so no data race). Faithful copy of the math. Runs on any Kokkos backend.

Definition in file mac_stencils.hpp.