20 "Pointer to face element is not set");
26 SideNumber_multiIndex::nth_index<0>::type::iterator sit =
27 side_table.get<0>().find(edge_entity);
28 if (sit == side_table.get<0>().end())
30 "Edge can not be found on face element");
38 for (
int nn = 0; nn != 2; ++nn) {
44 "No common node on face and element can not be found");
48 gaussPts.resize(3, nb_gauss_pts,
false);
54 auto set_integration_pts_for_tri = [&]() {
58 constexpr double face_coords[] = {0, 0, 1, 0, 0, 1};
59 for (
int gg = 0; gg != nb_gauss_pts; ++gg) {
66 gaussPts(2, gg) = edge_ptr_fe->gaussPts(1, gg);
71 auto set_integration_pts_for_quad = [&]() {
74 constexpr double face_coords[] = {0, 0, 1, 0, 1, 1, 0, 1};
75 for (
int gg = 0; gg != nb_gauss_pts; ++gg) {
82 gaussPts(2, gg) = edge_ptr_fe->gaussPts(1, gg);
91 CHKERR set_integration_pts_for_tri();
94 CHKERR set_integration_pts_for_quad();
98 "Element type not implemented: %d", type);
105FaceElementForcesAndSourcesCoreOnSide::UserDataOperator::setPtrFE(
110 "User operator and finite element do not work together");
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
@ MOFEM_DATA_INCONSISTENCY
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
static const double face_coords[4][9]
multi_index_container< boost::shared_ptr< SideNumber >, indexed_by< ordered_unique< member< SideNumber, EntityHandle, &SideNumber::ent > >, ordered_non_unique< composite_key< SideNumber, const_mem_fun< SideNumber, EntityType, &SideNumber::getEntType >, member< SideNumber, signed char, &SideNumber::side_number > > > > > SideNumber_multiIndex
SideNumber_multiIndex for SideNumber.
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
implementation of Data Operators for Forces and Sources
data structure for finite element entity
std::array< boost::ptr_vector< EntData >, MBMAXTYPE > dataOnEntities
boost::shared_ptr< const NumeredEntFiniteElement > numeredEntFiniteElementPtr
const EntityHandle * conn
Base face element used to integrate on skeleton.
std::array< int, 4 > faceConnMap
std::array< int, 2 > edgeConnMap
int edgeSense
Sense of edge, could be 1 or -1.
MoFEMErrorCode setGaussPts(int order)
int edgeSideNumber
Edge side number.
ForcesAndSourcesCore * ptrFE
structure to get information form mofem into EntitiesFieldData
ForcesAndSourcesCore * sidePtrFE
Element to integrate on the sides.
MatrixDouble gaussPts
Matrix of integration points.