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
190 std::vector<void *>
v);
194 std::vector<void *>
v);
208 std::vector<void *>
v);
212 std::vector<void *>
v);
FieldApproximationBase
approximation base
FieldSpace
approximation spaces
FieldContinuity
Field continuity.
const double v
phase velocity of light in medium (cm/ns)
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
UBlasMatrix< int > MatrixInt
implementation of Data Operators for Forces and Sources
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 tetrahedral.
ublas::matrix< MatrixDouble > diffN_face_edge
EntPolynomialBaseCtx * cTx
MatrixDouble N_volume_bubble
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)
static void switchCacheBaseOff(FieldApproximationBase base, std::vector< void * > v)
MoFEMErrorCode getValueH1AinsworthBase(MatrixDouble &pts)
MoFEMErrorCode getValueHdivAinsworthBrokenBase(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)
static bool switchCacheBaseFace(FieldApproximationBase base, void *ptr)
static void switchCacheBaseOff(std::vector< void * > v)
MoFEMErrorCode getValueHcurl(MatrixDouble &pts)
Get base functions for Hcurl space.
virtual ~TetPolynomialBase()
MoFEMErrorCode getValueH1BernsteinBezierBase(MatrixDouble &pts)
static void switchCacheBaseOn(std::vector< void * > v)
static MoFEMErrorCode setDofsSideMap(const FieldSpace space, const FieldContinuity continuity, const FieldApproximationBase base, DofsSideMap &)
Set map of dof to side number.
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
static void switchCacheBaseOn(FieldApproximationBase base, std::vector< void * > v)
MoFEMErrorCode getValueHdiv(MatrixDouble &pts)
Get base functions for Hdiv space.
MoFEMErrorCode getValueHdivAinsworthBase(MatrixDouble &pts)
static bool switchCacheBrokenBaseInterior(FieldApproximationBase base, void *ptr)
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.
MatrixDouble diffN_volume_bubble
MoFEMErrorCode getValueHdivDemkowiczBase(MatrixDouble &pts)
TetPolynomialBase(const void *ptr=nullptr)
MoFEMErrorCode getValue(MatrixDouble &pts, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)
static bool switchCacheBaseInterior(FieldApproximationBase base, void *ptr)
MoFEMErrorCode getValueHdivDemkowiczBrokenBase(MatrixDouble &pts)
ublas::vector< MatrixDouble > diffN_volume_edge
MoFEMErrorCode getValueHcurlAinsworthBase(MatrixDouble &pts)
static MoFEMErrorCode setDofsSideMapHdiv(const FieldContinuity continuity, const FieldApproximationBase base, DofsSideMap &dofs_side_map)
Set the Dofs Side Map Hdiv object.
base class for all interface classes