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
quadraturerule.hpp
Go to the documentation of this file.
1// Core data structures and methods required to implement the discrete de Rham sequence in 3D
2//
3// Provides:
4// - Generation of quadrature rules over cells and faces of the mesh
5//
6// Author: Daniele Di Pietro (daniele.di-pietro@umontpellier.fr)
7// Author: Jérome Droniou (jerome.droniou@monash.edu)
8//
9
10/*
11 *
12 * This library was developed around HHO methods, although some parts of it have a more
13 * general purpose. If you use this code or part of it in a scientific publication,
14 * please mention the following book as a reference for the underlying principles
15 * of HHO schemes:
16 *
17 * The Hybrid High-Order Method for Polytopal Meshes: Design, Analysis, and Applications.
18 * D. A. Di Pietro and J. Droniou. Modeling, Simulation and Applications, vol. 19.
19 * Springer International Publishing, 2020, xxxi + 525p. doi: 10.1007/978-3-030-37203-3.
20 * url: https://hal.archives-ouvertes.fr/hal-02151813.
21 *
22 */
23
24#ifndef QUADRATURERULE_HPP
25#define QUADRATURERULE_HPP
26
27#include <vector>
28
29#include <mesh.hpp>
30
31
38namespace HArDCore3D {
39
47 {
48 double x, y, z, w;
49 QuadratureNode(double x, double y, double z, double w)
50 : x(x), y(y), z(z), w(w)
51 {
52 // Do nothing
53 }
54
56 inline Eigen::Vector3d vector() const {
57 return Eigen::Vector3d(x,y,z);
58 }
59 };
60
61 typedef std::vector<QuadratureNode> QuadratureRule;
62
65 const Cell & T,
66 const int doe,
67 const bool force_split = false
68 );
72 const Face & F,
73 const int doe
74 );
78 const Edge & E,
79 const int doe
80 );
82} // end of namespace HArDCore3D
83#endif
@ Matrix
Definition basis.hpp:67
QuadratureRule generate_quadrature_rule(const Cell &T, const int doe, const bool force_split)
Generate quadrature rule on mesh element.
Definition quadraturerule.cpp:11
double x
Definition quadraturerule.hpp:48
std::vector< QuadratureNode > QuadratureRule
Definition quadraturerule.hpp:61
QuadratureNode(double x, double y, double z, double w)
Definition quadraturerule.hpp:49
Eigen::Vector3d vector() const
Returns the quadrature point as an Eigen vector.
Definition quadraturerule.hpp:56
double z
Definition quadraturerule.hpp:48
double w
Definition quadraturerule.hpp:48
double y
Definition quadraturerule.hpp:48
Definition ddr-magnetostatics.hpp:41
Description of one node and one weight from a quadrature rule.
Definition quadraturerule.hpp:47