![]() |
ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
|
Namespaces | |
| namespace | ryujin::GridGenerator |
| namespace | ryujin::Geometries |
Functions | |
| template<int dim, int spacedim, template< int, int > class Triangulation> | |
| void | ryujin::GridGenerator::annulus (Triangulation< dim, spacedim > &, const double, const double, const double, const double) |
| template<int dim, int spacedim, template< int, int > class Triangulation> | |
| void | ryujin::GridGenerator::cylinder (Triangulation< dim, spacedim > &, const double, const double, const double, const double) |
| template<int dim, typename T > | |
| void | ryujin::Geometries::populate_geometry_list (T &geometry_list, const std::string &subsection) |
| template<int dim, template< int, int > class Triangulation> | |
| void | ryujin::GridGenerator::step (Triangulation< dim, dim > &, const double, const double, const double, const double) |
| template<int dim, int spacedim, template< int, int > class Triangulation> | |
| void | ryujin::GridGenerator::wavetank (Triangulation< dim, spacedim > &, const double, const double, const double, const double) |
| template<int dim, int spacedim, template< int, int > class Triangulation> | |
| void | ryujin::GridGenerator::twotanks (Triangulation< dim, spacedim > &, const double, const double, const double, const double, const unsigned int) |
| template<int dim, int spacedim, template< int, int > class Triangulation> | |
| void | ryujin::GridGenerator::wall (Triangulation< dim, spacedim > &, const double, const double, const double) |
| template<int dim, typename Number , typename Number2 , bool add> | |
| void | ryujin::internal::integrate_add_tensor_product_value_linear (const Number2 &value, Number2 *values, const dealii::Point< dim, Number > &p) |
Several classes and helper functions for creating meshes for a number of benchmark configurations and controlling the finite element discretization.
| enum ryujin::Boundary : dealii::types::boundary_id |
An enum of type dealii::types::boundary_id that provides an mnemonic for prescribing different boundary conditions on faces.
| Enumerator | |
|---|---|
| do_nothing | The "do nothing" outflow boundary condition: no special treatment of the boundary degree of freedom. For stability reasons it is important to ensure that this boundary id is only prescribed on degrees of freedom with a velocity vector pointing outward of the computational domain and coming from the interior of the domain. |
| periodic | Prescribe periodic boundary conditions by identifying opposing degrees of freedom. This currently requires a mesh with "standard orientation". |
| slip | On (free) slip boundary degrees of freedom we enforce a vanishing normal component of the momentum in the Euler module. This is done by explicitly removing the normal component of the momentum for the degree of freedom at the end of TimeStep::euler_step(). In the dissipation module \(v\cdot n\) is enforced strongly which leads to a natural boundary condition on the symmetric stress tensor: \(\tau\cdot\mathbb{S}(v)\cdot\vec n\). |
| no_slip | On no-slip boundary degrees of freedom we enforce a vanishing normal component of the momentum in the Euler module. This is done by explicitly removing the normal component of the momentum for the degree of freedom at the end of TimeStep::euler_step(). In the dissipation module a vanishing velocity \(v=0\) is enforced strongly. |
| dirichlet | On degrees of freedom marked as Dirichlet boundary we reset the state of the degree of freedom to the value of InitialData::initial_state(). Such Dirichlet conditions can only be meaningfully enforced as inflow conditions, i.e., the velocity vector associated with a Dirichlet boundary degree of freedom has to point into the computational domain, and no "backward traveling" shock front or other flow feature must reach a Dirichlet boundary degree of freedom during the computation. |
| dynamic | On degrees of freedom marked as a "dynamic" boundary we distinguish four cases (for the compressible Euler equations or related PDEs):
|
| dirichlet_momentum | For the Euler and shallow Water equations: On degrees of freedom marked as "dirichlet momentum" boundary, we reset only the momentum of the degree of freedom to the value of InitialData::initial_state(). Where appropriate, we keep water height h, density rho, and internal energy e of the boundary state. Such conditions are used, for example, in many steady state problems for the shallow water equations with inflow conditions. |
| dirichlet_velocity | For the Euler and shallow Water equations: On degrees of freedom marked as "dirichlet velocity" boundary, we reset only the velocity of the degree of freedom to the value of InitialData::initial_state(). Where appropriate, we keep water height h, density rho, and internal energy e of the boundary state. |
Definition at line 53 of file discretization.h.
|
strong |
An enum class for setting the finite element ansatz.
Definition at line 147 of file discretization.h.
|
strong |
An enum class for setting the type of Triangulation that should be constructed.
Definition at line 173 of file discretization.h.
|
strong |
Controls the spatial mesh adaptation strategy.
Definition at line 25 of file mesh_adaptor.h.
|
strong |
Controls the marking strategy used for mesh adaptation. This configuration option is ignored for the uniform global refinement strategy.
Definition at line 51 of file mesh_adaptor.h.
|
strong |
Controls the time point selection strategy.
| Enumerator | |
|---|---|
| fixed_time_points | Perform a mesh adaptation cycle at preselected fixed time points. |
| simulation_cycle | Perform a mesh adaptation cycle at every nth simulation cycle. |
Definition at line 65 of file mesh_adaptor.h.
| void ryujin::GridGenerator::annulus | ( | Triangulation< dim, spacedim > & | , |
| const double | , | ||
| const double | , | ||
| const double | , | ||
| const double | |||
| ) |
Create a 2D/3D partial annulus configuration with the given length, height, radii and angle coverage.
We set slip boundary conditions on all boundaries.
Definition at line 25 of file geometry_annulus.h.
Referenced by ryujin::Geometries::Annulus< dim >::create_coarse_triangulation().
| void ryujin::GridGenerator::cylinder | ( | Triangulation< dim, spacedim > & | , |
| const double | , | ||
| const double | , | ||
| const double | , | ||
| const double | |||
| ) |
Create a 2D/3D cylinder configuration with the given length and height.
We set Dirichlet boundary conditions on the left boundary and do-nothing boundary conditions on the right boundary. All other boundaries (including the cylinder) have slip boundary conditions prescribed.
The 3D mesh is created by extruding the 2D mesh with a width equal to the "height".
Definition at line 31 of file geometry_cylinder.h.
Referenced by ryujin::Geometries::Cylinder< dim >::create_coarse_triangulation().
| void ryujin::Geometries::populate_geometry_list | ( | T & | geometry_list, |
| const std::string & | subsection | ||
| ) |
Populate a given container with all initial state defined in this namespace
Definition at line 39 of file geometry_library.h.
References ryujin::add().
| void ryujin::GridGenerator::step | ( | Triangulation< dim, dim > & | , |
| const double | , | ||
| const double | , | ||
| const double | , | ||
| const double | |||
| ) |
Create the 2D mach step triangulation.
Even though this function has a template parameter dim, it is only implemented for dimension 2.
Definition at line 25 of file geometry_step.h.
Referenced by ryujin::Geometries::Step< dim >::create_coarse_triangulation().
| void ryujin::GridGenerator::wavetank | ( | Triangulation< dim, spacedim > & | , |
| const double | , | ||
| const double | , | ||
| const double | , | ||
| const double | |||
| ) |
Create a 2D numerical wave tank with specifications outlined in Figure 4 of [2018-SW-exps]. The tank consists of a rectangular water reservoir with a long flume attached to the "center" of the reservoir. For the sake of simplicity, we assume the centerline of the flume and reservoir align at y = 0.
All outer walls have "slip" boundary conditions except outer wall at the end of the tank which has dynamic outflow conditions.
Definition at line 30 of file geometry_tank.h.
Referenced by ryujin::Geometries::WaveTank< dim >::create_coarse_triangulation().
| void ryujin::GridGenerator::twotanks | ( | Triangulation< dim, spacedim > & | , |
| const double | , | ||
| const double | , | ||
| const double | , | ||
| const double | , | ||
| const unsigned int | |||
| ) |
Create a 2D numerical tank configuration.
The domain consists of two "tanks" attached via a "tunnel". For the sake of simplicity, we assume a couple of things:
The walls of the tunnel have "slip" (or wall / reflecting) boundary conditions. The "inner" walls also have slip boundary conditions. For the left/right external boundaries, we assume "dynamic".
NOTE: The default parameters are arbitrary.
Definition at line 35 of file geometry_two_tanks.h.
Referenced by ryujin::Geometries::TwoTanks< dim >::create_coarse_triangulation().
| void ryujin::GridGenerator::wall | ( | Triangulation< dim, spacedim > & | , |
| const double | , | ||
| const double | , | ||
| const double | |||
| ) |
Create a 2D double-mach reflection wall configuration:
A rectangular domain with given length and height. The boundary conditions are dirichlet conditions on the top and left of the domain and do-nothing on the right side and the front part of the bottom side from [0, wall_position). Slip boundary conditions are enforced on the bottom side on [wall_position, length).
Definition at line 29 of file geometry_wall.h.
Referenced by ryujin::Geometries::Wall< dim >::create_coarse_triangulation().
|
inline |
This is a copy of the integrate_add_tensor_product_value_linear() function shipped with deal.II that fixes a compilation error when instantiating with float.
Definition at line 33 of file tensor_product_point_kernels.h.
References ryujin::add().
Referenced by ryujin::internal::integrate_tensor_product_value().