Discontinuous Galerkin Library
#include "dg/algorithm.h"
Loading...
Searching...
No Matches

For the dg::evaluate and dg::blas1::evaluate functions. More...

Collaboration diagram for Simple:

Classes

struct  dg::ZERO
 \( f(x, ...) = 0\) More...
 
struct  dg::ONE
 \( f(x,...) = 1\) More...
 
struct  dg::CONSTANT
 \( f(x,...) = c\) More...
 
struct  dg::PLUS< T >
 \( f(x) = x + c\) More...
 
struct  dg::EXP< T >
 \( f(x) = \exp( x)\) More...
 
struct  dg::LN< T >
 \( f(x) = \ln(x)\) More...
 
struct  dg::SQRT< T >
 \( f(x) = \sqrt{x}\) More...
 
struct  dg::Square
 \( f(x) = x^2\) More...
 
struct  dg::InvSqrt< T >
 \( f(x) = \frac{1}{\sqrt{x}}\) More...
 
struct  dg::INVERT< T >
 \( f(x) = 1/x \) More...
 
struct  dg::ABS< T >
 \( f(x) = |x|\) More...
 
struct  dg::Sign< T >
 \( f(x) = \text{sgn}(x) = \begin{cases} -1 \text{ for } x < 0 \\ 0 \text{ for } x = 0 \\ +1 \text{ for } x > 0 \end{cases}\) More...
 
struct  dg::AbsMax< T >
 \( f(x,y) = \max(|x|,|y|)\) More...
 
struct  dg::AbsMin< T >
 \( f(x,y) = \min(|x|,|y|)\) More...
 
struct  dg::POSVALUE< T >
 \( f(x) = \begin{cases} x \text{ for } x>0 \\ 0 \text{ else} \end{cases} \) More...
 
struct  dg::MOD< T >
 \( f(x) = \) x mod m > 0 ? x mod m : x mod m + m More...
 
struct  dg::ISNFINITE< T >
 \( f(x) = \mathrm{!std::isfinite(x)}\) More...
 
struct  dg::ISNSANE< T >
 \( f(x) =\begin{cases} \mathrm{true\ if}\ |x| > 10^{100}\\ \mathrm{false\ else} \end{cases}\) More...
 
struct  dg::MinMod
 \( f(x_1, x_2, ...) = \begin{cases} \min(x_1, x_2, ...) &\text{ for } x_1, x_2, ... >0 \\ \max(x_1, x_2, ...) &\text{ for } x_1, x_2, ... <0 \\ 0 &\text{ else} \end{cases} \) More...
 
struct  dg::VanLeer
 \( f(x_1,x_2) = 2\begin{cases} \frac{x_1x_2}{x_1+x_2} &\text{ if } x_1x_2 > 0 \\ 0 & \text { else } \end{cases} \) More...
 
struct  dg::Upwind
 \( \text{up}(v, b, f ) = \begin{cases} b &\text{ if } v \geq 0 \\ f &\text{ else} \end{cases} \) More...
 
struct  dg::UpwindProduct
 \( \text{up}(v, b, f ) = v \begin{cases} b &\text{ if } v \geq 0 \\ f &\text{ else} \end{cases} \) More...
 
struct  dg::SlopeLimiter< Limiter >
 \( \text{up}(v, g_m, g_0, g_p, h_m, h_p ) = \begin{cases} +h_m \Lambda( g_0, g_m) &\text{ if } v \geq 0 \\ -h_p \Lambda( g_p, g_0) &\text{ else} \end{cases} \) More...
 
struct  dg::SlopeLimiterProduct< Limiter >
 \( \text{up}(v, g_m, g_0, g_p, h_m, h_p ) = v \begin{cases} +h_m \Lambda( g_0, g_m) &\text{ if } v \geq 0 \\ -h_p \Lambda( g_p, g_0) &\text{ else} \end{cases} \) More...
 
struct  dg::IDENTITY
 \( f(x) = x\) More...
 

Functions

template<class T , class ... Ts>
DG_DEVICEdg::zero (T x, Ts ...xs)
 This enum can be used in dg::evaluate.
 
template<class T , class ... Ts>
DG_DEVICEdg::one (T x, Ts ...xs)
 \( f(x, ...) = 1\)
 
DG_DEVICE double dg::cooX1d (double x)
 \( f(x) = x\)
 
DG_DEVICE double dg::cooX2d (double x, double y)
 \( f(x,y) = x\)
 
