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

flow — WO-P3c: the view-level driver of the cascade-consistent interfacial area. More...

#include <Kokkos_Core.hpp>
#include <stdexcept>
#include "mac_stencils.hpp"
#include "policy.hpp"
#include "vof/advect_wy.hpp"
#include "vof/curvature.hpp"
#include "vof/curvature_field.hpp"
#include "vof/interface_area.hpp"

Go to the source code of this file.

Classes

class  peclet::flow::vof::VofInterfaceArea
 Interfacial area per cell from the V3 curvature cascade's own geometry. More...
 
struct  peclet::flow::vof::VofInterfaceArea::Stats
 Per-call census over the inner region (LOCAL; a distributed caller sums it). More...
 

Namespaces

namespace  peclet
 
namespace  peclet::flow
 
namespace  peclet::flow::vof
 

Detailed Description

flow — WO-P3c: the view-level driver of the cascade-consistent interfacial area.

vof/interface_area.hpp holds the container-free kernels; this file is their block-walking driver, exactly the split curvature.hpp / curvature_field.hpp uses. It produces one output field on the colour advector's g = 3 block:

  • area — the interfacial area of each cell, in h^2 (0 in non-interfacial cells).

Why this is a SIBLING of VofCurvature and not a second output of it. Hard rule 1 of the VoF campaign: never edit a validated kernel body. VofCurvature::heightPass / fallbackPass are gated by rung V3's numbers; adding a write to them would put every one of those numbers back in play. The cascade walk is therefore repeated here, calling the SAME container-free kernels (hfColumnHeight, curvFrame, PvFit, plicPolygon) with the same tolerances and the same tier order, so the two drivers agree on which tier serves a cell by construction. The duplication is deliberate and is the cheaper half of the trade: a consolidation (one pass emitting kappa AND area) belongs with the next re-validation of V3.

The reach is unchanged — tier 1/2 read a 3x3x7 colour patch, tier 3 a 5^3 of PLIC planes whose MYC normals read +-1 around them, i.e. +-3 everywhere — so this needs no new halo and, having no reduction in it except the census, is bitwise decomposition-independent by construction.

Definition in file interface_area_field.hpp.