Chi-Tech
QuadraturePointData.h
Go to the documentation of this file.
1#ifndef CHI_MATH_FINITE_ELEMENT_H
2#define CHI_MATH_FINITE_ELEMENT_H
3
4#include "math/chi_math.h"
5
7{
8typedef std::vector<chi_mesh::Vector3> VecVec3;
9
10// #############################################
11/**Stored relevant quadrature point information
12 * for volumetric integrals.*/
14{
15public:
18 std::vector<unsigned int> quadrature_point_indices,
19 VecVec3 qpoints_xyz,
20 std::vector<VecDbl> shape_value,
21 std::vector<VecVec3> shape_grad,
22 VecDbl JxW,
23 std::vector<std::vector<int>> face_dof_mappings,
24 size_t num_nodes);
25
26 const std::vector<unsigned int>& QuadraturePointIndices() const;
27 chi_mesh::Vector3 QPointXYZ(unsigned int qp) const;
28 double ShapeValue(unsigned int i, unsigned int qp) const;
29 chi_mesh::Vector3 ShapeGrad(unsigned int i, unsigned int qp) const;
30 const VecVec3& QPointsXYZ() const;
31 const std::vector<VecDbl>& ShapeValues() const;
32 const std::vector<VecVec3>& ShapeGradValues() const;
33 const std::vector<double>& JxW_Values() const;
34
35 double JxW(unsigned int qp) const;
36 int FaceDofMapping(size_t face, size_t face_node_index) const;
37 size_t NumNodes() const;
38
39protected:
40 std::vector<unsigned int> quadrature_point_indices_; ///< qp index only
41 VecVec3 qpoints_xyz_; ///< qp index only
42 std::vector<VecDbl> shape_value_; ///< Node i, then qp
43 std::vector<VecVec3> shape_grad_; ///< Node i, then qp
44 VecDbl JxW_; ///< qp index only
45 std::vector<std::vector<int>> face_dof_mappings_; ///< Face f,then fi
46 size_t num_nodes_ = 0;
47};
48
49// #############################################
50/**Stores relevant quadrature point information
51 * for surface integrals.*/
53{
54public:
56 SurfaceQuadraturePointData(std::vector<unsigned int> quadrature_point_indices,
57 VecVec3 qpoints_xyz,
58 std::vector<VecDbl> shape_value,
59 std::vector<VecVec3> shape_grad,
60 VecDbl JxW,
61 VecVec3 normals,
62 std::vector<std::vector<int>> face_dof_mappings,
63 size_t num_nodes);
64 chi_mesh::Vector3 Normal(unsigned int qp) const;
65 const VecVec3& Normals() const;
66
67protected:
68 VecVec3 normals_; ///< node i, then qp
69};
70} // namespace chi_math::finite_element
71
72#endif // CHI_MATH_FINITE_ELEMENT_H
std::vector< double > VecDbl
Definition: chi_math.h:12
chi_mesh::Vector3 Normal(unsigned int qp) const
std::vector< VecVec3 > shape_grad_
Node i, then qp.
double ShapeValue(unsigned int i, unsigned int qp) const
int FaceDofMapping(size_t face, size_t face_node_index) const
std::vector< std::vector< int > > face_dof_mappings_
Face f,then fi.
const std::vector< unsigned int > & QuadraturePointIndices() const
chi_mesh::Vector3 QPointXYZ(unsigned int qp) const
chi_mesh::Vector3 ShapeGrad(unsigned int i, unsigned int qp) const
const std::vector< VecVec3 > & ShapeGradValues() const
std::vector< VecDbl > shape_value_
Node i, then qp.
std::vector< unsigned int > quadrature_point_indices_
qp index only
std::vector< chi_mesh::Vector3 > VecVec3