v0.14.0
Loading...
Searching...
No Matches
TetPolynomialBase.hpp
Go to the documentation of this file.
1/** \file TetPolynomialBase.hpp
2\brief Implementation of Ainsworth-Coyle / Demkowicz or any other H1, Hcurl,
3Hdiv and L2 base on tetrahedral
4
5*/
6
7
8
9#ifndef __TETPOLYNOMIALBASE_HPP__
10#define __TETPOLYNOMIALBASE_HPP__
11
12namespace MoFEM {
13
14/**
15 * \brief Calculate base functions on tetrahedral
16 *
17 * \ingroup mofem_base_functions
18 */
20
21 MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
22 UnknownInterface **iface) const;
23
24 TetPolynomialBase() = default;
25 ~TetPolynomialBase() = default;
26
28 boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
29
30private:
32
33 /**
34 * @brief Get base functions for H1 space
35 *
36 * @param pts matrix of intergation pts
37 * @return MoFEMErrorCode
38 *
39 * \note matrix of integration points on rows has local coordinates of finite
40 * element on columns are integration pts.
41 */
43
44 /**
45 * @brief Get base functions for L2 space
46 *
47 * @param pts matrix of intergation pts
48 * @return MoFEMErrorCode
49 *
50 * \note matrix of integration points on rows has local coordinates of finite
51 * element on columns are integration pts.
52 */
54
55 /**
56 * @brief Get base functions for Hdiv space
57 *
58 * @param pts matrix of intergation pts
59 * @return MoFEMErrorCode
60 *
61 * \note matrix of integration points on rows has local coordinates of finite
62 * element on columns are integration pts.
63 */
65
66 /**
67 * @brief Get base functions for Hcurl space
68 *
69 * @param pts matrix of intergation pts
70 * @return MoFEMErrorCode
71 *
72 * \note matrix of integration points on rows has local coordinates of finite
73 * element on columns are integration pts.
74 */
76
77 ublas::matrix<MatrixDouble> N_face_edge;
78 ublas::vector<MatrixDouble> N_face_bubble;
79 ublas::vector<MatrixDouble> N_volume_edge;
80 ublas::vector<MatrixDouble> N_volume_face;
82
83 ublas::matrix<MatrixDouble> diffN_face_edge;
84 ublas::vector<MatrixDouble> diffN_face_bubble;
85 ublas::vector<MatrixDouble> diffN_volume_edge;
86 ublas::vector<MatrixDouble> diffN_volume_face;
88
89private:
92
95
98
101
103};
104
105} // namespace MoFEM
106
107#endif //__TETPOLYNOMIALBASE_HPP__
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:56
UBlasMatrix< int > MatrixInt
Definition: Types.hpp:76
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:10
Base class if inherited used to calculate base functions.
Class used to pass element data to calculate base functions on tet,triangle,edge.
Calculate base functions on tetrahedral.
ublas::matrix< MatrixDouble > diffN_face_edge
EntPolynomialBaseCtx * cTx
MoFEMErrorCode getValueH1AinsworthBase(MatrixDouble &pts)
ublas::vector< MatrixDouble > diffN_volume_face
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
MoFEMErrorCode getValueL2BernsteinBezierBase(MatrixDouble &pts)
MoFEMErrorCode getValueHcurlDemkowiczBase(MatrixDouble &pts)
MoFEMErrorCode getValueHcurl(MatrixDouble &pts)
Get base functions for Hcurl space.
MoFEMErrorCode getValueH1BernsteinBezierBase(MatrixDouble &pts)
MoFEMErrorCode getValueH1(MatrixDouble &pts)
Get base functions for H1 space.
ublas::vector< MatrixDouble > diffN_face_bubble
ublas::vector< MatrixDouble > N_volume_edge
ublas::vector< MatrixDouble > N_volume_face
MoFEMErrorCode getValueHdiv(MatrixDouble &pts)
Get base functions for Hdiv space.
MoFEMErrorCode getValueHdivAinsworthBase(MatrixDouble &pts)
MoFEMErrorCode getValueL2AinsworthBase(MatrixDouble &pts)
ublas::vector< MatrixDouble > N_face_bubble
ublas::matrix< MatrixDouble > N_face_edge
MoFEMErrorCode getValueL2(MatrixDouble &pts)
Get base functions for L2 space.
MoFEMErrorCode getValueHdivDemkowiczBase(MatrixDouble &pts)
MoFEMErrorCode getValue(MatrixDouble &pts, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)
ublas::vector< MatrixDouble > diffN_volume_edge
MoFEMErrorCode getValueHcurlAinsworthBase(MatrixDouble &pts)
base class for all interface classes