v0.14.0
Public Member Functions | List of all members
OpCalculateSideData Struct Reference

Operator tp collect data from elements on the side of Edge/Face. More...

Inheritance diagram for OpCalculateSideData:
[legend]
Collaboration diagram for OpCalculateSideData:
[legend]

Public Member Functions

 OpCalculateSideData (std::string field_name, std::string col_field_name)
 
MoFEMErrorCode doWork (int side, EntityType type, EntData &data)
 

Detailed Description

Operator tp collect data from elements on the side of Edge/Face.

Examples
plate.cpp, and PoissonDiscontinousGalerkin.hpp.

Definition at line 109 of file plate.cpp.

Constructor & Destructor Documentation

◆ OpCalculateSideData()

OpCalculateSideData::OpCalculateSideData ( std::string  field_name,
std::string  col_field_name 
)
Examples
plate.cpp.

Definition at line 429 of file plate.cpp.

431  : FaceSideOp(row_field_name, col_field_name, FaceSideOp::OPROW) {}

Member Function Documentation

◆ doWork()

MoFEMErrorCode OpCalculateSideData::doWork ( int  side,
EntityType  type,
EntData data 
)
Examples
plate.cpp.

Definition at line 433 of file plate.cpp.

434  {
436 
437  const auto nb_in_loop = getFEMethod()->nInTheLoop;
438 
439  auto clear = [](auto nb) {
440  indicesSideMap[nb].clear();
441  diffBaseSideMap[nb].clear();
442  diff2BaseSideMap[nb].clear();
443  };
444 
445  if (type == MBVERTEX) {
446  areaMap[nb_in_loop] = getMeasure();
447  senseMap[nb_in_loop] = getEdgeSense();
448  if (!nb_in_loop) {
449  clear(0);
450  clear(1);
451  areaMap[1] = 0;
452  senseMap[1] = 0;
453  }
454  }
455 
456  const auto nb_dofs = data.getIndices().size();
457  if (nb_dofs) {
458  indicesSideMap[nb_in_loop].push_back(data.getIndices());
459  diffBaseSideMap[nb_in_loop].push_back(
460  data.getN(BaseDerivatives::FirstDerivative));
461  diff2BaseSideMap[nb_in_loop].push_back(
462  data.getN(BaseDerivatives::SecondDerivative));
463  }
464 
466 }

The documentation for this struct was generated from the following file:
MoFEMFunctionReturnHot
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:460
senseMap
std::array< int, 2 > senseMap
Definition: plate.cpp:102
FaceSideOp
ElementsAndOps< SPACE_DIM >::FaceSideOp FaceSideOp
Definition: plate.cpp:37
diff2BaseSideMap
std::array< std::vector< MatrixDouble >, 2 > diff2BaseSideMap
Definition: plate.cpp:100
indicesSideMap
std::array< std::vector< VectorInt >, 2 > indicesSideMap
indices on rows for left hand-side
Definition: plate.cpp:96
convert.type
type
Definition: convert.py:64
MoFEM::EntitiesFieldData::EntData::getIndices
const VectorInt & getIndices() const
Get global indices of dofs on entity.
Definition: EntitiesFieldData.hpp:1214
areaMap
std::array< double, 2 > areaMap
Definition: plate.cpp:101
MoFEM::EntitiesFieldData::EntData::getN
MatrixDouble & getN(const FieldApproximationBase base)
get base functions this return matrix (nb. of rows is equal to nb. of Gauss pts, nb....
Definition: EntitiesFieldData.hpp:1318
diffBaseSideMap
std::array< std::vector< MatrixDouble >, 2 > diffBaseSideMap
Definition: plate.cpp:98
MoFEMFunctionBeginHot
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:453