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

flow — portable (Kokkos) Robust-Scaled cut-cell IBM primitives + per-cut-cell overlay build. More...

#include <Kokkos_Core.hpp>
#include <Kokkos_MathematicalFunctions.hpp>

Go to the source code of this file.

Classes

struct  peclet::flow::IbmOverlayT< Space >
 

Namespaces

namespace  peclet
 
namespace  peclet::flow
 

Typedefs

using peclet::flow::IMem = Kokkos::DefaultExecutionSpace::memory_space
 
using peclet::flow::IbmOverlay = IbmOverlayT< IMem >
 

Functions

float peclet::flow::poly_D (float xi)
 
float peclet::flow::poly_N_nb (float xi)
 
float peclet::flow::poly_Nc (float xi)
 
float peclet::flow::poly_Nbc (float)
 
float peclet::flow::poly_D_avg (float xi)
 
float peclet::flow::poly_Nnb_avg (float xi)
 
float peclet::flow::poly_Nc_avg (float xi)
 
float peclet::flow::poly_Nbc_avg (float)
 
float peclet::flow::poly_D_sandwich (float xi_m, float xi_p)
 
float peclet::flow::poly_N_c_sandwich (float xi_m, float xi_p)
 
float peclet::flow::poly_Nbc_pp_sw (float xi_m, float xi_p)
 
float peclet::flow::poly_Nbc_mp_sw (float xi_m, float xi_p)
 
float peclet::flow::poly_D_sandwich_avg (float xi_m, float xi_p)
 
float peclet::flow::poly_N_c_sandwich_avg (float xi_m, float xi_p)
 
float peclet::flow::poly_Nbc_pp_sw_avg (float xi_m, float xi_p)
 
float peclet::flow::poly_Nbc_mp_sw_avg (float xi_m, float xi_p)
 
template<int SCHEME, class OV >
void peclet::flow::ibmFillEntry (const OV &o, int list_idx, int c_idx, float sdf_c, const float sdf_n[6], int bc_type)
 
void peclet::flow::ibmBuildDiffusion (Kokkos::View< float *, IMem > AC, Kokkos::View< float *, IMem > AW, Kokkos::View< float *, IMem > AE, Kokkos::View< float *, IMem > AS, Kokkos::View< float *, IMem > AN, Kokkos::View< float *, IMem > AB, Kokkos::View< float *, IMem > AT, int ex, int ey, int ez, double beta, double idiag)
 
template<class FaceProps >
void peclet::flow::ibmBuildDiffusionVar (Kokkos::View< float *, IMem > AC, Kokkos::View< float *, IMem > AW, Kokkos::View< float *, IMem > AE, Kokkos::View< float *, IMem > AS, Kokkos::View< float *, IMem > AN, Kokkos::View< float *, IMem > AB, Kokkos::View< float *, IMem > AT, int ex, int ey, int ez, int g, FaceProps fp)
 
void peclet::flow::ibmModifyStencil (Kokkos::View< float *, IMem > AC, Kokkos::View< float *, IMem > AW, Kokkos::View< float *, IMem > AE, Kokkos::View< float *, IMem > AS, Kokkos::View< float *, IMem > AN, Kokkos::View< float *, IMem > AB, Kokkos::View< float *, IMem > AT, Kokkos::View< double *, IMem > a_inhom, Kokkos::View< double *, IMem > rhs_scale, const IbmOverlay &ibm, int numActive, float u_bc_val)
 

Detailed Description

flow — portable (Kokkos) Robust-Scaled cut-cell IBM primitives + per-cut-cell overlay build.

Kokkos port of cut_cell_ibm.cuh (the boundary-distance polynomials) and ibm_fill_entry from mac_ibm.cuh (the per-cut-cell stencil-modification factors K/M/X/Nbc/R + D_rescale). Faithful copy of the Dirichlet/Neumann, point-value(SCHEME 0)/cell-average(1), and sandwiched (double-sided) cases. Output factors are written into Kokkos Views (SoA, [list_idx*6+k]); the build kernel fills one entry per cut cell. KOKKOS_INLINE_FUNCTION so the math is shared with the host reference.

Definition in file cut_cell_ibm.hpp.