HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
Loading...
Searching...
No Matches
quad1d.hpp
Go to the documentation of this file.
1// Creates quadrature rule on an edge
2//
3// Author: Jerome Droniou (jerome.droniou@monash.edu)
4//
5
6/*
7*
8* This library was developed around HHO methods, although some parts of it have a more
9* general purpose. If you use this code or part of it in a scientific publication,
10* please mention the following book as a reference for the underlying principles
11* of HHO schemes:
12*
13* The Hybrid High-Order Method for Polytopal Meshes: Design, Analysis, and Applications.
14* D. A. Di Pietro and J. Droniou. Modeling, Simulation and Applications, vol. 19.
15* Springer International Publishing, 2020, xxxi + 525p. doi: 10.1007/978-3-030-37203-3.
16* url: https://hal.archives-ouvertes.fr/hal-02151813.
17*
18*/
19
20
21
22#ifndef QUAD1D_HPP
23#define QUAD1D_HPP
24#include<stddef.h>
25
26namespace HArDCore3D { // forward dec
27
28class LegendreGauss;
29}
30
37namespace HArDCore3D {
38
40
41public:
42 QuadRuleEdge(size_t doe, bool warn);
44
45 size_t nq();
46 double xq(size_t i);
47 double yq(size_t i);
48 double zq(size_t i);
49 double wq(size_t i);
50 void setup(double xV[], double yV[], double zV[]);
51
52private:
53 size_t _npts;
54 LegendreGauss* _rule;
55 double* _w;
56 double* _xr;
57 double* _yr;
58 double* _zr;
59 double _length;
60};
61
63public:
64 LegendreGauss(size_t doe);
66
67 void sub_rule_01();
68 void sub_rule_02();
69 void sub_rule_03();
70 void sub_rule_04();
71 void sub_rule_05();
72 void sub_rule_06();
73 void sub_rule_07();
74 void sub_rule_08();
75 void sub_rule_09();
76 void sub_rule_10();
77 void sub_rule_11();
78 size_t npts();
79 double wq(size_t i);
80 double tq(size_t i);
81
82private:
83 size_t _doe;
84 size_t _npts;
85 double* _t;
86 double* _w;
87};
89}
90
91#endif /* QUAD1D_HPP */
Definition quad1d.hpp:62
Definition quad1d.hpp:39
@ Matrix
Definition basis.hpp:67
void sub_rule_03()
Definition quad1d.cpp:121
size_t npts()
Definition quad1d.cpp:303
double xq(size_t i)
Definition quad1d.cpp:37
double zq(size_t i)
Definition quad1d.cpp:39
double wq(size_t i)
Definition quad1d.cpp:304
void setup(double xV[], double yV[], double zV[])
Definition quad1d.cpp:43
void sub_rule_02()
Definition quad1d.cpp:112
double wq(size_t i)
Definition quad1d.cpp:40
~QuadRuleEdge()
Definition quad1d.cpp:26
~LegendreGauss()
Definition quad1d.cpp:101
void sub_rule_08()
Definition quad1d.cpp:199
void sub_rule_04()
Definition quad1d.cpp:132
void sub_rule_11()
Definition quad1d.cpp:271
void sub_rule_07()
Definition quad1d.cpp:179
double tq(size_t i)
Definition quad1d.cpp:311
void sub_rule_05()
Definition quad1d.cpp:145
void sub_rule_01()
Definition quad1d.cpp:106
void sub_rule_10()
Definition quad1d.cpp:245
double yq(size_t i)
Definition quad1d.cpp:38
void sub_rule_09()
Definition quad1d.cpp:221
size_t nq()
Definition quad1d.cpp:34
void sub_rule_06()
Definition quad1d.cpp:161
Definition ddr-magnetostatics.hpp:41