![]() |
ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
|
#include <include/ryujin/geometries/cut_cell_primitives.h>


Public Member Functions | |
| MeshAlignment (const std::string &subsection) | |
| template<typename Callable > | |
| void | align_with_elevation_profile (dealii::Triangulation< dim > &triangulation, const Callable &height) const |
Static Public Member Functions | |
| template<typename Callable > | |
| static int | vertex_state (const Callable &height, const dealii::Point< dim > &point) |
| template<typename T > | |
| static void | exchange_to_ghosts (dealii::Triangulation< dim > &triangulation, std::vector< T > &data) |
Static Public Attributes | |
| static constexpr unsigned int | profile_direction = 1 |
A helper class that moves the vertices of a quadrilateral mesh so that the mesh aligns with an elevation profile h(x). By convention the negative y-direction points towards the bottom boundary described by the profile. The triangulation must be in standard orientation, i.e., vertex i of every cell has the coordinate bits (i & 1, i & 2).
After the alignment every cell is either entirely above the profile, entirely below, or cut along a line connecting two of its vertices, see CutCellDecomposition.
The class works on serial and parallel::distributed triangulations and the result does not depend on the number of MPI ranks: vertices are moved in phases in which all decisions are taken with respect to the vertex positions at the start of the phase, every rank moves the vertices it owns (in the sense of dealii::GridTools::get_locally_owned_vertices()), and the new positions are communicated to the ghost layers.
Definition at line 55 of file cut_cell_primitives.h.
|
inline |
Definition at line 58 of file cut_cell_primitives.h.
|
inlinestatic |
Definition at line 96 of file cut_cell_primitives.h.
References ryujin::MeshAlignment< dim >::profile_direction.
Referenced by ryujin::MeshAlignment< dim >::align_with_elevation_profile().
|
inlinestatic |
Definition at line 115 of file cut_cell_primitives.h.
Referenced by ryujin::MeshAlignment< dim >::align_with_elevation_profile().
|
inline |
Align the triangulation with the elevation profile in two stages:
A vertex on the left or right boundary only moves vertically.
height is a callable taking a Point<dim> and returning the height of the profile at the horizontal position of the point.
Definition at line 159 of file cut_cell_primitives.h.
References ryujin::MeshAlignment< dim >::exchange_to_ghosts(), ryujin::MeshAlignment< dim >::profile_direction, and ryujin::MeshAlignment< dim >::vertex_state().
|
staticconstexpr |
Definition at line 88 of file cut_cell_primitives.h.
Referenced by ryujin::MeshAlignment< dim >::align_with_elevation_profile(), and ryujin::MeshAlignment< dim >::vertex_state().