DG_DEVICE double dg::cooX3d (double x, double y, double z)
 \( f(x,y,z) = x\)
 
DG_DEVICE double dg::cooY2d (double x, double y)
 \( f(x,y) = y\)
 
DG_DEVICE double dg::cooY3d (double x, double y, double z)
 \( f(x,y,z) = y\)
 
DG_DEVICE double dg::cooZ3d (double x, double y, double z)
 \( f(x,y,z) = z\)
 
DG_DEVICE double dg::cooRZP2X (double R, double Z, double P)
 \( x = R\sin(\varphi)\)
 
DG_DEVICE double dg::cooRZP2Y (double R, double Z, double P)
 \( y = R\cos(\varphi)\)
 
DG_DEVICE double dg::cooRZP2Z (double R, double Z, double P)
 \( z = Z\)
 
template<class T >
dg::gcd (T a, T b)
 Greatest common divisor.
 
template<class T >
dg::lcm (T a, T b)
 Least common multiple.
 
bool dg::is_same (double x, double y, double eps=1e-15)
 
bool dg::is_same (float x, float y, float eps=1e-6)
 
template<class T >
bool dg::is_same (T x, T y)
 
bool dg::is_divisable (double a, double b, double eps=1e-15)
 
bool dg::is_divisable (float a, float b, float eps=1e-6)
 

Detailed Description

For the dg::evaluate and dg::blas1::evaluate functions.

Function Documentation

◆ cooRZP2X()

DG_DEVICE double dg::cooRZP2X ( double R,
double Z,
double P )
inline

\( x = R\sin(\varphi)\)

◆ cooRZP2Y()

DG_DEVICE double dg::cooRZP2Y ( double R,
double Z,
double P )
inline

\( y = R\cos(\varphi)\)

◆ cooRZP2Z()

DG_DEVICE double dg::cooRZP2Z ( double R,
double Z,
double P )
inline

\( z = Z\)

◆ cooX1d()

DG_DEVICE double dg::cooX1d ( double x)
inline

\( f(x) = x\)

◆ cooX2d()

DG_DEVICE double dg::cooX2d ( double x,
double y )
inline

\( f(x,y) = x\)

◆ cooX3d()

DG_DEVICE double dg::cooX3d ( double x,
double y,
double z )
inline

\( f(x,y,z) = x\)

◆ cooY2d()

DG_DEVICE double dg::cooY2d ( double x,
double y )
inline

\( f(x,y) = y\)

◆ cooY3d()

DG_DEVICE double dg::cooY3d ( double x,
double y,
double z )
inline

\( f(x,y,z) = y\)

◆ cooZ3d()

DG_DEVICE double dg::cooZ3d ( double x,
double y,
double z )
inline

\( f(x,y,z) = z\)

◆ gcd()

template<class T >
T dg::gcd ( T a,
T b )

Greatest common divisor.

Parameters
aFirst number
bSecond number
Returns
greatest common divisor

◆ is_divisable() [1/2]

bool dg::is_divisable ( double a,
double b,
double eps = 1e-15 )
inline

Checks if two number are integer divisable \(a/b \in \mathbb{Z}\) within accuracy

Attention
Does not check for equal sign!

◆ is_divisable() [2/2]

bool dg::is_divisable ( float a,
float b,
float eps = 1e-6 )
inline

Checks if two number are integer divisable \(a/b \in \mathbb{Z}\) within accuracy

Attention
Does not check for equal sign!

◆ is_same() [1/3]

bool dg::is_same ( double x,
double y,
double eps = 1e-15 )
inline

Checks if two number are equal within accuracy

◆ is_same() [2/3]

bool dg::is_same ( float x,
float y,
float eps = 1e-6 )
inline

Checks if two number are equal within accuracy

◆ is_same() [3/3]

template<class T >
bool dg::is_same ( T x,
T y )
inline

Alias for x == y

◆ lcm()

template<class T >
T dg::lcm ( T a,
T b )

Least common multiple.

Parameters
aFist number
bSecond number
Returns
Least common multiple

◆ one()

template<class T , class ... Ts>
DG_DEVICE T dg::one ( T x,
Ts ... xs )

\( f(x, ...) = 1\)

◆ zero()

template<class T , class ... Ts>
DG_DEVICE T dg::zero ( T x,
Ts ... xs )

This enum can be used in dg::evaluate.

\( f(x, ...) = 0\)