include/pops/numerics/elliptic/eb/cut_fraction.hpp File ReferenceΒΆ
|
adc_cpp 0.3.0
Model-free C++23 core for coupled hyperbolic-elliptic systems on adaptive (AMR) meshes, with MPI and GPU (Kokkos) backends
|
cut_fraction.hpp File Reference
SHARED cut-fraction primitive (cut-cell / embedded boundary). More...
#include <pops/core/foundation/types.hpp>
Include dependency graph for cut_fraction.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | pops::detail::CutFraction |
| Geometric result of crossing a cut cell: 4 cut distances per face, the 4 apertures alpha_f normalized in [0, 1] (alpha_f = face_distance / h), and the volume fraction kappa of the cell (share of the cell in the active domain). More... | |
| struct | pops::detail::ShortleyWellerWeights |
| Shortley-Weller weights (5-point cut-cell stencil) from the 4 cut distances. More... | |
Namespaces | |
| namespace | pops |
| namespace | pops::detail |
Functions | |
| POPS_HD Real | pops::detail::cut_distance (Real lc, Real ln, Real h) |
| Cut distance of ONE face along a direction, starting from the active center (ls < 0). | |
| template<class LevelSet > | |
| POPS_HD CutFraction | pops::detail::cut_fraction (const LevelSet &ls, Real xc, Real yc, Real dx, Real dy) |
Computes the cut geometry of an ACTIVE cell (center (xc, yc) with ls < 0) from a level-set ls evaluated at the center and at the 4 cardinal neighbors at distance dx / dy. | |
| POPS_HD ShortleyWellerWeights | pops::detail::shortley_weller (const CutFraction &cf) |
Detailed Description
SHARED cut-fraction primitive (cut-cell / embedded boundary).
A SINGLE face-crossing computation shared between:
- the elliptic solver (geometric_mg.hpp: Shortley-Weller weights of the Poisson wall),
- the future EB transport (FV aperture of the disc faces). Both MUST read the SAME aperture geometry so the FV aperture is bit-consistent with the elliptic wall (the "Cartesian ring edge" lock: the FV aperture and the elliptic wall must agree on the same disc-of-radius-R boundary; cf. docs/HOFFART_FIDELITY.md for the validation fidelity table).
The canonical level-set is detail::DiscDomain::level_set (numerics/embedded_boundary.hpp): ls(x, y) = hypot(x - cx, y - cy) - R, < 0 INSIDE, sign of the boundary. This primitive is header-only, POPS_HD (device-safe) and STATELESS: it takes a level-set callback by value and the cell, and returns purely geometric distances/aperture.
Generated by