Peano
Loading...
Searching...
No Matches
hydro_dimensions.h
Go to the documentation of this file.
1#pragma once
2
3#include "tarch/tarch.h" // for InlineMethod
4
12namespace exaparty {
13 namespace kernels {
14 namespace legacy {
15 namespace hydroDimensions {
16
20 template <typename T> InlineMethod T pow_dimension(T x) {
21#if (HYDRO_DIMENSION == 3)
22 return x * x * x;
23#elif (HYDRO_DIMENSION == 2)
24 return x * x;
25#elif (HYDRO_DIMENSION == 1)
26 return x;
27#else
28#pragma error "HYDRO_DIMENSION undefined?"
29#endif
30 }
31
35 template <typename T> InlineMethod T pow_inv_dimension(T x) {
36#if (HYDRO_DIMENSION == 3)
37 return std::cbrt(x);
38#elif (HYDRO_DIMENSION == 2)
39 return std::sqrt(x);
40#elif (HYDRO_DIMENSION == 1)
41 return x;
42#else
43#pragma error "HYDRO_DIMENSION undefined?"
44#endif
45 }
46
47
51 template <typename T> InlineMethod T pow_dimension_plus_one(T x) {
52#if (HYDRO_DIMENSION == 3)
53 T temp = x * x;
54 return temp * temp;
55#elif (HYDRO_DIMENSION == 2)
56 return x * x * x;
57#elif (HYDRO_DIMENSION == 1)
58 return x * x;
59#else
60#pragma error "HYDRO_DIMENSION undefined?"
61#endif
62 }
63
64
68 template <typename T> InlineMethod T pow_dimension_minus_one(T x) {
69#if (HYDRO_DIMENSION == 3)
70 return x * x;
71#elif (HYDRO_DIMENSION == 2)
72 return x;
73#elif (HYDRO_DIMENSION == 1)
74 return 1.;
75#else
76#pragma error "HYDRO_DIMENSION undefined?"
77#endif
78 }
79
80
81 } // namespace hydroDimensions
82 } // namespace legacy
83 } // namespace kernels
84} // namespace exaparty
InlineMethod T pow_dimension_minus_one(T x)
returns x^{ndim-1}
InlineMethod T pow_dimension(T x)
returns x^ndim
InlineMethod T pow_inv_dimension(T x)
Returns .
InlineMethod T pow_dimension_plus_one(T x)
returns x^{ndim+1}
This file is part of the ExaParty project.
Definition __init__.py:1
#define InlineMethod
Generic identifier for inlined functions.
Definition tarch.h:97