DNDSR 0.2.1
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
GaussJacobi.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <array>
4#include "QuadratureBase.hpp"
5
6namespace DNDS::Geom::Elem
7{
8 // ===================================================================
9 // Gauss-Jacobi Quadrature on [0, 1] with weight (1-z)^2
10 // ===================================================================
11 // These are used for pyramid quadrature in the z-direction.
12 // The pyramid is parameterized with z in [0,1] and (x,y) in the base
13 // scaled by (1-z). The Jacobian factor introduces a (1-z)^2 weight.
14 //
15 // Parameters: alpha = 2, beta = 0 (Jacobi polynomials)
16 // Reference interval: [0, 1]
17 //
18 // Data format: [2][n] array where:
19 // [0][i] = quadrature point (zi) in [0, 1]
20 // [1][i] = quadrature weight (wi)
21 // ===================================================================
22
23 /// Gauss-Jacobi (alpha=2, beta=0) with 1 point
24 namespace detail
25 {
26 static constexpr std::array<std::array<t_real, 1>, 2> GaussJacobi_01A2B0_1{{{{0.250000000000000}},
27 {{0.333333333333333}}}};
28
29 /// Gauss-Jacobi (alpha=2, beta=0) with 2 points
30 static constexpr std::array<std::array<t_real, 2>, 2> GaussJacobi_01A2B0_2{{{{0.122514822655441, 0.544151844011225}},
31 {{0.232547451253508, 0.100785882079825}}}};
32
33 /// Gauss-Jacobi (alpha=2, beta=0) with 3 points
34 static constexpr std::array<std::array<t_real, 3>, 2> GaussJacobi_01A2B0_3{{{{0.072994024073150, 0.347003766038352, 0.705002209888499}},
35 {{0.157136361064887, 0.146246269259866, 0.029950703008581}}}};
36
37 /// Gauss-Jacobi (alpha=2, beta=0) with 4 points
38 static constexpr std::array<std::array<t_real, 4>, 2> GaussJacobi_01A2B0_4{{{{0.048500549446997, 0.238600737551862, 0.517047295104367, 0.795851417896773}},
39 {{0.110888415611278, 0.143458789799214, 0.068633887172923, 0.010352240749918}}}};
40
41 /// Gauss-Jacobi (alpha=2, beta=0) with 5 points
42 static constexpr std::array<std::array<t_real, 5>, 2> GaussJacobi_01A2B0_5{{{{0.034578939918215, 0.173480320771696, 0.389886387065519, 0.634333472630887, 0.851054212947016}},
43 {{0.081764784285771, 0.126198961899911, 0.089200161221590, 0.032055600722962, 0.004113825203099}}}};
44
45 } // namespace detail
46} // namespace DNDS::Geom::Elem