744 {
746
747 const double vol = getMeasure();
748 auto t_grad_h = getFTensor1FromMat<SPACE_DIM>(*
gradHPtr);
749 auto t_coords = getFTensor1CoordsAtGaussPts();
750
751 auto t_row_base = row_data.getFTensor0N();
752 auto t_w = getFTensor0IntegrationWeight();
753
754 for (int gg = 0; gg != nbIntegrationPts; gg++) {
755
756 const double r = t_coords(0);
758
760 t_phase_force_dg(
i) = -alpha *
kappa * t_grad_h(
i);
761
762 int rr = 0;
764 auto t_mat =
765 getFTensor1FromMat<U_FIELD_DIM, 1>(locMat, rr *
U_FIELD_DIM);
766 auto t_col_base = col_data.getFTensor0N(gg, 0);
767
768 for (int cc = 0; cc != nbCols; ++cc) {
769 const double bb = t_row_base * t_col_base;
770 t_mat(
i) += t_phase_force_dg(
i) * bb;
771
772 ++t_mat;
773 ++t_col_base;
774 }
775
776 ++t_row_base;
777 }
778
779 for (; rr < nbRowBaseFunctions; ++rr) {
780 ++t_row_base;
781 }
782
783 ++t_grad_h;
784 ++t_coords;
785 ++t_w;
786 }
787
789 }
#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()
constexpr int U_FIELD_DIM
FTensor::Index< 'i', SPACE_DIM > i