v0.14.0
HexPolynomialBase.hpp
Go to the documentation of this file.
1 /** \file HexPolynomialBase.hpp
2 \brief Implementation of Ainsworth-Coyle / Demkowicz or any other H1, Hcurl,
3 Hdiv and L2 base on tetrahedral
4 
5 */
6 
7 
8 
9 #ifndef __HEXPOLYNOMIALBASE_HPP__
10 #define __HEXPOLYNOMIALBASE_HPP__
11 
12 namespace 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  HexPolynomialBase() = default;
24  ~HexPolynomialBase() = default;
25 
27  boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
28 
29 private:
31 
32  /*
33  * @brief Get base functions for H1 space
34  *
35  * @param pts matrix of intergation pts
36  * @return MoFEMErrorCode
37  *
38  * \note matrix of integration points on rows has local coordinates of finite
39  * element on columns are integration pts.
40  */
42 
43  /**
44  * @brief Get base functions for L2 space
45  *
46  * @param pts matrix of intergation pts
47  * @return MoFEMErrorCode
48  *
49  * \note matrix of integration points on rows has local coordinates of finite
50  * element on columns are integration pts.
51  */
53 
54  /**
55  * @brief Get base functions for Hdiv space
56  *
57  * @param pts matrix of intergation pts
58  * @return MoFEMErrorCode
59  *
60  * \note matrix of integration points on rows has local coordinates of finite
61  * element on columns are integration pts.
62  */
64 
65  /**
66  * @brief Get base functions for Hcurl space
67  *
68  * @param pts matrix of intergation pts
69  * @return MoFEMErrorCode
70  *
71  * \note matrix of integration points on rows has local coordinates of finite
72  * element on columns are integration pts.
73  */
75 
76 private:
81 
82  std::array<MatrixDouble, 6> faceFamily;
83  std::array<MatrixDouble, 6> diffFaceFamily;
84 
87 };
88 
89 } // namespace MoFEM
90 
91 #endif //__HEXPOLYNOMIALBASE_HPP__
UBlasMatrix< double >
MoFEM::HexPolynomialBase
Calculate base functions on tetrahedral.
Definition: HexPolynomialBase.hpp:19
MoFEM::HexPolynomialBase::getValueH1DemkowiczBase
MoFEMErrorCode getValueH1DemkowiczBase(MatrixDouble &pts)
Definition: HexPolynomialBase.cpp:32
MoFEM::HexPolynomialBase::getValueHdiv
MoFEMErrorCode getValueHdiv(MatrixDouble &pts)
Get base functions for Hdiv space.
Definition: HexPolynomialBase.cpp:254
MoFEM::EntPolynomialBaseCtx
Class used to pass element data to calculate base functions on tet,triangle,edge.
Definition: EntPolynomialBaseCtx.hpp:22
MoFEM::Exceptions::MoFEMErrorCode
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:56
MoFEM::HexPolynomialBase::cTx
EntPolynomialBaseCtx * cTx
Definition: HexPolynomialBase.hpp:30
MoFEM::BaseFunction
Base class if inherited used to calculate base functions.
Definition: BaseFunction.hpp:40
MoFEM::HexPolynomialBase::getValueL2DemkowiczBase
MoFEMErrorCode getValueL2DemkowiczBase(MatrixDouble &pts)
Definition: HexPolynomialBase.cpp:214
MoFEM::HexPolynomialBase::getValue
MoFEMErrorCode getValue(MatrixDouble &pts, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)
Definition: HexPolynomialBase.cpp:709
MoFEM
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:10
MoFEM::HexPolynomialBase::getValueHcurl
MoFEMErrorCode getValueHcurl(MatrixDouble &pts)
Get base functions for Hcurl space.
Definition: HexPolynomialBase.cpp:434
MoFEM::HexPolynomialBase::~HexPolynomialBase
~HexPolynomialBase()=default
MoFEM::HexPolynomialBase::volFamily
MatrixDouble volFamily
Definition: HexPolynomialBase.hpp:85
MoFEM::UnknownInterface
base class for all interface classes
Definition: UnknownInterface.hpp:34
MoFEM::HexPolynomialBase::query_interface
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
Definition: HexPolynomialBase.cpp:11
MoFEM::HexPolynomialBase::HexPolynomialBase
HexPolynomialBase()=default
MoFEM::HexPolynomialBase::getValueH1
MoFEMErrorCode getValueH1(MatrixDouble &pts)
Definition: HexPolynomialBase.cpp:18
MoFEM::HexPolynomialBase::getValueHdivDemkowiczBase
MoFEMErrorCode getValueHdivDemkowiczBase(MatrixDouble &pts)
Definition: HexPolynomialBase.cpp:268
MoFEM::HexPolynomialBase::diffFaceFamily
std::array< MatrixDouble, 6 > diffFaceFamily
Definition: HexPolynomialBase.hpp:83
MoFEM::HexPolynomialBase::getValueHcurlDemkowiczBase
MoFEMErrorCode getValueHcurlDemkowiczBase(MatrixDouble &pts)
Definition: HexPolynomialBase.cpp:449
MoFEM::HexPolynomialBase::getValueL2
MoFEMErrorCode getValueL2(MatrixDouble &pts)
Get base functions for L2 space.
Definition: HexPolynomialBase.cpp:200
MoFEM::HexPolynomialBase::faceFamily
std::array< MatrixDouble, 6 > faceFamily
Definition: HexPolynomialBase.hpp:82
MoFEM::HexPolynomialBase::diffVolFamily
MatrixDouble diffVolFamily
Definition: HexPolynomialBase.hpp:86