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

flow — portable (Kokkos) cut-cell pressure-operator face openness from an SDF. More...

#include <cstdlib>
#include <Kokkos_Core.hpp>
#include <Kokkos_MathematicalFunctions.hpp>
#include <type_traits>
#include <utility>
#include "policy.hpp"

Go to the source code of this file.

Classes

struct  peclet::flow::C3
 
struct  peclet::flow::ccdetail::ReduceValue< R, bool >
 
struct  peclet::flow::ccdetail::ReduceValue< R, false >
 
struct  peclet::flow::ccdetail::ReduceValue< R, false >::Pick< T, bool >
 
struct  peclet::flow::ccdetail::ReduceValue< R, false >::Pick< T, true >
 

Namespaces

namespace  peclet
 
namespace  peclet::flow
 
namespace  peclet::flow::ccdetail
 

Macros

#define PECLET_FLOW_OMP_SIMD
 

Typedefs

using peclet::flow::CCExec = Kokkos::DefaultExecutionSpace
 
using peclet::flow::CCMem = CCExec::memory_space
 
using peclet::flow::CCField = Kokkos::View< double *, CCMem >
 
using peclet::flow::CCConst = Kokkos::View< const double *, CCMem >
 

Functions

double peclet::flow::ccFractionCore (double sd, double sxp, double sxm, double syp, double sym, double szp, double szm, int type, double dx, double dy, double dz)
 
double peclet::flow::ccSampleExt (CCConst sdf, C3 ext, double x, double y, double z)
 
double peclet::flow::ccFaceOpen (CCConst sdf, C3 ext, double fx, double fy, double fz, int type, double dx, double dy, double dz)
 
double peclet::flow::ccTriFrac (double a, double b, double c)
 
double peclet::flow::ccFaceOpenMS (CCConst sdf, C3 ext, double fx, double fy, double fz, int type)
 
void peclet::flow::buildOpenness (CCField ox, CCField oy, CCField oz, CCConst sdf, C3 ext, double dx, double dy, double dz, int order=1)
 
void peclet::flow::buildOpennessHighFace (CCField oa, CCConst sdf, C3 ext, int g, int a, double dx, double dy, double dz, int order=1)
 
bool peclet::flow::hostRunSerial (long cells)
 
template<bool Simd, class F >
void peclet::flow::ccdetail::ccRows3 (const char *name, C3 lo, C3 hi, F f)
 
template<class F >
void peclet::flow::ccFor3 (const char *name, C3 lo, C3 hi, F f)
 
template<class F >
void peclet::flow::ccForRows3 (const char *name, C3 lo, C3 hi, F f)
 
template<class F , class... R>
void peclet::flow::ccReduce3 (const char *name, C3 lo, C3 hi, F f, R &&... reducers)
 

Variables

constexpr long peclet::flow::kHostSerialCellCutoff = 8192L
 

Detailed Description

flow — portable (Kokkos) cut-cell pressure-operator face openness from an SDF.

Kokkos port of mac_cutcell.cuh: the gradient-normalised masked fluid fraction (cc_fraction_core)

  • trilinear SDF sampling, producing the staggered face openness ox/oy/oz (ox[i] = openness of the -x face of cell i) over the extended (inner+ghost) block. Faithful copy of the fraction math. KOKKOS_INLINE_FUNCTION so it is shared with the host reference. Runs on any Kokkos backend.

Definition in file mac_cutcell.hpp.

Macro Definition Documentation

◆ PECLET_FLOW_OMP_SIMD

#define PECLET_FLOW_OMP_SIMD

Definition at line 312 of file mac_cutcell.hpp.