11using namespace boost::numeric;
13#ifndef __FLATPRISMELEMENTFORCESANDSURCESCORE_HPP__
14#define __FLATPRISMELEMENTFORCESANDSURCESCORE_HPP__
36 using ForcesAndSourcesCore::UserDataOperator::UserDataOperator;
41 inline double getArea(
const int dd);
175FlatPrismElementForcesAndSourcesCore::UserDataOperator::getArea(
const int dd) {
180FlatPrismElementForcesAndSourcesCore::UserDataOperator::getAreaF3() {
184FlatPrismElementForcesAndSourcesCore::UserDataOperator::getAreaF4() {
189FlatPrismElementForcesAndSourcesCore::UserDataOperator::getNormal() {
194FlatPrismElementForcesAndSourcesCore::UserDataOperator::getNormalF3() {
197 return VectorAdaptor(3, ublas::shallow_array_adaptor<double>(3, data));
201FlatPrismElementForcesAndSourcesCore::UserDataOperator::getNormalF4() {
204 return VectorAdaptor(3, ublas::shallow_array_adaptor<double>(3, data));
208FlatPrismElementForcesAndSourcesCore::UserDataOperator::getCoords() {
213FlatPrismElementForcesAndSourcesCore::UserDataOperator::getCoordsAtGaussPts() {
218inline MatrixDouble &FlatPrismElementForcesAndSourcesCore::UserDataOperator::
219 getHOCoordsAtGaussPtsF3() {
224inline MatrixDouble &FlatPrismElementForcesAndSourcesCore::UserDataOperator::
225 getHOCoordsAtGaussPtsF4() {
230inline MatrixDouble &FlatPrismElementForcesAndSourcesCore::UserDataOperator::
231 getNormalsAtGaussPtsF3() {
236inline MatrixDouble &FlatPrismElementForcesAndSourcesCore::UserDataOperator::
237 getNormalsAtGaussPtsF4() {
242inline ublas::matrix_row<MatrixDouble>
243FlatPrismElementForcesAndSourcesCore::UserDataOperator::getNormalsAtGaussPtsF3(
245 return ublas::matrix_row<MatrixDouble>(
251inline ublas::matrix_row<MatrixDouble>
252FlatPrismElementForcesAndSourcesCore::UserDataOperator::getNormalsAtGaussPtsF4(
254 return ublas::matrix_row<MatrixDouble>(
260inline MatrixDouble &FlatPrismElementForcesAndSourcesCore::UserDataOperator::
261 getTangent1AtGaussPtF3() {
266inline MatrixDouble &FlatPrismElementForcesAndSourcesCore::UserDataOperator::
267 getTangent2AtGaussPtF3() {
272inline MatrixDouble &FlatPrismElementForcesAndSourcesCore::UserDataOperator::
273 getTangent1AtGaussPtF4() {
278inline MatrixDouble &FlatPrismElementForcesAndSourcesCore::UserDataOperator::
279 getTangent2AtGaussPtF4() {
285FlatPrismElementForcesAndSourcesCore::UserDataOperator::
286 getFlatPrismElementForcesAndSourcesCore() {
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
VectorShallowArrayAdaptor< double > VectorAdaptor
implementation of Data Operators for Forces and Sources
DEPRECATED typedef FlatPrismElementForcesAndSourcesCore FlatPrismElementForcesAndSurcesCore
USe FlatPrismElementForcesAndSourcesCore.
Deprecated interface functions.
default operator for Flat Prism element
MatrixDouble & getTangent2AtGaussPtF3()
if higher order geometry return tangent vector to triangle at Gauss pts.
VectorDouble & getNormal()
get triangle normal
VectorDouble & getCoords()
get triangle coordinates
MatrixDouble & getTangent2AtGaussPtF4()
if higher order geometry return tangent vector to triangle at Gauss pts.
MatrixDouble & getHOCoordsAtGaussPtsF3()
coordinate at Gauss points on face 3 (if hierarchical approximation of element geometry)
VectorAdaptor getNormalF3()
VectorAdaptor getNormalF4()
MatrixDouble & getTangent1AtGaussPtF3()
if higher order geometry return tangent vector to triangle at Gauss pts.
MatrixDouble & getHOCoordsAtGaussPtsF4()
coordinate at Gauss points on face 4 (if hierarchical approximation of element geometry)
MatrixDouble & getCoordsAtGaussPts()
get coordinates at Gauss pts.
MatrixDouble & getNormalsAtGaussPtsF4()
if higher order geometry return normals at face F4 at Gauss pts.
double getArea(const int dd)
get face aRea
const FlatPrismElementForcesAndSourcesCore * getFlatPrismElementForcesAndSourcesCore()
return pointer to triangle finite element object
MoFEMErrorCode setPtrFE(ForcesAndSourcesCore *ptr)
MatrixDouble & getTangent1AtGaussPtF4()
if higher order geometry return tangent vector to triangle at Gauss pts.
MatrixDouble & getNormalsAtGaussPtsF3()
if higher order geometry return normals at face F3 at Gauss pts.
FlatPrism finite element.
MatrixDouble tAngent1_at_GaussPtF3
MatrixDouble hoCoordsAtGaussPtsF4
MatrixDouble hoCoordsAtGaussPtsF3
MatrixDouble nOrmals_at_GaussPtF3
MatrixDouble tAngent2_at_GaussPtF3
MatrixDouble coordsAtGaussPts
MoFEMErrorCode operator()()
function is run for every finite element
MatrixDouble nOrmals_at_GaussPtF4
MatrixDouble tAngent2_at_GaussPtF4
MatrixDouble tAngent1_at_GaussPtF4
OpGetCoordsAndNormalsOnPrism opHOCoordsAndNormals
std::string meshPositionsFieldName
ForcesAndSourcesCore * ptrFE
structure to get information form mofem into EntitiesFieldData
calculate normals at Gauss points of triangle element