12#ifndef __FATPRISMELEMENTFORCESANDSURCESCORE_HPP__ 
   13#define __FATPRISMELEMENTFORCESANDSURCESCORE_HPP__ 
   15using namespace boost::numeric;
 
   57    using VolumeElementForcesAndSourcesCore::UserDataOperator::UserDataOperator;
 
   62    inline double getArea(
const int dd);
 
 
 
  210FatPrismElementForcesAndSourcesCore::UserDataOperator::getArea(
const int dd) {
 
 
  215FatPrismElementForcesAndSourcesCore::UserDataOperator::getAreaF3() {
 
 
  219FatPrismElementForcesAndSourcesCore::UserDataOperator::getAreaF4() {
 
 
  224FatPrismElementForcesAndSourcesCore::UserDataOperator::getNormal() {
 
 
  229FatPrismElementForcesAndSourcesCore::UserDataOperator::getNormalF3() {
 
  232  return VectorAdaptor(3, ublas::shallow_array_adaptor<double>(3, data));
 
 
  236FatPrismElementForcesAndSourcesCore::UserDataOperator::getNormalF4() {
 
  239  return VectorAdaptor(3, ublas::shallow_array_adaptor<double>(3, data));
 
 
  243FatPrismElementForcesAndSourcesCore::UserDataOperator::getGaussPts() {
 
 
  247inline MatrixDouble &FatPrismElementForcesAndSourcesCore::UserDataOperator::
 
  248    getGaussPtsTrianglesOnly() {
 
 
  253inline MatrixDouble &FatPrismElementForcesAndSourcesCore::UserDataOperator::
 
  254    getGaussPtsThroughThickness() {
 
 
  260FatPrismElementForcesAndSourcesCore::UserDataOperator::getCoordsAtGaussPts() {
 
 
  265inline MatrixDouble &FatPrismElementForcesAndSourcesCore::UserDataOperator::
 
  266    getCoordsAtGaussPtsTrianglesOnly() {
 
 
  271inline MatrixDouble &FatPrismElementForcesAndSourcesCore::UserDataOperator::
 
  272    getHOCoordsAtGaussPtsF3() {
 
 
  277inline MatrixDouble &FatPrismElementForcesAndSourcesCore::UserDataOperator::
 
  278    getHOCoordsAtGaussPtsF4() {
 
 
  284FatPrismElementForcesAndSourcesCore::UserDataOperator::getNormalsAtGaussPtsF3() {
 
 
  290FatPrismElementForcesAndSourcesCore::UserDataOperator::getNormalsAtGaussPtsF4() {
 
 
  295inline ublas::matrix_row<MatrixDouble>
 
  296FatPrismElementForcesAndSourcesCore::UserDataOperator::getNormalsAtGaussPtsF3(
 
  298  return ublas::matrix_row<MatrixDouble>(
 
 
  304inline ublas::matrix_row<MatrixDouble>
 
  305FatPrismElementForcesAndSourcesCore::UserDataOperator::getNormalsAtGaussPtsF4(
 
  307  return ublas::matrix_row<MatrixDouble>(
 
 
  313inline MatrixDouble &FatPrismElementForcesAndSourcesCore::UserDataOperator::
 
  314    getTangent1AtGaussPtF3() {
 
 
  319inline MatrixDouble &FatPrismElementForcesAndSourcesCore::UserDataOperator::
 
  320    getTangent2AtGaussPtF3() {
 
 
  325inline MatrixDouble &FatPrismElementForcesAndSourcesCore::UserDataOperator::
 
  326    getTangent1AtGaussPtF4() {
 
 
  331inline MatrixDouble &FatPrismElementForcesAndSourcesCore::UserDataOperator::
 
  332    getTangent2AtGaussPtF4() {
 
 
  338    UserDataOperator::getTrianglesOnlyDataStructure() {
 
 
  344    UserDataOperator::getTroughThicknessDataStructure() {
 
 
  350FatPrismElementForcesAndSourcesCore::UserDataOperator::getPrismFE() {
 
 
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
VectorShallowArrayAdaptor< double > VectorAdaptor
implementation of Data Operators for Forces and Sources
Deprecated interface functions.
data structure for finite element entity
default operator for Flat Prism element
MatrixDouble & getGaussPts()
get Gauss pts. in the prism
VectorAdaptor getNormalF4()
EntitiesFieldData & getTroughThicknessDataStructure()
EntitiesFieldData & getTrianglesOnlyDataStructure()
MatrixDouble & getCoordsAtGaussPtsTrianglesOnly()
get coordinates at Gauss pts.
MatrixDouble & getGaussPtsThroughThickness()
get Gauss pts. through thickness
VectorAdaptor getNormalF3()
MatrixDouble & getTangent2AtGaussPtF3()
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 & getTangent2AtGaussPtF4()
if higher order geometry return tangent vector to triangle at Gauss pts.
MoFEMErrorCode setPtrFE(ForcesAndSourcesCore *ptr)
MatrixDouble & getNormalsAtGaussPtsF4()
if higher order geometry return normals at face F4 at Gauss pts.
MatrixDouble & getNormalsAtGaussPtsF3()
if higher order geometry return normals at face F3 at Gauss pts.
MatrixDouble & getCoordsAtGaussPts()
get coordinates at Gauss pts.
MatrixDouble & getGaussPtsTrianglesOnly()
get Gauss pts. on triangles
const FatPrismElementForcesAndSourcesCore * getPrismFE()
return pointer to fat prism finite element
MatrixDouble & getHOCoordsAtGaussPtsF3()
coordinate at Gauss points on face 3 (if hierarchical approximation of element geometry)
MatrixDouble & getTangent1AtGaussPtF4()
if higher order geometry return tangent vector to triangle at Gauss pts.
VectorDouble & getNormal()
get triangle normal
MatrixDouble & getTangent1AtGaussPtF3()
if higher order geometry return tangent vector to triangle at Gauss pts.
double getArea(const int dd)
get face aRea
virtual int getRuleThroughThickness(int order)
MatrixDouble hoCoordsAtGaussPtsF3
MatrixDouble nOrmals_at_GaussPtF3
virtual MoFEMErrorCode setGaussPtsTrianglesOnly(int order_triangles_only)
virtual int getRuleTrianglesOnly(int order)
MatrixDouble tAngent2_at_GaussPtF3
EntitiesFieldData dataH1TrianglesOnly
MatrixDouble tAngent2_at_GaussPtF4
MatrixDouble tAngent1_at_GaussPtF3
OpGetCoordsAndNormalsOnPrism opHOCoordsAndNormals
MatrixDouble gaussPtsTrianglesOnly
virtual MoFEMErrorCode setGaussPtsThroughThickness(int order_thickness)
MatrixDouble hoCoordsAtGaussPtsF4
MatrixDouble gaussPtsThroughThickness
MoFEMErrorCode operator()()
Main operator function executed for each loop iteration.
MatrixDouble coordsAtGaussPtsTrianglesOnly
MatrixDouble nOrmals_at_GaussPtF4
MatrixDouble tAngent1_at_GaussPtF4
EntitiesFieldData dataH1TroughThickness
ForcesAndSourcesCore * ptrFE
structure to get information from mofem into EntitiesFieldData
MatrixDouble coordsAtGaussPts
coordinated at gauss points
MatrixDouble gaussPts
Matrix of integration points.
calculate normals at Gauss points of triangle element
Volume finite element base.