861 auto nb_rows = row_data.getIndices().size();
862 auto nb_cols = col_data.getIndices().size();
865 locMat.resize(nb_rows, nb_cols,
false);
868 if (nb_cols && nb_rows) {
870 const size_t nb_gauss_pts = OP::getGaussPts().size2();
872 auto t_w = OP::getFTensor0IntegrationWeight();
873 auto t_disp = getFTensor1FromMat<3>(
commonDataPtr->contactDisp);
874 auto t_traction = getFTensor1FromMat<3>(
commonDataPtr->contactTraction);
875 auto t_coords = OP::getFTensor1CoordsAtGaussPts();
876 auto t_material_normal = OP::getFTensor1NormalsAtGaussPts();
888 auto face_data_vec_ptr =
890 auto face_gauss_pts_it = face_data_vec_ptr->begin();
892 auto t_row_base = row_data.getFTensor1N<3>();
893 auto nb_face_functions = row_data.getN().size2() / 3;
894 for (
size_t gg = 0; gg != nb_gauss_pts; ++gg) {
896 const auto alpha = t_w / 2.;
899 for (; rr != nb_rows / 3; ++rr) {
901 auto row_base = alpha * (t_row_base(
i) * t_material_normal(
i));
903 auto t_mat = getFTensor2FromArray<3, 3, 3>(locMat, 3 * rr);
904 auto t_col_base = col_data.getFTensor0N(gg, 0);
906 for (
size_t cc = 0; cc != nb_cols / 3; ++cc) {
907 const auto beta = row_base * t_col_base;
915 for (; rr < nb_face_functions; ++rr)
922 locMat = trans(locMat);