|
| v0.14.0
|
Go to the documentation of this file.
7 #ifndef __TETPOLYNOMIALBASE_HPP__
8 #define __TETPOLYNOMIALBASE_HPP__
37 std::vector<void *>
v);
41 std::vector<void *>
v);
48 boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
143 int volume_order, std::array<int, 4> &faces_order,
144 std::array<int, 3 * 4> &faces_nodes,
146 boost::function<
int(
int)> broken_nbfacetri_edge_hdiv,
147 boost::function<
int(
int)> broken_nbfacetri_face_hdiv,
148 boost::function<
int(
int)> broken_nbvolumetet_edge_hdiv,
149 boost::function<
int(
int)> broken_nbvolumetet_face_hdiv,
150 boost::function<
int(
int)> broken_nbvolumetet_volume_hdiv
181 bool TetPolynomialBase::switchCacheBaseInterior<HDIV>(
185 bool TetPolynomialBase::switchCacheBrokenBaseInterior<HDIV>(
190 std::vector<void *>
v);
194 std::vector<void *>
v);
197 void TetPolynomialBase::switchCacheBaseOn<HDIV>(std::vector<void *>
v);
200 void TetPolynomialBase::switchCacheBaseOff<HDIV>(std::vector<void *>
v);
208 std::vector<void *>
v);
212 std::vector<void *>
v);
215 void TetPolynomialBase::switchCacheBaseOn<L2>(std::vector<void *>
v);
218 void TetPolynomialBase::switchCacheBaseOff<L2>(std::vector<void *>
v);
223 #endif //__TETPOLYNOMIALBASE_HPP__
MoFEMErrorCode getValueH1(MatrixDouble &pts)
Get base functions for H1 space.
MoFEMErrorCode getValueL2(MatrixDouble &pts)
Get base functions for L2 space.
Class used to pass element data to calculate base functions on tet,triangle,edge.
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.
ublas::vector< MatrixDouble > N_face_bubble
MoFEMErrorCode getValueHcurlAinsworthBase(MatrixDouble &pts)
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
static MoFEMErrorCode setDofsSideMapHdiv(const FieldContinuity continuity, const FieldApproximationBase base, DofsSideMap &dofs_side_map)
Set the Dofs Side Map Hdiv object.
ublas::matrix< MatrixDouble > N_face_edge
Base class if inherited used to calculate base functions.
MoFEMErrorCode getValueH1AinsworthBase(MatrixDouble &pts)
ublas::vector< MatrixDouble > diffN_volume_edge
static bool switchCacheBrokenBaseInterior(FieldApproximationBase base, void *ptr)
MoFEMErrorCode getValueL2AinsworthBase(MatrixDouble &pts)
TetPolynomialBase(const void *ptr=nullptr)
FieldSpace
approximation spaces
MoFEMErrorCode getValueHcurl(MatrixDouble &pts)
Get base functions for Hcurl space.
implementation of Data Operators for Forces and Sources
static bool switchCacheBaseInterior(FieldApproximationBase base, void *ptr)
MatrixDouble diffN_volume_bubble
ublas::vector< MatrixDouble > N_volume_edge
FieldContinuity
Field continuity.
UBlasMatrix< int > MatrixInt
MoFEMErrorCode getValueHdivAinsworthBaseImpl(MatrixDouble &pts, MatrixDouble &shape_functions, MatrixDouble &diff_shape_functions, int volume_order, std::array< int, 4 > &faces_order, std::array< int, 3 *4 > &faces_nodes, boost::function< int(int)> broken_nbfacetri_edge_hdiv, boost::function< int(int)> broken_nbfacetri_face_hdiv, boost::function< int(int)> broken_nbvolumetet_edge_hdiv, boost::function< int(int)> broken_nbvolumetet_face_hdiv, boost::function< int(int)> broken_nbvolumetet_volume_hdiv)
ublas::matrix< MatrixDouble > diffN_face_edge
ublas::vector< MatrixDouble > N_volume_face
MoFEMErrorCode getValueHdiv(MatrixDouble &pts)
Get base functions for Hdiv space.
MoFEMErrorCode getValueHdivAinsworthBase(MatrixDouble &pts)
ublas::vector< MatrixDouble > diffN_volume_face
MoFEMErrorCode getValueHcurlDemkowiczBase(MatrixDouble &pts)
static void switchCacheBaseOn(FieldApproximationBase base, std::vector< void * > v)
MoFEMErrorCode getValueL2BernsteinBezierBase(MatrixDouble &pts)
base class for all interface classes
const double v
phase velocity of light in medium (cm/ns)
MoFEMErrorCode getValueHdivDemkowiczBrokenBase(MatrixDouble &pts)
static MoFEMErrorCode setDofsSideMap(const FieldSpace space, const FieldContinuity continuity, const FieldApproximationBase base, DofsSideMap &)
Set map of dof to side number.
static void switchCacheBaseOff(FieldApproximationBase base, std::vector< void * > v)
EntPolynomialBaseCtx * cTx
ublas::vector< MatrixDouble > diffN_face_bubble
MoFEMErrorCode getValueHdivDemkowiczBase(MatrixDouble &pts)
MoFEMErrorCode getValue(MatrixDouble &pts, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)
FieldApproximationBase
approximation base
MatrixDouble N_volume_bubble
MoFEMErrorCode getValueH1BernsteinBezierBase(MatrixDouble &pts)
static bool switchCacheBaseFace(FieldApproximationBase base, void *ptr)
virtual ~TetPolynomialBase()
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
MoFEMErrorCode getValueHdivAinsworthBrokenBase(MatrixDouble &pts)
Calculate base functions on tetrahedral.