OGS
GaussLegendreTri.h
Go to the documentation of this file.
1
14#pragma once
15
16#include <array>
17
18#include "mathlib_export.h"
19
20namespace MathLib
21{
22
26template <unsigned ORDER>
28 static MATHLIB_EXPORT const unsigned Order = ORDER;
29 static MATHLIB_EXPORT const unsigned NPoints = ORDER;
30 static MATHLIB_EXPORT const std::array<std::array<double, 2>, NPoints> X;
31 static MATHLIB_EXPORT const double W[NPoints];
32};
33
34template <>
36 static MATHLIB_EXPORT const unsigned Order = 2;
37 static MATHLIB_EXPORT const unsigned NPoints = 3;
38 static MATHLIB_EXPORT const std::array<std::array<double, 2>, NPoints> X;
39 static MATHLIB_EXPORT const double W[NPoints];
40};
41
42template <>
44 static MATHLIB_EXPORT const unsigned Order = 3;
45 static MATHLIB_EXPORT const unsigned NPoints = 4;
46 static MATHLIB_EXPORT const std::array<std::array<double, 2>, NPoints> X;
47 static MATHLIB_EXPORT const double W[NPoints];
48};
49
50template <>
52 static MATHLIB_EXPORT const unsigned Order = 4;
53 static MATHLIB_EXPORT const unsigned NPoints = 7;
54 static MATHLIB_EXPORT const std::array<std::array<double, 2>, NPoints> X;
55 static MATHLIB_EXPORT const double W[NPoints];
56};
57
58#ifndef _MSC_VER // The following explicit instantatiation declaration does not
59 // compile on that particular compiler but is necessary.
60template <>
61const std::array<std::array<double, 2>, GaussLegendreTri<1>::NPoints>
63template <>
64double const GaussLegendreTri<1>::W[1];
65#endif
66} // namespace MathLib
#define MATHLIB_EXPORT
static MATHLIB_EXPORT const std::array< std::array< double, 2 >, NPoints > X
static MATHLIB_EXPORT const std::array< std::array< double, 2 >, NPoints > X
static MATHLIB_EXPORT const std::array< std::array< double, 2 >, NPoints > X
static MATHLIB_EXPORT const double W[NPoints]
static MATHLIB_EXPORT const std::array< std::array< double, 2 >, NPoints > X
static MATHLIB_EXPORT const unsigned Order
static MATHLIB_EXPORT const unsigned NPoints