ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
Loading...
Searching...
No Matches
hyperbolic_description.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2026 by the ryujin authors
4//
5
6#pragma once
7
8#include <ryujin/base/compile_time_options.h>
14
15#include <deal.II/base/vectorization.h>
16
17#include <concepts>
18
19namespace ryujin
20{
21 namespace Concept
22 {
27 template <typename HD>
28 using system_type = typename HD::HyperbolicSystem;
29
30 template <typename HD, typename Number>
31 using indicator_type = typename HD::template Indicator<scalar_type<Number>>;
32
33 template <typename HD, typename Number>
34 using limiter_type = typename HD::template Limiter<scalar_type<Number>>;
35
36 template <typename HD, typename Number>
38 typename HD::template WaveSpeedEstimator<scalar_type<Number>>;
39
40 template <typename Number>
41 using vectorized_type = dealii::VectorizedArray<Number>;
42
43 template <typename HD, int dim, typename Number>
45 typename HD::template HyperbolicModule<dim, Number>;
46
47
54 template <typename HD, typename System, int dim, typename Number>
57 Indicator<indicator_type<HD, Number>, System, dim, Number> &&
58 Limiter<limiter_type<HD, Number>, System, dim, Number> &&
60
61
69 template <typename HD, int dim, typename Number>
72 HyperbolicKernels<HD, system_type<HD>, dim, vectorized_type<Number>> &&
73 std::derived_from<hyperbolic_module_type<HD, dim, Number>,
74 Interface::HyperbolicModule<dim, Number>>;
75 } // namespace Concept
76} // namespace ryujin
typename HD::template WaveSpeedEstimator< scalar_type< Number > > estimator_type
typename HD::HyperbolicSystem system_type
typename HD::template HyperbolicModule< dim, Number > hyperbolic_module_type
typename HD::template Indicator< scalar_type< Number > > indicator_type
dealii::VectorizedArray< Number > vectorized_type
typename HD::template Limiter< scalar_type< Number > > limiter_type