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

flow — device property closures: material properties / body forces as functions of fields. More...

#include <array>
#include <Kokkos_Core.hpp>
#include "mac_cutcell.hpp"

Go to the source code of this file.

Classes

struct  peclet::flow::Closure
 

Namespaces

namespace  peclet
 
namespace  peclet::flow
 

Enumerations

enum class  peclet::flow::ClosureKind { peclet::flow::LinearMix , peclet::flow::BoussinesqForce , peclet::flow::ArrheniusMu , peclet::flow::Table1D }
 

Functions

void peclet::flow::applyClosure (const Closure &cl, C3 e, int g)
 

Detailed Description

flow — device property closures: material properties / body forces as functions of fields.

A closure writes one target cell field (a material property like rho/mu, or a momentum body-force component) as a pointwise function of one or two input fields (a transported scalar, pressure, a phase fraction). Dispatch is a host-side enum switch launching ONE dedicated Kokkos kernel per closure kind — no per-cell Python, no device virtual dispatch. The Solver applies its closure list in registration order at the top of step() (properties frozen over the step; segregated coupling).

This is the seam for field–field coupling: Boussinesq buoyancy (force from temperature), temperature-dependent viscosity (Arrhenius), composition-dependent density (linear mixture), and tabulated properties. A user escape hatch (set_field on a property) bypasses closures entirely.

Definition in file property_closures.hpp.