v0.14.0
FatPrismPolynomialBase.hpp
Go to the documentation of this file.
1 /** \file FatPrismPolynomialBase.hpp
2 \brief Implementation of Ainsworth-Cole H1 base on tetrahedral
3 
4 */
5 
6 
7 
8 #ifndef __FATPRISMPOLYNOMIALBASE_HPP__
9 #define __FATPRISMPOLYNOMIALBASE_HPP__
10 
11 namespace MoFEM {
12 
13 struct NumeredEntFiniteElement;
14 
15 /**
16  * \brief Class used to pass element data to calculate base functions on fat
17  * prism
18  *
19  * \ingroup mofem_base_functions
20  * FIXME: Need moab and mofem finite element structure to work (that not
21  * perfect)
22  */
24 
25  MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
26  UnknownInterface **iface) const;
27 
30 
33 
36 
38  EntitiesFieldData &data,
39  EntitiesFieldData &data_triangles_only,
40  EntitiesFieldData &data_trough_thickness,
41  MatrixDouble &gauss_pts_triangles_only,
42  MatrixDouble &gauss_pts_through_thickness, moab::Interface &moab,
43  const NumeredEntFiniteElement *fe_ptr, const FieldSpace space,
44  const FieldApproximationBase base,
45  const FieldApproximationBase copy_node_base = LASTBASE);
46 
48 };
49 
50 /**
51  * \brief Calculate base functions on tetrahedral
52  * \ingroup mofem_base_functions
53  * FIXME: Need moab and mofem finite element structure to work (that not
54  * perfect)
55  */
57 
58  MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
59  UnknownInterface **iface) const;
60 
63 
65  boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
66 
67 private:
69 
71 
73 
75 
77 
79 
81 
82  // int faceNodes[2][3];
85 };
86 
87 } // namespace MoFEM
88 
89 #endif //__FATPRISMPOLYNOMIALBASE_HPP__
MoFEM::FatPrismPolynomialBaseCtx::gaussPtsTrianglesOnly
MatrixDouble & gaussPtsTrianglesOnly
Definition: FatPrismPolynomialBase.hpp:31
MoFEM::FatPrismPolynomialBaseCtx::query_interface
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
Definition: FatPrismPolynomialBase.cpp:13
MoFEM::FatPrismPolynomialBase::getValue
MoFEMErrorCode getValue(MatrixDouble &pts, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)
Definition: FatPrismPolynomialBase.cpp:51
LASTBASE
@ LASTBASE
Definition: definitions.h:69
MoFEM::FatPrismPolynomialBase::N
MatrixDouble N
Definition: FatPrismPolynomialBase.hpp:83
MoFEM::EntPolynomialBaseCtx
Class used to pass element data to calculate base functions on tet,triangle,edge.
Definition: EntPolynomialBaseCtx.hpp:22
MoFEM::FatPrismPolynomialBaseCtx::dataTroughThickness
EntitiesFieldData & dataTroughThickness
Definition: FatPrismPolynomialBase.hpp:29
MoFEM::FatPrismPolynomialBase::getValueH1ThroughThickness
MoFEMErrorCode getValueH1ThroughThickness()
Definition: FatPrismPolynomialBase.cpp:130
MoFEM::Exceptions::MoFEMErrorCode
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:56
MoFEM::Types::MatrixDouble
UBlasMatrix< double > MatrixDouble
Definition: Types.hpp:77
MoFEM::FatPrismPolynomialBase::diffN
MatrixDouble diffN
Definition: FatPrismPolynomialBase.hpp:84
MoFEM::FatPrismPolynomialBaseCtx::FatPrismPolynomialBaseCtx
FatPrismPolynomialBaseCtx(EntitiesFieldData &data, EntitiesFieldData &data_triangles_only, EntitiesFieldData &data_trough_thickness, MatrixDouble &gauss_pts_triangles_only, MatrixDouble &gauss_pts_through_thickness, moab::Interface &moab, const NumeredEntFiniteElement *fe_ptr, const FieldSpace space, const FieldApproximationBase base, const FieldApproximationBase copy_node_base=LASTBASE)
Definition: FatPrismPolynomialBase.cpp:19
MoFEM::FatPrismPolynomialBase::getValueHdiv
MoFEMErrorCode getValueHdiv(MatrixDouble &pts)
Definition: FatPrismPolynomialBase.cpp:481
MoFEM::BaseFunction
Base class if inherited used to calculate base functions.
Definition: BaseFunction.hpp:40
MoFEM::FatPrismPolynomialBase
Calculate base functions on tetrahedral.
Definition: FatPrismPolynomialBase.hpp:56
MoFEM::FatPrismPolynomialBaseCtx::fePtr
const NumeredEntFiniteElement * fePtr
Definition: FatPrismPolynomialBase.hpp:35
MoFEM::FatPrismPolynomialBase::getValueHcurl
MoFEMErrorCode getValueHcurl(MatrixDouble &pts)
Definition: FatPrismPolynomialBase.cpp:485
MoFEM::FatPrismPolynomialBase::getValueL2
MoFEMErrorCode getValueL2(MatrixDouble &pts)
Definition: FatPrismPolynomialBase.cpp:475
MoFEM::Interface
DeprecatedCoreInterface Interface
Definition: Interface.hpp:1975
FieldSpace
FieldSpace
approximation spaces
Definition: definitions.h:82
MoFEM::FatPrismPolynomialBase::FatPrismPolynomialBase
FatPrismPolynomialBase()
Definition: FatPrismPolynomialBase.cpp:48
MoFEM::FatPrismPolynomialBase::~FatPrismPolynomialBase
~FatPrismPolynomialBase()
Definition: FatPrismPolynomialBase.cpp:47
MoFEM
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:10
MoFEM::FatPrismPolynomialBaseCtx
Class used to pass element data to calculate base functions on fat prism.
Definition: FatPrismPolynomialBase.hpp:23
MoFEM::FatPrismPolynomialBase::getValueH1
MoFEMErrorCode getValueH1(MatrixDouble &pts)
Definition: FatPrismPolynomialBase.cpp:171
MoFEM::FatPrismPolynomialBaseCtx::~FatPrismPolynomialBaseCtx
~FatPrismPolynomialBaseCtx()
Definition: FatPrismPolynomialBase.cpp:38
MoFEM::FatPrismPolynomialBase::getValueH1TrianglesOnly
MoFEMErrorCode getValueH1TrianglesOnly()
Definition: FatPrismPolynomialBase.cpp:120
MoFEM::UnknownInterface
base class for all interface classes
Definition: UnknownInterface.hpp:34
MoFEM::FatPrismPolynomialBaseCtx::mOab
moab::Interface & mOab
Definition: FatPrismPolynomialBase.hpp:34
MoFEM::FatPrismPolynomialBase::cTx
FatPrismPolynomialBaseCtx * cTx
Definition: FatPrismPolynomialBase.hpp:68
MoFEM::FatPrismPolynomialBase::query_interface
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
Definition: FatPrismPolynomialBase.cpp:41
FieldApproximationBase
FieldApproximationBase
approximation base
Definition: definitions.h:58
MoFEM::NumeredEntFiniteElement
Partitioned (Indexed) Finite Element in Problem.
Definition: FEMultiIndices.hpp:728
MoFEM::EntitiesFieldData
data structure for finite element entity
Definition: EntitiesFieldData.hpp:40
MoFEM::FatPrismPolynomialBaseCtx::gaussPtsThroughThickness
MatrixDouble & gaussPtsThroughThickness
Definition: FatPrismPolynomialBase.hpp:32
MoFEM::FatPrismPolynomialBaseCtx::dataTrianglesOnly
EntitiesFieldData & dataTrianglesOnly
Definition: FatPrismPolynomialBase.hpp:28