DiscDomain Struct 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
|
CIRCLE / DISC level-set domain: the canonical instance of the contract and the SINGLE SOURCE of truth for the active circular domain (a disc of radius R; see docs/HOFFART_FIDELITY.md for the reference scenario it was validated against). More...
#include <domain.hpp>
Collaboration diagram for pops::detail::DiscDomain:Public Member Functions | |
| POPS_HD Real | level_set (Real x, Real y) const |
| Level set ls(x, y) = hypot(x - cx, y - cy) - R: < 0 inside, 0 at the boundary, > 0 outside. | |
| POPS_HD Real | operator() (Real x, Real y) const |
| Callable form (the LevelSet argument of cut_fraction / assemble_rhs_eb); forwards to level_set. | |
| POPS_HD bool | cell_active (Real x, Real y) const |
| ACTIVE cell: its center (x, y) is inside the disc (ls < 0). Same inside test as GeometricMG. | |
Static Public Member Functions | |
| static DiscDomain | centered_in_box (double L, double radius) |
Disc centered in a square box [0, L]^2 with radius radius (same center as wall_predicate("circle", radius, L): (L/2, L/2)). | |
Public Attributes | |
| double | cx = 0.0 |
| center x (default L/2 when built from L) | |
| double | cy = 0.0 |
| center y (default L/2 when built from L) | |
| double | R = 0.0 |
| disc radius | |
Detailed Description
CIRCLE / DISC level-set domain: the canonical instance of the contract and the SINGLE SOURCE of truth for the active circular domain (a disc of radius R; see docs/HOFFART_FIDELITY.md for the reference scenario it was validated against).
It is the "transport" counterpart of the Poisson conductor wall: the wall acts only on the elliptic part (cf. runtime/wall_predicate.hpp / geometric_mg cut_cell), whereas this descriptor drives a cell-centered DOMAIN MASK / cut-cell aperture so the FV transport is disc-aware (the "Cartesian-ring-edge lock", cf. docs/HOFFART_FIDELITY.md).
REUSES EXACTLY the conductor-wall level set (geometric_mg.hpp): ls(x, y) = hypot(x - cx, y - cy) - R, < 0 INSIDE. A cell is ACTIVE when its CENTER is inside (ls < 0), exactly like GeometricMG's inside predicate. The default center (cx, cy) = (L/2, L/2) coincides with that of wall_predicate("circle", ...).
CONTRACT (inert by default): this descriptor changes NOTHING in the default behavior. It is materialized (mask MultiFab, mask-aware transport) only on explicit opt-in (System::set_disc_domain). With no domain set the mask is "all active" and the FV/AMR/MPI path stays BIT-IDENTICAL.
Member Function Documentation
◆ cell_active()
ACTIVE cell: its center (x, y) is inside the disc (ls < 0). Same inside test as GeometricMG.
Here is the call graph for this function:◆ centered_in_box()
|
inlinestatic |
Disc centered in a square box [0, L]^2 with radius radius (same center as wall_predicate("circle", radius, L): (L/2, L/2)).
◆ level_set()
Level set ls(x, y) = hypot(x - cx, y - cy) - R: < 0 inside, 0 at the boundary, > 0 outside.
Identical to the conductor-wall convention (geometric_mg cut_cell).
Here is the caller graph for this function:◆ operator()()
Callable form (the LevelSet argument of cut_fraction / assemble_rhs_eb); forwards to level_set.
Here is the call graph for this function:Member Data Documentation
◆ cx
| double pops::detail::DiscDomain::cx = 0.0 |
center x (default L/2 when built from L)
◆ cy
| double pops::detail::DiscDomain::cy = 0.0 |
center y (default L/2 when built from L)
◆ R
| double pops::detail::DiscDomain::R = 0.0 |
disc radius
The documentation for this struct was generated from the following file:
- include/pops/numerics/spatial/embedded_boundary/domain.hpp
Generated by