20#ifndef __FACEELEMENTFORCESANDSOURCESCORE_HPP__
21#define __FACEELEMENTFORCESANDSOURCESCORE_HPP__
23using namespace boost::numeric;
27struct VolumeElementForcesAndSourcesCoreOnSide;
154 inline const EntityHandle *
getConn();
279 double *ptr = &*getNormal().data().begin();
284 double *ptr = &*getTangent1().data().begin();
289 double *ptr = &*getTangent2().data().begin();
307 double *ptr = &*getCoords().data().begin();
318ublas::matrix_row<MatrixDouble>
321 return ublas::matrix_row<MatrixDouble>(
340 double *ptr = &*getNormalsAtGaussPts().data().begin();
347 double *ptr = &*getTangent1AtGaussPts().data().begin();
354 double *ptr = &*getTangent2AtGaussPts().data().begin();
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
implementation of Data Operators for Forces and Sources
DEPRECATED typedef FaceElementForcesAndSourcesCore FaceElementForcesAndSourcesCoreBase
Deprecated interface functions.
default operator for TRI element
MatrixDouble & getNormalsAtGaussPts()
if higher order geometry return normals at Gauss pts.
double getMeasure()
get measure of element
auto getFTensor1Tangent1()
get tangentOne as tensor
VectorDouble & getTangent1()
get triangle tangent 1
auto getFTensor1Tangent2AtGaussPts()
get tangent 2 at integration points
MoFEMErrorCode setPtrFE(ForcesAndSourcesCore *ptr)
MoFEMErrorCode loopSideVolumes(const string fe_name, VolumeElementForcesAndSourcesCoreOnSide &fe_method)
double getArea()
get area of face
FaceElementForcesAndSourcesCore * getFaceFE()
return pointer to Generic Triangle Finite Element object
auto getFTensor1Tangent2()
get tangentTwo as tensor
MatrixDouble & getTangent2AtGaussPts()
if higher order geometry return tangent vector to triangle at Gauss pts.
VectorDouble & getTangent2()
get triangle tangent 2
auto getFTensor1Coords()
get get coords at gauss points
VectorDouble & getNormal()
get triangle normal
auto getFTensor1NormalsAtGaussPts()
get normal at integration points
auto getFTensor1Normal()
get normal as tensor
int getNumNodes()
get element number of nodes
VectorDouble & getCoords()
get triangle coordinates
const EntityHandle * getConn()
get element connectivity
MatrixDouble & getTangent1AtGaussPts()
if higher order geometry return tangent vector to triangle at Gauss pts.
auto getFTensor1Tangent1AtGaussPts()
get tangent 1 at integration points
std::string meshPositionsFieldName
MatrixDouble tangentOneAtGaussPts
virtual MoFEMErrorCode calculateAreaAndNormal()
Calculate element area and normal of the face.
MoFEMErrorCode operator()()
function is run for every finite element
FaceElementForcesAndSourcesCore(Interface &m_field)
MatrixDouble normalsAtGaussPts
virtual MoFEMErrorCode getSpaceBaseAndOrderOnElement()
Determine approximation space and order of base functions.
virtual MoFEMErrorCode calculateAreaAndNormalAtIntegrationPts()
Calculate element area and normal of the face at integration points.
virtual MoFEMErrorCode setIntegrationPts()
Set integration points.
const EntityHandle * conn
virtual MoFEMErrorCode calculateCoordinatesAtGaussPts()
Calculate coordinate at integration points.
MatrixDouble tangentTwoAtGaussPts
UserDataOperator(const FieldSpace space, const char type=OPSPACE, const bool symm=true)
ForcesAndSourcesCore * ptrFE
structure to get information form mofem into EntitiesFieldData
Base volume element used to integrate on skeleton.