![]() |
ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
|
Classes | |
| class | ryujin::ComputingTimer |
| class | ryujin::Lazy< T > |
| class | ryujin::MPIEnsemble |
| class | ryujin::MPIEnsembleContainer< T > |
Various convenience wrappers for dealing with dealii::Function, | |
dealii::Tensor: | |
| template<int dim, typename Number , typename Callable > | |
| ToFunction< dim, Number, Callable > | ryujin::to_function (const Callable &callable, const unsigned int k) |
| template<int dim, typename Number , typename Callable > | |
| ToVectorFunction< dim, Number, Callable > | ryujin::to_vector_function (const Callable &callable, const unsigned int n_components) |
| template<typename FT , int problem_dim = FT::dimension, typename TT = typename FT::value_type, typename T = typename TT::value_type> | |
| DEAL_II_HOST_DEVICE_ALWAYS_INLINE dealii::Tensor< 1, problem_dim, T > | ryujin::contract (const FT &flux_ij, const TT &c_ij) |
| template<typename FT , int problem_dim = FT::dimension> | |
| DEAL_II_HOST_DEVICE_ALWAYS_INLINE FT | ryujin::add (const FT &flux_left_ij, const FT &flux_right_ij) |
Functions | |
| template<typename Number > | |
| DEAL_II_HOST_DEVICE_ALWAYS_INLINE void | ryujin::quadratic_newton_step (Number &p_1, Number &p_2, const Number phi_p_1, const Number phi_p_2, const Number dphi_p_1, const Number dphi_p_2, const Number sign=Number(1.0)) |
Macros for accessor definitions with automatic dereferencing | |
| #define | ACCESSOR_READ_ONLY(member) |
| #define | ACCESSOR(member) |
| #define | ACCESSOR_READ_ONLY_NO_DEREFERENCE(member) |
| #define | ACCESSOR_CONTAINER_READ_ONLY(container, member) |
Macros for compiler hints | |
| #define | RYUJIN_PRAGMA(x) _Pragma(#x) |
| #define | RYUJIN_LIKELY(x) (__builtin_expect(!!(x), 1)) |
| #define | RYUJIN_UNLIKELY(x) (__builtin_expect(!!(x), 0)) |
| #define | ASM_LABEL(label) asm("#" label); |
Exception handling in SIMD context | |
| #define | AssertThrowSIMD(variable, condition, exception) |
Miscellaneous helper functions, macros and classes.
| #define ACCESSOR_READ_ONLY | ( | member | ) |
A convenience macro that automatically writes out an accessor (or getter) function:
or
depending on whether bar_ can be dereferenced, or not.
Definition at line 229 of file convenience_macros.h.
| #define ACCESSOR | ( | member | ) |
Variant of the macro above that returns a mutable reference.
Definition at line 241 of file convenience_macros.h.
| #define ACCESSOR_READ_ONLY_NO_DEREFERENCE | ( | member | ) |
Variant of the macro above that does not attempt to dereference the underlying object.
Definition at line 254 of file convenience_macros.h.
| #define ACCESSOR_CONTAINER_READ_ONLY | ( | container, | |
| member | |||
| ) |
Variant of the macro above that takes two arguments, container and member, and creates an accessor function.
The function will dereference container and member if they are of pointer type.
Definition at line 272 of file convenience_macros.h.
| #define RYUJIN_PRAGMA | ( | x | ) | _Pragma(#x) |
Defined during the device compilation pass of a "single source" offloading compiler (clang CUDA/HIP, SYCL), i.e., when the current translation unit is compiled for the device and not for the host. Macro expanding to a #pragma directive that looks nicer in indented code and can be used in other preprocessor macro definitions.
Definition at line 304 of file convenience_macros.h.
| #define RYUJIN_LIKELY | ( | x | ) | (__builtin_expect(!!(x), 1)) |
Compiler hint annotating a boolean to be likely true.
Intended use:
Definition at line 321 of file convenience_macros.h.
| #define RYUJIN_UNLIKELY | ( | x | ) | (__builtin_expect(!!(x), 0)) |
Compiler hint annotating a boolean expression to be likely false.
Intended use:
Definition at line 338 of file convenience_macros.h.
| #define ASM_LABEL | ( | label | ) | asm("#" label); |
Injects a label into the generated assembly.
Definition at line 346 of file convenience_macros.h.
| #define AssertThrowSIMD | ( | variable, | |
| condition, | |||
| exception | |||
| ) |
Mixed serial/SIMD variant of the dealii AssertThrow macro. If variable is just a plain double or float, then this macro defaults to a simple call to dealii::AssertThrow(condition(variable), exception). Otherwise (if decltype(variable) has a subscript operator operator[], the dealii::AssertThrow macro is expanded for all components of the variable.
| ToFunction< dim, Number, Callable > ryujin::to_function | ( | const Callable & | callable, |
| const unsigned int | k | ||
| ) |
Convenience wrapper that creates a (scalar) dealii::Function object out of a (fairly general) callable object returning array-like values. An example usage is given by the interpolation of initial values performed in InitialValues::interpolate_hyperbolic_vector() and InitialValues::interpolate_initial_precomputed_vector()
| callable | A callable object that provides an operator(const Point<dim> &) and returns an array or rank-1 tensor. More precisely, the return type must have a subscript operator operator[]. |
| k | Index describing the component that is returned by the function object. |
Definition at line 104 of file convenience_macros.h.
| ToVectorFunction< dim, Number, Callable > ryujin::to_vector_function | ( | const Callable & | callable, |
| const unsigned int | n_components | ||
| ) |
Convenience wrapper that creates a vector-valued dealii::Function object out of a (fairly general) callable object returning array-like values. An example usage is given by the interpolation of initial values performed in InitialValues::interpolate_hyperbolic_vector() and InitialValues::interpolate_initial_precomputed_vector()
| callable | A callable object that provides an operator(const Point<dim> &) and returns an array or rank-1 tensor. More precisely, the return type must have a subscript operator operator[]. |
| n_components | number of components. |
Definition at line 134 of file convenience_macros.h.
| DEAL_II_HOST_DEVICE_ALWAYS_INLINE void ryujin::quadratic_newton_step | ( | Number & | p_1, |
| Number & | p_2, | ||
| const Number | phi_p_1, | ||
| const Number | phi_p_2, | ||
| const Number | dphi_p_1, | ||
| const Number | dphi_p_2, | ||
| const Number | sign = Number(1.0) |
||
| ) |
Perform one step of a quadratic Newton iteration, see [12], Algorithm 3.
Modifies p_1 and P_2 ensures that p_1 <= p_2, and that p_1 (p_2) is monotonically increasing (decreasing).
Definition at line 39 of file newton.h.
Referenced by ryujin::Euler::WaveSpeedEstimatorView< dim, Number, MemorySpace >::compute(), ryujin::Euler::LimiterView< dim, Number, MemorySpace >::limit(), ryujin::EulerAEOS::LimiterView< dim, Number >::limit(), and ryujin::ShallowWater::LimiterView< dim, Number >::limit().
| DEAL_II_HOST_DEVICE_ALWAYS_INLINE dealii::Tensor< 1, problem_dim, T > ryujin::contract | ( | const FT & | flux_ij, |
| const TT & | c_ij | ||
| ) |
Contract a given rank-2 tensor flux_ij and a rank-1 tensor c_ij:
Definition at line 148 of file convenience_macros.h.
Referenced by ryujin::ShallowWater::LimiterView< dim, Number >::accumulate(), ryujin::EulerAEOS::LimiterView< dim, Number >::accumulate(), ryujin::EulerBarotropic::LimiterView< dim, Number >::accumulate(), ryujin::ScalarConservation::LimiterView< dim, Number >::accumulate(), ryujin::Euler::HyperbolicSystemView< dim, Number, MemorySpace >::flux_divergence(), ryujin::EulerAEOS::HyperbolicSystemView< dim, Number >::flux_divergence(), ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::flux_divergence(), ryujin::ScalarConservation::HyperbolicSystemView< dim, Number >::flux_divergence(), ryujin::ShallowWater::HyperbolicSystemView< dim, Number >::flux_divergence(), ryujin::Skeleton::HyperbolicSystemView< dim, Number >::flux_divergence(), and ryujin::ShallowWater::HyperbolicSystemView< dim, Number >::high_order_flux_divergence().
| DEAL_II_HOST_DEVICE_ALWAYS_INLINE FT ryujin::add | ( | const FT & | flux_left_ij, |
| const FT & | flux_right_ij | ||
| ) |
Add two given rank-2 tensors flux_left_ij and flux_right_ij:
Definition at line 161 of file convenience_macros.h.
Referenced by ryujin::ShallowWater::LimiterView< dim, Number >::accumulate(), ryujin::EulerAEOS::LimiterView< dim, Number >::accumulate(), ryujin::EulerBarotropic::LimiterView< dim, Number >::accumulate(), ryujin::ScalarConservation::LimiterView< dim, Number >::accumulate(), ryujin::Euler::HyperbolicSystemView< dim, Number, MemorySpace >::flux_divergence(), ryujin::EulerAEOS::HyperbolicSystemView< dim, Number >::flux_divergence(), ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::flux_divergence(), ryujin::ScalarConservation::HyperbolicSystemView< dim, Number >::flux_divergence(), ryujin::ShallowWater::HyperbolicSystemView< dim, Number >::flux_divergence(), ryujin::Skeleton::HyperbolicSystemView< dim, Number >::flux_divergence(), ryujin::ShallowWater::HyperbolicSystemView< dim, Number >::high_order_flux_divergence(), ryujin::internal::integrate_add_tensor_product_value_linear(), ryujin::ElectrostaticConfigurationLibrary::populate_electrostatic_configuration_list(), ryujin::Geometries::populate_geometry_list(), ryujin::InitialStateLibrary< Description, dim, Number >::populate_initial_state_list(), ryujin::EulerInitialStates::populate_initial_state_list(), and ryujin::ShallowWaterInitialStates::populate_initial_state_list().