1092 {
1094
1095 auto get_body_id = [&](auto fe_ent) {
1097 if (
m.second.find(fe_ent) !=
m.second.end()) {
1099 }
1100 }
1101 return -1;
1102 };
1103
1106
1107 auto fe_ent = getNumeredEntFiniteElementPtr()->getEnt();
1109 auto body_id = get_body_id(fe_ent);
1111
1113 post_proc_ents, &fe_id);
1115 post_proc_ents, &body_id);
1116
1117 auto nb_gauss_pts = getGaussPts().size2();
1118 auto t_u_h1 = getFTensor1FromMat<3>(*
uH1Ptr);
1119 auto t_u_l2 = getFTensor1FromMat<3>(
commonDataPtr->contactDisp);
1120 auto t_coords = getFTensor1CoordsAtGaussPts();
1121
1122 MatrixDouble x_h1(nb_gauss_pts, 3);
1123 auto t_x_h1 = getFTensor1FromPtr<3>(&x_h1(0, 0));
1124 MatrixDouble x_l2(nb_gauss_pts, 3);
1125 auto t_x_l2 = getFTensor1FromPtr<3>(&x_l2(0, 0));
1126 MatrixDouble tractions = trans(
commonDataPtr->contactTraction);
1127 MatrixDouble coords = getCoordsAtGaussPts();
1128
1130
1131
1132 for (auto gg = 0; gg != nb_gauss_pts; ++gg) {
1133 t_x_h1(
i) = t_coords(
i) + t_u_h1(
i);
1134 t_x_l2(
i) = t_coords(
i) + t_u_l2(
i);
1135
1136 ++t_coords;
1137 ++t_u_h1;
1138 ++t_u_l2;
1139 ++t_x_h1;
1140 ++t_x_l2;
1141 }
1142
1143 CHKERR moab_post_proc_mesh.set_coords(
1144 &*map_gauss_pts.begin(), map_gauss_pts.size(), &*x_h1.data().begin());
1145 CHKERR moab_post_proc_mesh.tag_set_data(
1146 contactTreePtr->thSmallX, &*map_gauss_pts.begin(), map_gauss_pts.size(),
1147 &*x_h1.data().begin());
1148 CHKERR moab_post_proc_mesh.tag_set_data(
1149 contactTreePtr->thLargeX, &*map_gauss_pts.begin(), map_gauss_pts.size(),
1150 &*coords.data().begin());
1151 CHKERR moab_post_proc_mesh.tag_set_data(
1152 contactTreePtr->thTraction, &*map_gauss_pts.begin(), map_gauss_pts.size(),
1153 &*tractions.data().begin());
1154
1156}
#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()
#define CHKERR
Inline error check.
FTensor::Index< 'i', SPACE_DIM > i
auto id_from_handle(const EntityHandle h)
FTensor::Index< 'm', 3 > m