v0.15.0
Loading...
Searching...
No Matches
TriPolynomialBase.hpp
Go to the documentation of this file.
1/** \file TriPolynomialBase.hpp
2\brief Implementation of H1, Hcurl base on triangle
3
4*/
5
6#ifndef __H1TRIPOLYNOMIAL_HPP__
7#define __H1TRIPOLYNOMIAL_HPP__
8
9namespace MoFEM {
10
11/**
12 * \brief Calculate base functions on triangle
13 *
14 * \ingroup mofem_base_functions
15 */
17
18 MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
19 UnknownInterface **iface) const;
20
21 TriPolynomialBase() = default;
22 virtual ~TriPolynomialBase() = default;
23
25 boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
26
27 /**
28 * @brief Set map of dof to side number
29 *
30 * That is used for broken space to establish connection between dofs in the
31 * interior of element/entity and side of element/entity to which that dof is
32 * associated. That depends on implementation of the base for given space, and
33 * has to be implemented while implementing base function for given space.
34 *
35 * @param space
36 * @param continuity
37 * @param base
38 * @param DofsSideMap
39 * @return MoFEMErrorCode
40 */
41 static MoFEMErrorCode setDofsSideMap(const FieldSpace space,
42 const FieldContinuity continuity,
43 const FieldApproximationBase base,
44 DofsSideMap &);
45
46private:
48
52
56
57 ublas::matrix<MatrixDouble> N_face_edge;
58 ublas::vector<MatrixDouble> N_face_bubble;
59 ublas::matrix<MatrixDouble> diffN_face_edge;
60 ublas::vector<MatrixDouble> diffN_face_bubble;
61
63
65
68
71
74
76 const FieldContinuity continuity,
77 const FieldApproximationBase base,
78 DofsSideMap &dofs_side_map);
79};
80
81} // namespace MoFEM
82
83#endif //__H1TRIPOLYNOMIAL_HPP__
FieldApproximationBase
approximation base
Definition definitions.h:58
FieldSpace
approximation spaces
Definition definitions.h:82
FieldContinuity
Field continuity.
Definition definitions.h:99
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
implementation of Data Operators for Forces and Sources
Definition Common.hpp:10
Base class if inherited used to calculate base functions.
multi_index_container< DofsSideMapData, indexed_by< ordered_non_unique< tag< TypeSide_mi_tag >, composite_key< DofsSideMapData, member< DofsSideMapData, EntityType, &DofsSideMapData::type >, member< DofsSideMapData, int, &DofsSideMapData::side > > >, ordered_unique< tag< EntDofIdx_mi_tag >, member< DofsSideMapData, int, &DofsSideMapData::dof > > > > DofsSideMap
Map entity stype and side to element/entity dof index.
Class used to pass element data to calculate base functions on tet,triangle,edge.
Calculate base functions on triangle.
MoFEMErrorCode getValueH1BernsteinBezierBase(MatrixDouble &pts)
ublas::vector< MatrixDouble > diffN_face_bubble
MoFEMErrorCode getValueL2BernsteinBezierBase(MatrixDouble &pts)
MoFEMErrorCode getValueH1(MatrixDouble &pts)
MoFEMErrorCode getValueH1AinsworthBase(MatrixDouble &pts)
MoFEMErrorCode getValueL2(MatrixDouble &pts)
MoFEMErrorCode getValue(MatrixDouble &pts, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)
ublas::matrix< MatrixDouble > N_face_edge
MoFEMErrorCode getValueHdivAinsworthBase(MatrixDouble &pts)
MoFEMErrorCode getValueHdivDemkowiczBase(MatrixDouble &pts)
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
ublas::vector< MatrixDouble > N_face_bubble
ublas::matrix< MatrixDouble > diffN_face_edge
MoFEMErrorCode getValueHcurlDemkowiczBase(MatrixDouble &pts)
MoFEMErrorCode getValueHcurl(MatrixDouble &pts)
static MoFEMErrorCode setDofsSideMapHcurl(const FieldSpace space, const FieldContinuity continuity, const FieldApproximationBase base, DofsSideMap &dofs_side_map)
static MoFEMErrorCode setDofsSideMap(const FieldSpace space, const FieldContinuity continuity, const FieldApproximationBase base, DofsSideMap &)
Set map of dof to side number.
EntPolynomialBaseCtx * cTx
MoFEMErrorCode getValueHcurlAinsworthBase(MatrixDouble &pts)
virtual ~TriPolynomialBase()=default
MoFEMErrorCode getValueHcurlAinsworthBrokenBase(MatrixDouble &pts)
MoFEMErrorCode getValueHdiv(MatrixDouble &pts)
MoFEMErrorCode getValueL2AinsworthBase(MatrixDouble &pts)
MoFEMErrorCode getValueHcurlDemkowiczBrokenBase(MatrixDouble &pts)
base class for all interface classes