548 {
550
551 const double vol = getMeasure();
552 auto t_grad_h = getFTensor1FromMat<SPACE_DIM>(*
gradHPtr);
553 auto t_coords = getFTensor1CoordsAtGaussPts();
554
555 auto t_row_base = row_data.getFTensor0N();
556 auto t_w = getFTensor0IntegrationWeight();
557
558 for (int gg = 0; gg != nbIntegrationPts; gg++) {
559
560 const double r = t_coords(0);
562
565
566 int rr = 0;
568 auto t_mat =
569 getFTensor1FromMat<U_FIELD_DIM, 1>(locMat, rr *
U_FIELD_DIM);
570 auto t_col_base = col_data.getFTensor0N(gg, 0);
571
572 for (int cc = 0; cc != nbCols; ++cc) {
573 const double bb = t_row_base * t_col_base;
574 t_mat(
i) += t_phase_force_dg(
i) * bb;
575
576 ++t_mat;
577 ++t_col_base;
578 }
579
580 ++t_row_base;
581 }
582
583 for (; rr < nbRowBaseFunctions; ++rr) {
584 ++t_row_base;
585 }
586
587 ++t_grad_h;
588 ++t_coords;
589 ++t_w;
590 }
591
593 }
#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
const double r
rate factor