ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
Loading...
Searching...
No Matches
Namespaces
convenience_macros.h File Reference
#include <compile_time_options.h>
#include <deal.II/base/function.h>
#include <deal.II/lac/vector.h>
Include dependency graph for convenience_macros.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  ryujin
 

Macros

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);
 

Functions

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)