924 auto ¶ms = commonDataPtr->blockParams;
926 const size_t nb_gauss_pts = DomainEleOp::getGaussPts().size2();
927 auto t_w = DomainEleOp::getFTensor0IntegrationWeight();
928 auto t_tau = getFTensor0FromVec(commonDataPtr->plasticTau);
929 auto t_tau_dot = getFTensor0FromVec(commonDataPtr->plasticTauDot);
930 auto t_f = getFTensor0FromVec(commonDataPtr->plasticSurface);
931 auto t_flow = getFTensor2SymmetricFromMat<DIM>(commonDataPtr->plasticFlow);
932 auto t_plastic_strain =
933 getFTensor2SymmetricFromMat<DIM>(commonDataPtr->plasticStrain);
935 getFTensor2SymmetricFromMat<DIM>(*(commonDataPtr->mStressPtr));
937 auto t_D = getFTensor4DdgFromMat<DIM, DIM, 0>(*commonDataPtr->mDPtr);
938 auto t_D_Op = getFTensor4DdgFromMat<DIM, DIM, 0>(*mDPtr);
940 auto t_temp = getFTensor0FromVec(TPCommonDataPtr->temperature);
947 t_flow_dir_dstress(
i,
j,
k,
l) =
948 1.5 * (t_diff_deviator(
M,
N,
i,
j) * t_diff_deviator(
M,
N,
k,
l));
949 t_flow_dir_dstrain(
i,
j,
k,
l) =
950 t_flow_dir_dstress(
i,
j,
m,
n) * t_D_Op(
m,
n,
k,
l);
955 commonDataPtr->resC.resize(nb_gauss_pts,
false);
956 commonDataPtr->resCdTau.resize(nb_gauss_pts,
false);
957 commonDataPtr->resCdStrain.resize(
size_symm, nb_gauss_pts,
false);
958 commonDataPtr->resCdPlasticStrain.resize(
size_symm, nb_gauss_pts,
false);
959 TPCommonDataPtr->resCdTemperature.resize(nb_gauss_pts,
false);
960 commonDataPtr->resFlow.resize(
size_symm, nb_gauss_pts,
false);
961 commonDataPtr->resFlowDtau.resize(
size_symm, nb_gauss_pts,
false);
966 TPCommonDataPtr->resFlowDtemp.resize(
size_symm, nb_gauss_pts,
false);
968 commonDataPtr->resC.clear();
969 commonDataPtr->resCdTau.clear();
970 commonDataPtr->resCdStrain.clear();
971 commonDataPtr->resCdPlasticStrain.clear();
972 TPCommonDataPtr->resCdTemperature.clear();
973 commonDataPtr->resFlow.clear();
974 commonDataPtr->resFlowDtau.clear();
975 commonDataPtr->resFlowDstrain.clear();
976 commonDataPtr->resFlowDstrainDot.clear();
977 TPCommonDataPtr->resFlowDtemp.clear();
979 auto t_res_c = getFTensor0FromVec(commonDataPtr->resC);
980 auto t_res_c_dtau = getFTensor0FromVec(commonDataPtr->resCdTau);
981 auto t_res_c_dstrain =
982 getFTensor2SymmetricFromMat<DIM>(commonDataPtr->resCdStrain);
983 auto t_res_c_plastic_strain =
984 getFTensor2SymmetricFromMat<DIM>(commonDataPtr->resCdPlasticStrain);
985 auto t_res_c_temperature =
986 getFTensor0FromVec(TPCommonDataPtr->resCdTemperature);
987 auto t_res_flow = getFTensor2SymmetricFromMat<DIM>(commonDataPtr->resFlow);
988 auto t_res_flow_dtau =
989 getFTensor2SymmetricFromMat<DIM>(commonDataPtr->resFlowDtau);
990 auto t_res_flow_dstrain =
991 getFTensor4DdgFromMat<DIM, DIM>(commonDataPtr->resFlowDstrain);
992 auto t_res_flow_dplastic_strain =
993 getFTensor4DdgFromMat<DIM, DIM>(commonDataPtr->resFlowDstrainDot);
994 auto t_res_flow_dtemp =
995 getFTensor2SymmetricFromMat<DIM>(TPCommonDataPtr->resFlowDtemp);
1007 ++t_res_c_plastic_strain;
1008 ++t_res_c_temperature;
1011 ++t_res_flow_dstrain;
1012 ++t_res_flow_dplastic_strain;
1018 auto get_avtive_pts = [&]() {
1019 int nb_points_avtive_on_elem = 0;
1020 int nb_points_on_elem = 0;
1022 auto t_tau = getFTensor0FromVec(commonDataPtr->plasticTau);
1023 auto t_tau_dot = getFTensor0FromVec(commonDataPtr->plasticTauDot);
1024 auto t_f = getFTensor0FromVec(commonDataPtr->plasticSurface);
1025 auto t_plastic_strain_dot =
1026 getFTensor2SymmetricFromMat<SPACE_DIM>(commonDataPtr->plasticStrainDot);
1027 auto t_temp = getFTensor0FromVec(TPCommonDataPtr->temperature);
1029 auto dt = this->getTStimeStep();
1031 for (
auto gg = 0; gg != nb_gauss_pts; ++gg) {
1034 w(eqiv, t_tau_dot, t_f,
1038 TPCommonDataPtr->temp0, t_temp),
1042 ++nb_points_on_elem;
1044 ++nb_points_avtive_on_elem;
1050 ++t_plastic_strain_dot;
1061 nb_points += nb_points_on_elem;
1062 if (nb_points_avtive_on_elem > 0) {
1064 active_points += nb_points_avtive_on_elem;
1065 if (nb_points_avtive_on_elem == nb_points_on_elem) {
1066 ++avtive_full_elems;
1070 if (nb_points_avtive_on_elem != nb_points_on_elem)
1076 if (DomainEleOp::getTSCtx() == TSMethod::TSContext::CTX_TSSETIJACOBIAN) {
1080 for (
auto gg = 0; gg != nb_gauss_pts; ++gg) {
1085 const auto sigma_y =
1089 TPCommonDataPtr->temp0, t_temp);
1094 TPCommonDataPtr->temp0, t_temp);
1096 double c_dot_tau, c_sigma_y,
c, c_f, c_temperature, c_equiv;
1099 t_diff_eqiv(
i,
j) = 0.0;
1110 TPCommonDataPtr->temp0, t_temp);
1114 t_stress,
trace(t_stress),
1126template <
int DIM,
typename DomainEleOp>
1133 boost::shared_ptr<CommonData> common_data_ptr,
1134 boost::shared_ptr<MatrixDouble> mDPtr);
1136 boost::shared_ptr<MatrixDouble> mDPtr);
1141 boost::shared_ptr<MatrixDouble> mDPtr;
1142 boost::shared_ptr<CommonData> commonDataPtr;
1145template <
int DIM,
typename DomainEleOp>
1147 const std::string
field_name, boost::shared_ptr<CommonData> common_data_ptr,
1148 boost::shared_ptr<MatrixDouble> m_D_ptr)
1150 commonDataPtr(common_data_ptr), mDPtr(m_D_ptr) {
1152 std::fill(&DomainEleOp::doEntities[MBEDGE],
1153 &DomainEleOp::doEntities[MBMAXTYPE],
false);
1156template <
int DIM,
typename DomainEleOp>
1157OpPlasticStressImpl<DIM, GAUSS, DomainEleOp>::OpPlasticStressImpl(
1158 boost::shared_ptr<CommonData> common_data_ptr,
1159 boost::shared_ptr<MatrixDouble> m_D_ptr)
1161 commonDataPtr(common_data_ptr), mDPtr(m_D_ptr) {}
1164template <
int DIM,
typename DomainEleOp>
1166OpPlasticStressImpl<DIM, GAUSS, DomainEleOp>::doWork(
int side, EntityType type,
1175 const size_t nb_gauss_pts = commonDataPtr->mStrainPtr->size2();
1176 commonDataPtr->mStressPtr->resize((DIM * (DIM + 1)) / 2, nb_gauss_pts);
1177 auto t_D = getFTensor4DdgFromMat<DIM, DIM, 0>(*mDPtr);
1179 getFTensor2SymmetricFromMat<DIM>(*(commonDataPtr->mStrainPtr));
1180 auto t_plastic_strain =
1181 getFTensor2SymmetricFromMat<DIM>(commonDataPtr->plasticStrain);
1183 getFTensor2SymmetricFromMat<DIM>(*(commonDataPtr->mStressPtr));
1185 for (
size_t gg = 0; gg != nb_gauss_pts; ++gg) {
1187 t_D(
i,
j,
k,
l) * (t_strain(
k,
l) - t_plastic_strain(
k,
l));
1197template <
int DIM,
typename AssemblyDomainEleOp>
1201 boost::shared_ptr<CommonData> common_data_ptr,
1202 boost::shared_ptr<MatrixDouble> m_D_ptr);
1206 boost::shared_ptr<CommonData> commonDataPtr;
1207 boost::shared_ptr<MatrixDouble> mDPtr;
1210template <
int DIM,
typename AssemblyDomainEleOp>
1213 boost::shared_ptr<CommonData> common_data_ptr,
1214 boost::shared_ptr<MatrixDouble> m_D_ptr)
1216 commonDataPtr(common_data_ptr), mDPtr(m_D_ptr) {}
1218template <
int DIM,
typename AssemblyDomainEleOp>
1220OpCalculatePlasticFlowRhsImpl<DIM, GAUSS, AssemblyDomainEleOp>::iNtegrate(
1221 EntitiesFieldData::EntData &data) {
1228 constexpr auto size_symm = (DIM * (DIM + 1)) / 2;
1231 const auto nb_integration_pts = AssemblyDomainEleOp::getGaussPts().size2();
1232 const auto nb_base_functions = data.getN().size2();
1234 auto t_res_flow = getFTensor2SymmetricFromMat<DIM>(commonDataPtr->resFlow);
1238 auto next = [&]() { ++t_res_flow; };
1240 auto t_w = AssemblyDomainEleOp::getFTensor0IntegrationWeight();
1241 auto t_base = data.getFTensor0N();
1242 auto &nf = AssemblyDomainEleOp::locF;
1243 for (
size_t gg = 0; gg != nb_integration_pts; ++gg) {
1244 double alpha = AssemblyDomainEleOp::getMeasure() * t_w;
1248 t_rhs(L) = alpha * (t_res_flow(
i,
j) * t_L(
i,
j, L));
1251 auto t_nf = getFTensor1FromArray<size_symm, size_symm>(nf);
1253 for (; bb != AssemblyDomainEleOp::nbRows /
size_symm; ++bb) {
1254 t_nf(L) += t_base * t_rhs(L);
1258 for (; bb < nb_base_functions; ++bb)
1265template <
typename AssemblyDomainEleOp>
1269 boost::shared_ptr<CommonData> common_data_ptr,
1270 boost::shared_ptr<MatrixDouble> m_D_ptr);
1275 boost::shared_ptr<MatrixDouble> mDPtr;
1278template <
typename AssemblyDomainEleOp>
1281 boost::shared_ptr<CommonData> common_data_ptr,
1282 boost::shared_ptr<MatrixDouble> m_D_ptr)
1284 commonDataPtr(common_data_ptr), mDPtr(m_D_ptr) {}
1286template <
typename AssemblyDomainEleOp>
1289 EntitiesFieldData::EntData &data) {
1292 const size_t nb_integration_pts = AssemblyDomainEleOp::getGaussPts().size2();
1293 const size_t nb_base_functions = data.getN().size2();
1295 auto t_res_c = getFTensor0FromVec(commonDataPtr->resC);
1297 auto next = [&]() { ++t_res_c; };
1299 auto t_w = AssemblyDomainEleOp::getFTensor0IntegrationWeight();
1300 auto &nf = AssemblyDomainEleOp::locF;
1301 auto t_base = data.getFTensor0N();
1302 for (
size_t gg = 0; gg != nb_integration_pts; ++gg) {
1303 const double alpha = AssemblyDomainEleOp::getMeasure() * t_w;
1305 const auto res = alpha * t_res_c;
1309 for (; bb != AssemblyDomainEleOp::nbRows; ++bb) {
1310 nf[bb] += t_base * res;
1313 for (; bb < nb_base_functions; ++bb)
1320template <
int DIM,
typename AssemblyDomainEleOp>
1324 const std::string row_field_name,
const std::string col_field_name,
1325 boost::shared_ptr<CommonData> common_data_ptr,
1326 boost::shared_ptr<MatrixDouble> m_D_ptr);
1327 MoFEMErrorCode
iNtegrate(EntitiesFieldData::EntData &row_data,
1328 EntitiesFieldData::EntData &col_data);
1331 boost::shared_ptr<CommonData> commonDataPtr;
1332 boost::shared_ptr<MatrixDouble> mDPtr;
1335template <
int DIM,
typename AssemblyDomainEleOp>
1338 const std::string row_field_name,
const std::string col_field_name,
1339 boost::shared_ptr<CommonData> common_data_ptr,
1340 boost::shared_ptr<MatrixDouble> m_D_ptr)
1343 commonDataPtr(common_data_ptr), mDPtr(m_D_ptr) {
1344 AssemblyDomainEleOp::sYmm =
false;
1350 &mat(3 * rr + 0, 0), &mat(3 * rr + 0, 1), &mat(3 * rr + 0, 2),
1351 &mat(3 * rr + 1, 0), &mat(3 * rr + 1, 1), &mat(3 * rr + 1, 2),
1352 &mat(3 * rr + 2, 0), &mat(3 * rr + 2, 1), &mat(3 * rr + 2, 2)};
1358 &mat(6 * rr + 0, 0), &mat(6 * rr + 0, 1), &mat(6 * rr + 0, 2),
1359 &mat(6 * rr + 0, 3), &mat(6 * rr + 0, 4), &mat(6 * rr + 0, 5),
1360 &mat(6 * rr + 1, 0), &mat(6 * rr + 1, 1), &mat(6 * rr + 1, 2),
1361 &mat(6 * rr + 1, 3), &mat(6 * rr + 1, 4), &mat(6 * rr + 1, 5),
1362 &mat(6 * rr + 2, 0), &mat(6 * rr + 2, 1), &mat(6 * rr + 2, 2),
1363 &mat(6 * rr + 2, 3), &mat(6 * rr + 2, 4), &mat(6 * rr + 2, 5),
1364 &mat(6 * rr + 3, 0), &mat(6 * rr + 3, 1), &mat(6 * rr + 3, 2),
1365 &mat(6 * rr + 3, 3), &mat(6 * rr + 3, 4), &mat(6 * rr + 3, 5),
1366 &mat(6 * rr + 4, 0), &mat(6 * rr + 4, 1), &mat(6 * rr + 4, 2),
1367 &mat(6 * rr + 4, 3), &mat(6 * rr + 4, 4), &mat(6 * rr + 4, 5),
1368 &mat(6 * rr + 5, 0), &mat(6 * rr + 5, 1), &mat(6 * rr + 5, 2),
1369 &mat(6 * rr + 5, 3), &mat(6 * rr + 5, 4), &mat(6 * rr + 5, 5)};
1372template <
int DIM,
typename AssemblyDomainEleOp>
1374OpCalculatePlasticFlowLhs_dEPImpl<DIM, GAUSS, AssemblyDomainEleOp>::iNtegrate(
1375 EntitiesFieldData::EntData &row_data,
1376 EntitiesFieldData::EntData &col_data) {
1383 constexpr auto size_symm = (DIM * (DIM + 1)) / 2;
1387 auto &locMat = AssemblyDomainEleOp::locMat;
1389 const auto nb_integration_pts = AssemblyDomainEleOp::getGaussPts().size2();
1390 const auto nb_row_base_functions = row_data.getN().size2();
1392 auto t_res_flow_dstrain =
1393 getFTensor4DdgFromMat<DIM, DIM>(commonDataPtr->resFlowDstrain);
1394 auto t_res_flow_dplastic_strain =
1395 getFTensor4DdgFromMat<DIM, DIM>(commonDataPtr->resFlowDstrainDot);
1399 ++t_res_flow_dstrain;
1400 ++t_res_flow_dplastic_strain;
1403 auto t_w = AssemblyDomainEleOp::getFTensor0IntegrationWeight();
1404 auto t_row_base = row_data.getFTensor0N();
1405 for (
size_t gg = 0; gg != nb_integration_pts; ++gg) {
1406 double alpha = AssemblyDomainEleOp::getMeasure() * t_w;
1411 alpha * (t_L(
i,
j, O) * ((t_res_flow_dplastic_strain(
i,
j,
k,
l) -
1412 t_res_flow_dstrain(
i,
j,
k,
l)) *
1417 for (; rr != AssemblyDomainEleOp::nbRows /
size_symm; ++rr) {
1420 auto t_col_base = col_data.getFTensor0N(gg, 0);
1421 for (
size_t cc = 0; cc != AssemblyDomainEleOp::nbCols /
size_symm; ++cc) {
1422 t_mat(O, L) += ((t_row_base * t_col_base) * t_res_mat(O, L));
1430 for (; rr < nb_row_base_functions; ++rr)
1437template <
int DIM,
typename AssemblyDomainEleOp>
1441 const std::string row_field_name,
const std::string col_field_name,
1442 boost::shared_ptr<CommonData> common_data_ptr,
1443 boost::shared_ptr<MatrixDouble> m_D_ptr);
1444 MoFEMErrorCode
iNtegrate(EntitiesFieldData::EntData &row_data,
1445 EntitiesFieldData::EntData &col_data);
1448 boost::shared_ptr<CommonData> commonDataPtr;
1449 boost::shared_ptr<MatrixDouble> mDPtr;
1452template <
int DIM,
typename AssemblyDomainEleOp>
1456 const std::string row_field_name,
const std::string col_field_name,
1457 boost::shared_ptr<CommonData> common_data_ptr,
1458 boost::shared_ptr<MatrixDouble> m_D_ptr);
1459 MoFEMErrorCode
iNtegrate(EntitiesFieldData::EntData &row_data,
1460 EntitiesFieldData::EntData &col_data);
1463 boost::shared_ptr<CommonData> commonDataPtr;
1464 boost::shared_ptr<MatrixDouble> mDPtr;
1467template <
int DIM,
typename AssemblyDomainEleOp>
1470 const std::string row_field_name,
const std::string col_field_name,
1471 boost::shared_ptr<CommonData> common_data_ptr,
1472 boost::shared_ptr<MatrixDouble> m_D_ptr)
1475 commonDataPtr(common_data_ptr), mDPtr(m_D_ptr) {
1476 AssemblyDomainEleOp::sYmm =
false;
1482 &mat(3 * rr + 0, 0), &mat(3 * rr + 1, 0), &mat(3 * rr + 2, 0)};
1488 &mat(6 * rr + 0, 0), &mat(6 * rr + 1, 0), &mat(6 * rr + 2, 0),
1489 &mat(6 * rr + 3, 0), &mat(6 * rr + 4, 0), &mat(6 * rr + 5, 0)};
1492template <
int DIM,
typename AssemblyDomainEleOp>
1494OpCalculatePlasticFlowLhs_dTAUImpl<DIM, GAUSS, AssemblyDomainEleOp>::iNtegrate(
1495 EntitiesFieldData::EntData &row_data,
1496 EntitiesFieldData::EntData &col_data) {
1501 constexpr auto size_symm = (DIM * (DIM + 1)) / 2;
1504 const auto nb_integration_pts = AssemblyDomainEleOp::getGaussPts().size2();
1505 const size_t nb_row_base_functions = row_data.getN().size2();
1506 auto &locMat = AssemblyDomainEleOp::locMat;
1508 auto t_res_flow_dtau =
1509 getFTensor2SymmetricFromMat<DIM>(commonDataPtr->resFlowDtau);
1513 auto next = [&]() { ++t_res_flow_dtau; };
1515 auto t_w = AssemblyDomainEleOp::getFTensor0IntegrationWeight();
1516 auto t_row_base = row_data.getFTensor0N();
1517 for (
size_t gg = 0; gg != nb_integration_pts; ++gg) {
1518 double alpha = AssemblyDomainEleOp::getMeasure() * t_w;
1521 t_res_vec(L) = alpha * (t_res_flow_dtau(
i,
j) * t_L(
i,
j, L));
1525 for (; rr != AssemblyDomainEleOp::nbRows /
size_symm; ++rr) {
1528 auto t_col_base = col_data.getFTensor0N(gg, 0);
1529 for (
size_t cc = 0; cc != AssemblyDomainEleOp::nbCols; cc++) {
1530 t_mat(L) += t_row_base * t_col_base * t_res_vec(L);
1536 for (; rr != nb_row_base_functions; ++rr)
1543template <
int DIM,
typename AssemblyDomainEleOp>
1547 const std::string row_field_name,
const std::string col_field_name,
1548 boost::shared_ptr<CommonData> common_data_ptr,
1549 boost::shared_ptr<MatrixDouble> mat_D_ptr);
1550 MoFEMErrorCode
iNtegrate(EntitiesFieldData::EntData &row_data,
1551 EntitiesFieldData::EntData &col_data);
1554 boost::shared_ptr<CommonData> commonDataPtr;
1555 boost::shared_ptr<MatrixDouble> mDPtr;
1558template <
int DIM,
typename AssemblyDomainEleOp>
1561 const std::string row_field_name,
const std::string col_field_name,
1562 boost::shared_ptr<CommonData> common_data_ptr,
1563 boost::shared_ptr<MatrixDouble> m_D_ptr)
1566 commonDataPtr(common_data_ptr), mDPtr(m_D_ptr) {
1567 AssemblyDomainEleOp::sYmm =
false;
1572 &mat(0, 0), &mat(0, 1), &mat(0, 2)};
1577 &mat(0, 0), &mat(0, 1), &mat(0, 2), &mat(0, 3), &mat(0, 4), &mat(0, 5)};
1580template <
int DIM,
typename AssemblyDomainEleOp>
1582OpCalculateConstraintsLhs_dEPImpl<DIM, GAUSS, AssemblyDomainEleOp>::iNtegrate(
1583 EntitiesFieldData::EntData &row_data,
1584 EntitiesFieldData::EntData &col_data) {
1589 constexpr auto size_symm = (DIM * (DIM + 1)) / 2;
1592 const auto nb_integration_pts = AssemblyDomainEleOp::getGaussPts().size2();
1593 const auto nb_row_base_functions = row_data.getN().size2();
1596 getFTensor2SymmetricFromMat<SPACE_DIM>(commonDataPtr->resCdStrain);
1597 auto t_c_dplastic_strain =
1598 getFTensor2SymmetricFromMat<SPACE_DIM>(commonDataPtr->resCdPlasticStrain);
1602 ++t_c_dplastic_strain;
1607 auto t_w = AssemblyDomainEleOp::getFTensor0IntegrationWeight();
1608 auto t_row_base = row_data.getFTensor0N();
1609 for (
auto gg = 0; gg != nb_integration_pts; ++gg) {
1610 const double alpha = AssemblyDomainEleOp::getMeasure() * t_w;
1615 t_L(
i,
j, L) * (t_c_dplastic_strain(
i,
j) - t_c_dstrain(
i,
j));
1621 for (; rr != AssemblyDomainEleOp::nbRows; ++rr) {
1622 const auto row_base = alpha * t_row_base;
1623 auto t_col_base = col_data.getFTensor0N(gg, 0);
1624 for (
size_t cc = 0; cc != AssemblyDomainEleOp::nbCols /
size_symm; cc++) {
1625 t_mat(L) += (row_base * t_col_base) * t_res_vec(L);
1631 for (; rr != nb_row_base_functions; ++rr)
1638template <
typename AssemblyDomainEleOp>
1642 const std::string row_field_name,
const std::string col_field_name,
1643 boost::shared_ptr<CommonData> common_data_ptr);
1644 MoFEMErrorCode
iNtegrate(EntitiesFieldData::EntData &row_data,
1645 EntitiesFieldData::EntData &col_data);
1648 boost::shared_ptr<CommonData> commonDataPtr;
1651template <
typename AssemblyDomainEleOp>
1654 const std::string row_field_name,
const std::string col_field_name,
1655 boost::shared_ptr<CommonData> common_data_ptr)
1658 commonDataPtr(common_data_ptr) {
1659 AssemblyDomainEleOp::sYmm =
false;
1662template <
typename AssemblyDomainEleOp>
1664OpCalculateConstraintsLhs_dTAUImpl<GAUSS, AssemblyDomainEleOp>::iNtegrate(
1665 EntitiesFieldData::EntData &row_data,
1666 EntitiesFieldData::EntData &col_data) {
1669 const auto nb_integration_pts = AssemblyDomainEleOp::getGaussPts().size2();
1670 const auto nb_row_base_functions = row_data.getN().size2();
1672 auto t_res_c_dtau = getFTensor0FromVec(commonDataPtr->resCdTau);
1673 auto next = [&]() { ++t_res_c_dtau; };
1675 auto t_w = AssemblyDomainEleOp::getFTensor0IntegrationWeight();
1676 auto t_row_base = row_data.getFTensor0N();
1677 for (
size_t gg = 0; gg != nb_integration_pts; ++gg) {
1678 const double alpha = AssemblyDomainEleOp::getMeasure() * t_w;
1681 const auto res = alpha * (t_res_c_dtau);
1684 auto mat_ptr = AssemblyDomainEleOp::locMat.data().begin();
1686 for (; rr != AssemblyDomainEleOp::nbRows; ++rr) {
1687 auto t_col_base = col_data.getFTensor0N(gg, 0);
1688 for (
size_t cc = 0; cc != AssemblyDomainEleOp::nbCols; ++cc) {
1689 *mat_ptr += t_row_base * t_col_base * res;
1695 for (; rr < nb_row_base_functions; ++rr)