1097 {
1099
1100 const double vol = getMeasure();
1101 auto t_grad_h = getFTensor1FromMat<SPACE_DIM>(*
gradHPtr);
1102 auto t_coords = getFTensor1CoordsAtGaussPts();
1103
1104 auto t_row_base = row_data.getFTensor0N();
1105 auto t_w = getFTensor0IntegrationWeight();
1106
1107 for (int gg = 0; gg != nbIntegrationPts; gg++) {
1108
1109 const auto r = t_coords(0);
1111 auto t_mat = getFTensor1FromPtr<U_FIELD_DIM>(&locMat(0, 0));
1113
1114 int rr = 0;
1115 for (; rr != nbRows; ++rr) {
1116 t_row(
i) = (alpha * t_row_base) * t_grad_h(
i);
1117 auto t_col_base = col_data.getFTensor0N(gg, 0);
1118 for (
int cc = 0; cc != nbCols /
U_FIELD_DIM; ++cc) {
1119 t_mat(
i) += t_row(
i) * t_col_base;
1120 ++t_mat;
1121 ++t_col_base;
1122 }
1123 ++t_row_base;
1124 }
1125
1126 for (; rr < nbRowBaseFunctions; ++rr)
1127 ++t_row_base;
1128
1129 ++t_grad_h;
1130 ++t_w;
1131 ++t_coords;
1132 }
1133
1135 }
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
auto cylindrical
[cylindrical]
constexpr int U_FIELD_DIM
FTensor::Index< 'i', SPACE_DIM > i