|
flow
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
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) |
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.