130                                        {
  132 
  137 
  138  auto t_w = this->getFTensor0IntegrationWeight();
  139 
  140  auto t_row_base = row_data.getFTensor1N<3>();
  141 
  146 
  148 
  149  auto t_grad = getFTensor2FromMat<DIM, DIM>(*(
matGradPtr));
 
  150 
  151  
  152  auto t_coords = AssemblyDomainEleOp::getFTensor1CoordsAtGaussPts();
  153 
  154  for (size_t gg = 0; gg != AssemblyDomainEleOp::nbIntegrationPts; ++gg) {
  155 
  157    auto t_J = determinantTensor(t_F);     
  158 
  159    t_right_Cauchy_Green(M, L) =
  162 
  163    const double alpha = this->getMeasure() * t_w;
  164 
  165    t_Kinv_over_J(M, L) =
  167         t_J) *
  168        t_right_Cauchy_Green(M, L);
  169 
  170    size_t rr = 0;
  171    for (; rr != AssemblyDomainEleOp::nbRows; ++rr) {
  172      t_Kinv_over_J_row_base(L) = t_Kinv_over_J(M, L) * t_row_base(M);
  173      auto t_col_base = col_data.getFTensor1N<3>(gg, 0);
  174      for (size_t cc = 0; cc != AssemblyDomainEleOp::nbCols; ++cc) {
  175        this->locMat(rr, cc) += t_Kinv_over_J_row_base(L) * t_col_base(L);
  176        ++t_col_base;
  177      }
  178      ++t_row_base;
  179    }
  180    for (; rr < AssemblyDomainEleOp::nbRowBaseFunctions; ++rr)
  181      ++t_row_base;
  182 
  183    ++t_w; 
  184    ++t_coords;
  185    ++t_grad;
  186  }
  187 
  189}
#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()
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'J', DIM1 > J
FTensor::Index< 'M', 3 > M