|
flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
flow — portable (Kokkos) geometric multigrid for the cut-cell (variable-openness) pressure Poisson. More...
#include <cassert>#include <chrono>#include <cmath>#include <cstdlib>#include <Kokkos_Core.hpp>#include <limits>#include <memory>#include <stdexcept>#include <string>#include <vector>#include "ghost_projection.hpp"#include "mac_bc.hpp"#include "mac_pressure.hpp"#include "mg_bottom_direct.hpp"#include "peclet/core/solver/graph_amg.hpp"#include "star_elimination.hpp"Go to the source code of this file.
Classes | |
| struct | peclet::flow::CcNbrs |
| struct | peclet::flow::BottomLevel |
| struct | peclet::flow::BottomLabelKernel |
| struct | peclet::flow::BottomKernel< FacReal > |
| class | peclet::flow::CutcellMG |
| struct | peclet::flow::CutcellMG::Level |
| struct | peclet::flow::CutcellMG::OverlayScope |
Namespaces | |
| namespace | peclet |
| namespace | peclet::flow |
Typedefs | |
| using | peclet::flow::MReal = float |
| using | peclet::flow::FPV = Kokkos::View< MReal *, CCMem > |
| using | peclet::flow::FPC = Kokkos::View< const MReal *, CCMem > |
Enumerations | |
| enum | : int { peclet::flow::kCaMomentum = 1 , peclet::flow::kCaMg = 2 , peclet::flow::kCaBoth = kCaMomentum | kCaMg } |
Variables | |
| constexpr long | peclet::flow::kBottomMaxCells = 8192 |
| constexpr double | peclet::flow::kBottomTau = 1e-5 |
| constexpr int | peclet::flow::kBottomMaxComponents = 64 |
| constexpr int | peclet::flow::kBottomCap = 100 |
| constexpr int | peclet::flow::kBottomHostTeam = 8 |
| constexpr int | peclet::flow::kBottomHostFactorTeam = 2 |
flow — portable (Kokkos) geometric multigrid for the cut-cell (variable-openness) pressure Poisson.
Single-GPU (periodic) port of CUDA's DistributedPoissonMG (mac_multigrid.cuh): a level hierarchy with the rediscretized cut-cell operator (average-coarsen the face openness per level + re-assemble the operator at the coarse spacing, mg_coarsen_open_avg_k), a V-cycle with red-black Gauss-Seidel smoothing + average restriction + trilinear prolongation + constant-null-space (mean) removal, and an MG-PCG outer driver (CG preconditioned by one symmetric V-cycle). Operator stored single-precision (mreal=float) + double iterate, exactly as CUDA. Reuses buildCutcellOp / cutcellSmoothColor / applyCutcellOp (mac_pressure). Not yet ported (noted for later): Galerkin coarse op, Chebyshev smoother, semi-coarsening, domain-BC MG, MPI. Runs on any Kokkos backend.
Definition in file mac_cutcell_mg.hpp.