OGS
GaussLegendrePyramid.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <array>
7
8#include "mathlib_export.h"
9
10namespace MathLib
11{
19template <unsigned ORDER>
21{
22 static MATHLIB_EXPORT const unsigned Order = ORDER;
23 static MATHLIB_EXPORT const unsigned NPoints = ORDER;
24 static MATHLIB_EXPORT const std::array<std::array<double, 3>, NPoints> X;
25 static MATHLIB_EXPORT const double W[NPoints];
26};
27
28template <>
30{
31 static MATHLIB_EXPORT const unsigned Order = 2;
32 static MATHLIB_EXPORT const unsigned NPoints = 5;
33 static MATHLIB_EXPORT const std::array<std::array<double, 3>, NPoints> X;
34 static MATHLIB_EXPORT const double W[NPoints];
35};
36
37template <>
39{
40 static MATHLIB_EXPORT const unsigned Order = 3;
41 static MATHLIB_EXPORT const unsigned NPoints = 13;
42 static MATHLIB_EXPORT const std::array<std::array<double, 3>, NPoints> X;
43 static MATHLIB_EXPORT const double W[NPoints];
44};
45
46#ifndef _MSC_VER // The following explicit instantatiation declaration does not
47 // compile on that particular compiler but is necessary.
48template <>
49const std::array<std::array<double, 3>, GaussLegendrePyramid<1>::NPoints>
51template <>
53#endif
54} // namespace MathLib
#define MATHLIB_EXPORT
static MATHLIB_EXPORT const std::array< std::array< double, 3 >, NPoints > X
static MATHLIB_EXPORT const unsigned NPoints
static MATHLIB_EXPORT const unsigned Order
static MATHLIB_EXPORT const double W[NPoints]
static MATHLIB_EXPORT const unsigned NPoints
static MATHLIB_EXPORT const double W[NPoints]
static MATHLIB_EXPORT const unsigned Order
static MATHLIB_EXPORT const std::array< std::array< double, 3 >, NPoints > X
static MATHLIB_EXPORT const double W[NPoints]
static MATHLIB_EXPORT const unsigned Order
static MATHLIB_EXPORT const std::array< std::array< double, 3 >, NPoints > X
static MATHLIB_EXPORT const unsigned NPoints