|
|
| CutCellSurface () noexcept |
| | Constructor. Leaves every edge without a crossing and every corner at zero.
|
| |
|
| ~CutCellSurface () noexcept=default |
| | Destructor.
|
| |
| bool | hasCrossing (const int a_edge) const noexcept |
| | Whether the edge carries a crossing.
|
| |
| int | linearSize () const noexcept |
| | Number of bytes the surface occupies in a linear buffer, as Chombo's containers ask of their payload.
|
| |
| void | linearOut (void *a_buffer) const noexcept |
| | Write the surface into a linear buffer, as Chombo's containers ask of their payload.
|
| |
| void | linearIn (const void *a_buffer) noexcept |
| | Read the surface from a linear buffer written by linearOut.
|
| |
The values a cut cell's embedded boundary is reconstructed from.
Holds the implicit function at the cell's corners and the parameter along each cell edge where it changes sign, both in the cell's own [-1/2, 1/2]^SpaceDim frame. Neither value belongs to the cell alone: a corner is shared by the 2^SpaceDim cells meeting there and an edge by the four cells meeting along it, so two neighbouring cells reconstruct the same surface bit for bit rather than to within a tolerance. That is what makes a face aperture agree when it is computed from either side.
That agreement is between cells of one level. A cell's chords are straight at its own spacing, so on a face shared with cells of a finer level they are not what that level describes the face with, and the polyhedron this surface alone reconstructs is the level-local one. Which faces those are is not the surface's to know: it is recorded by the cut-cell connectivity of the level, and CutCellBody::restrictFace replaces such a face with the chords of the children covering it.