80 if (
auto data_ptr =
dataPtr.lock()) {
82 decltype(data_ptr->nbEvalPoints) nbEvalPoints = data_ptr->nbEvalPoints;
83 decltype(data_ptr->verb) verb = data_ptr->verb;
85 decltype(data_ptr->shapeFunctions) &shapeFunctions =
86 data_ptr->shapeFunctions;
87 decltype(data_ptr->evalPointEntityHandle) &evalPointEntityHandle =
88 data_ptr->evalPointEntityHandle;
90 if (auto fe_ptr = data_ptr->feMethodPtr.lock()) {
96 gauss_pts.resize(4, nbEvalPoints,
false);
100 &shapeFunctions(0, 0), &shapeFunctions(0, 1), &shapeFunctions(0, 2),
101 &shapeFunctions(0, 3)};
103 &gauss_pts(0, 0), &gauss_pts(1, 0), &gauss_pts(2, 0)};
105 int nb_gauss_pts = 0;
106 for (
int nn = 0; nn != nbEvalPoints; ++nn) {
107 if (evalPointEntityHandle[nn] ==
108 fe.numeredEntFiniteElementPtr->getEnt()) {
109 for (
const int i : {0, 1, 2}) {
110 t_gauss_pts(
i) = t_shape(
i + 1);
111 gauss_pts(3, nb_gauss_pts) = nn;
120 std::cout <<
"nbEvalOPoints / nbGaussPts: " << nbEvalPoints <<
" / "
121 << nb_gauss_pts << std::endl;
122 gauss_pts.resize(4, nb_gauss_pts,
true);
125 std::cout <<
"gauss pts: " << gauss_pts << std::endl;
129 "Pointer to element does not exists");
133 "Pointer to data does not exists");
if(!static_cast< bool >(ifstream(param_file)))
#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()
VolumeElementForcesAndSourcesCoreSwitch< 0 > VolumeElementForcesAndSourcesCore
Volume finite element default.
FTensor::Index< 'i', 3 > i
ublas::matrix< double, ublas::row_major, DoubleAllocator > MatrixDouble