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