44 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(3, 3);
58 for (
unsigned i = 0;
i < 19;
i++)
197 for (
unsigned e = 0;
e < 4;
e++)
200 for (
unsigned j = 0;
j < 8;
j++)
219 <<
"BrickFromTetMesh can only built from tet mesh containing\n"
220 <<
"ten-noded tets.\n";
249 for (
unsigned j = 0;
j < 8;
j++)
289 s_tet[0] = 1.0 / 3.0;
290 s_tet[1] = 1.0 / 3.0;
313 s_tet[0] = 1.0 / 3.0;
314 s_tet[1] = 1.0 / 3.0;
315 s_tet[2] = 1.0 / 3.0;
327 s_tet[0] = 1.0 / 3.0;
329 s_tet[2] = 1.0 / 3.0;
409 el_pt->local_coordinate_of_node(
j,
s);
446 el_pt->local_coordinate_of_node(
j,
s);
483 el_pt->local_coordinate_of_node(
j,
s);
520 el_pt->local_coordinate_of_node(
j,
s);
544 if (
face0.is_boundary_face())
557 el_pt->local_coordinate_of_node(
j,
s);
581 if (
face1.is_boundary_face())
594 el_pt->local_coordinate_of_node(
j,
s);
618 if (
face2.is_boundary_face())
631 el_pt->local_coordinate_of_node(
j,
s);
658 el_pt->local_coordinate_of_node(
j,
s);
678 el_pt->local_coordinate_of_node(
j,
s);
697 if (
edge.is_boundary_edge())
710 el_pt->local_coordinate_of_node(
j,
s);
734 if (
edge.is_boundary_edge())
747 el_pt->local_coordinate_of_node(
j,
s);
771 if (
edge.is_boundary_edge())
784 el_pt->local_coordinate_of_node(
j,
s);
808 if (
edge.is_boundary_edge())
821 el_pt->local_coordinate_of_node(
j,
s);
845 if (
edge.is_boundary_edge())
858 el_pt->local_coordinate_of_node(
j,
s);
882 if (
edge.is_boundary_edge())
895 el_pt->local_coordinate_of_node(
j,
s);
919 if (
edge.is_boundary_edge())
932 el_pt->local_coordinate_of_node(
j,
s);
956 if (
edge.is_boundary_edge())
969 el_pt->local_coordinate_of_node(
j,
s);
993 if (
edge.is_boundary_edge())
1006 el_pt->local_coordinate_of_node(
j,
s);
1030 if (
edge.is_boundary_edge())
1043 el_pt->local_coordinate_of_node(
j,
s);
1067 if (
edge.is_boundary_edge())
1080 el_pt->local_coordinate_of_node(
j,
s);
1104 if (
edge.is_boundary_edge())
1117 el_pt->local_coordinate_of_node(
j,
s);
1145 if (
face.is_boundary_face())
1158 el_pt->local_coordinate_of_node(
j,
s);
1186 if (
face.is_boundary_face())
1199 el_pt->local_coordinate_of_node(
j,
s);
1227 if (
face.is_boundary_face())
1240 el_pt->local_coordinate_of_node(
j,
s);
1262 el_pt->local_coordinate_of_node(
j,
s);
1279 el_pt->local_coordinate_of_node(
j,
s);
1296 el_pt->local_coordinate_of_node(
j,
s);
1310 for (
unsigned j = 0;
j < 8;
j++)
1350 s_tet[0] = 1.0 / 3.0;
1351 s_tet[1] = 1.0 / 3.0;
1375 s_tet[1] = 1.0 / 3.0;
1376 s_tet[2] = 1.0 / 3.0;
1388 s_tet[0] = 1.0 / 3.0;
1389 s_tet[1] = 1.0 / 3.0;
1390 s_tet[2] = 1.0 / 3.0;
1470 el_pt->local_coordinate_of_node(
j,
s);
1507 el_pt->local_coordinate_of_node(
j,
s);
1544 el_pt->local_coordinate_of_node(
j,
s);
1581 el_pt->local_coordinate_of_node(
j,
s);
1604 if (
face0.is_boundary_face())
1617 el_pt->local_coordinate_of_node(
j,
s);
1640 if (
face1.is_boundary_face())
1653 el_pt->local_coordinate_of_node(
j,
s);
1676 if (
face2.is_boundary_face())
1689 el_pt->local_coordinate_of_node(
j,
s);
1723 el_pt->local_coordinate_of_node(
j,
s);
1742 if (
edge.is_boundary_edge())
1755 el_pt->local_coordinate_of_node(
j,
s);
1779 if (
edge.is_boundary_edge())
1792 el_pt->local_coordinate_of_node(
j,
s);
1816 if (
edge.is_boundary_edge())
1829 el_pt->local_coordinate_of_node(
j,
s);
1853 if (
edge.is_boundary_edge())
1866 el_pt->local_coordinate_of_node(
j,
s);
1890 if (
edge.is_boundary_edge())
1903 el_pt->local_coordinate_of_node(
j,
s);
1927 if (
edge.is_boundary_edge())
1940 el_pt->local_coordinate_of_node(
j,
s);
1964 if (
edge.is_boundary_edge())
1977 el_pt->local_coordinate_of_node(
j,
s);
2001 if (
edge.is_boundary_edge())
2014 el_pt->local_coordinate_of_node(
j,
s);
2038 if (
edge.is_boundary_edge())
2051 el_pt->local_coordinate_of_node(
j,
s);
2075 if (
edge.is_boundary_edge())
2088 el_pt->local_coordinate_of_node(
j,
s);
2112 if (
edge.is_boundary_edge())
2125 el_pt->local_coordinate_of_node(
j,
s);
2149 if (
edge.is_boundary_edge())
2162 el_pt->local_coordinate_of_node(
j,
s);
2190 if (
face.is_boundary_face())
2203 el_pt->local_coordinate_of_node(
j,
s);
2231 if (
face.is_boundary_face())
2244 el_pt->local_coordinate_of_node(
j,
s);
2272 if (
face.is_boundary_face())
2285 el_pt->local_coordinate_of_node(
j,
s);
2307 el_pt->local_coordinate_of_node(
j,
s);
2324 el_pt->local_coordinate_of_node(
j,
s);
2346 for (
unsigned j = 0;
j < 8;
j++)
2386 s_tet[0] = 1.0 / 3.0;
2387 s_tet[1] = 1.0 / 3.0;
2410 s_tet[0] = 1.0 / 3.0;
2412 s_tet[2] = 1.0 / 3.0;
2425 s_tet[1] = 1.0 / 3.0;
2426 s_tet[2] = 1.0 / 3.0;
2506 el_pt->local_coordinate_of_node(
j,
s);
2543 el_pt->local_coordinate_of_node(
j,
s);
2580 el_pt->local_coordinate_of_node(
j,
s);
2617 el_pt->local_coordinate_of_node(
j,
s);
2640 if (
face0.is_boundary_face())
2653 el_pt->local_coordinate_of_node(
j,
s);
2676 if (
face1.is_boundary_face())
2689 el_pt->local_coordinate_of_node(
j,
s);
2712 if (
face2.is_boundary_face())
2725 el_pt->local_coordinate_of_node(
j,
s);
2759 el_pt->local_coordinate_of_node(
j,
s);
2778 if (
edge.is_boundary_edge())
2791 el_pt->local_coordinate_of_node(
j,
s);
2815 if (
edge.is_boundary_edge())
2828 el_pt->local_coordinate_of_node(
j,
s);
2852 if (
edge.is_boundary_edge())
2865 el_pt->local_coordinate_of_node(
j,
s);
2889 if (
edge.is_boundary_edge())
2902 el_pt->local_coordinate_of_node(
j,
s);
2926 if (
edge.is_boundary_edge())
2939 el_pt->local_coordinate_of_node(
j,
s);
2963 if (
edge.is_boundary_edge())
2976 el_pt->local_coordinate_of_node(
j,
s);
3000 if (
edge.is_boundary_edge())
3013 el_pt->local_coordinate_of_node(
j,
s);
3037 if (
edge.is_boundary_edge())
3050 el_pt->local_coordinate_of_node(
j,
s);
3074 if (
edge.is_boundary_edge())
3087 el_pt->local_coordinate_of_node(
j,
s);
3111 if (
edge.is_boundary_edge())
3124 el_pt->local_coordinate_of_node(
j,
s);
3148 if (
edge.is_boundary_edge())
3161 el_pt->local_coordinate_of_node(
j,
s);
3185 if (
edge.is_boundary_edge())
3198 el_pt->local_coordinate_of_node(
j,
s);
3226 if (
face.is_boundary_face())
3239 el_pt->local_coordinate_of_node(
j,
s);
3266 if (
face.is_boundary_face())
3279 el_pt->local_coordinate_of_node(
j,
s);
3307 if (
face.is_boundary_face())
3320 el_pt->local_coordinate_of_node(
j,
s);
3342 el_pt->local_coordinate_of_node(
j,
s);
3372 for (
unsigned j = 0;
j < 8;
j++)
3412 s_tet[0] = 1.0 / 3.0;
3413 s_tet[1] = 1.0 / 3.0;
3414 s_tet[2] = 1.0 / 3.0;
3437 s_tet[1] = 1.0 / 3.0;
3438 s_tet[2] = 1.0 / 3.0;
3450 s_tet[0] = 1.0 / 3.0;
3452 s_tet[2] = 1.0 / 3.0;
3532 el_pt->local_coordinate_of_node(
j,
s);
3569 el_pt->local_coordinate_of_node(
j,
s);
3606 el_pt->local_coordinate_of_node(
j,
s);
3643 el_pt->local_coordinate_of_node(
j,
s);
3666 if (
face0.is_boundary_face())
3679 el_pt->local_coordinate_of_node(
j,
s);
3702 if (
face1.is_boundary_face())
3715 el_pt->local_coordinate_of_node(
j,
s);
3738 if (
face2.is_boundary_face())
3751 el_pt->local_coordinate_of_node(
j,
s);
3785 el_pt->local_coordinate_of_node(
j,
s);
3804 if (
edge.is_boundary_edge())
3817 el_pt->local_coordinate_of_node(
j,
s);
3841 if (
edge.is_boundary_edge())
3854 el_pt->local_coordinate_of_node(
j,
s);
3878 if (
edge.is_boundary_edge())
3891 el_pt->local_coordinate_of_node(
j,
s);
3915 if (
edge.is_boundary_edge())
3928 el_pt->local_coordinate_of_node(
j,
s);
3952 if (
edge.is_boundary_edge())
3965 el_pt->local_coordinate_of_node(
j,
s);
3989 if (
edge.is_boundary_edge())
4002 el_pt->local_coordinate_of_node(
j,
s);
4026 if (
edge.is_boundary_edge())
4039 el_pt->local_coordinate_of_node(
j,
s);
4063 if (
edge.is_boundary_edge())
4076 el_pt->local_coordinate_of_node(
j,
s);
4100 if (
edge.is_boundary_edge())
4113 el_pt->local_coordinate_of_node(
j,
s);
4137 if (
edge.is_boundary_edge())
4150 el_pt->local_coordinate_of_node(
j,
s);
4174 if (
edge.is_boundary_edge())
4187 el_pt->local_coordinate_of_node(
j,
s);
4211 if (
edge.is_boundary_edge())
4224 el_pt->local_coordinate_of_node(
j,
s);
4252 if (
face.is_boundary_face())
4265 el_pt->local_coordinate_of_node(
j,
s);
4293 if (
face.is_boundary_face())
4306 el_pt->local_coordinate_of_node(
j,
s);
4334 if (
face.is_boundary_face())
4347 el_pt->local_coordinate_of_node(
j,
s);
4428 if (
face_pt->is_boundary_face())
4430 std::set<unsigned>
bnd;
4435 if ((*bnd_pt).size() > 1)
4438 error_stream <<
"TFace should only be on one boundary.\n";
4445 if ((*bnd_pt).size() == 1)
4456 <<
"Tet-element cannot be cast to SolidTElement<3,3>.\n"
4457 <<
"BrickFromTetMesh can only be built from\n"
4458 <<
"mesh containing quadratic tets.\n"
4475 error_stream <<
"Tet-element cannot be cast to TElement<3,3>.\n"
4476 <<
"BrickFromTetMesh can only be built from\n"
4477 <<
"mesh containing quadratic tets.\n"
4492 unsigned b = (*(*bnd_pt).begin());
4624 for (
unsigned i = 0;
i < 19;
i++)
4630 for (
unsigned j = 0;
j < 19;
j++)
4647 if (
dist > BrickFromTetMeshHelper::Face_position_tolerance)
4653 brick0.open(
"full_brick0.dat");
4654 brick1.open(
"full_brick1.dat");
4655 brick2.open(
"full_brick2.dat");
4656 brick3.open(
"full_brick3.dat");
4657 for (
unsigned j = 0;
j < 27;
j++)
4682 for (
unsigned j = 0;
j < 6;
j++)
4695 <<
"During assignment of boundary cordinates, the distance\n"
4696 <<
"between brick node and reference point in \n"
4697 <<
"triangular FaceElement is " <<
dist <<
" which \n"
4698 <<
"is bigger than the tolerance defined in \n"
4699 <<
"BrickFromTetMeshHelper::Face_position_tolerance="
4700 << BrickFromTetMeshHelper::Face_position_tolerance <<
".\n"
4701 <<
"If this is tolerable, increase the tolerance \n"
4702 <<
"(it's defined in a namespace and therefore publically\n"
4703 <<
"accessible). If not, the Face may be inverted in which \n"
4704 <<
"case you should re-implement the translation scheme,\n"
4705 <<
"following the pattern used in the "
4706 "ThinLayerBrickOnTetMesh."
4707 <<
"\nThe required code fragements are already here but \n"
4708 <<
"the translation is the unit map.\n"
4709 <<
"To aid the diagnostics, the files full_brick[0-3].dat\n"
4710 <<
"contain the coordinates of the 27 nodes in the four\n"
4711 <<
"bricks associated with the current tet and "
4713 <<
"contains the coordinates of the 6 nodes in the "
4715 <<
"\nfrom which the boundary coordinates are extracted.\n"
4716 <<
"FYI: The normal_sign of the face is: " <<
normal_sign
4792 for (
unsigned e = 0;
e < 4;
e++)
4794 for (
unsigned j = 0;
j < 8;
j++)
4811 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(3, 3);
4825 for (
unsigned i = 0;
i < 19;
i++)
4964 for (
unsigned e = 0;
e < 4;
e++)
4967 for (
unsigned j = 0;
j < 8;
j++)
4986 <<
"BrickFromTetMesh can only built from tet mesh containing\n"
4987 <<
"ten-noded tets.\n";
5016 for (
unsigned j = 0;
j < 8;
j++)
5056 s_tet[0] = 1.0 / 3.0;
5057 s_tet[1] = 1.0 / 3.0;
5080 s_tet[0] = 1.0 / 3.0;
5081 s_tet[1] = 1.0 / 3.0;
5082 s_tet[2] = 1.0 / 3.0;
5094 s_tet[0] = 1.0 / 3.0;
5096 s_tet[2] = 1.0 / 3.0;
5176 el_pt->local_coordinate_of_node(
j,
s);
5213 el_pt->local_coordinate_of_node(
j,
s);
5250 el_pt->local_coordinate_of_node(
j,
s);
5287 el_pt->local_coordinate_of_node(
j,
s);
5311 if (
face0.is_boundary_face())
5324 el_pt->local_coordinate_of_node(
j,
s);
5348 if (
face1.is_boundary_face())
5361 el_pt->local_coordinate_of_node(
j,
s);
5385 if (
face2.is_boundary_face())
5398 el_pt->local_coordinate_of_node(
j,
s);
5425 el_pt->local_coordinate_of_node(
j,
s);
5445 el_pt->local_coordinate_of_node(
j,
s);
5464 if (
edge.is_boundary_edge())
5477 el_pt->local_coordinate_of_node(
j,
s);
5501 if (
edge.is_boundary_edge())
5514 el_pt->local_coordinate_of_node(
j,
s);
5538 if (
edge.is_boundary_edge())
5551 el_pt->local_coordinate_of_node(
j,
s);
5575 if (
edge.is_boundary_edge())
5588 el_pt->local_coordinate_of_node(
j,
s);
5612 if (
edge.is_boundary_edge())
5625 el_pt->local_coordinate_of_node(
j,
s);
5649 if (
edge.is_boundary_edge())
5662 el_pt->local_coordinate_of_node(
j,
s);
5686 if (
edge.is_boundary_edge())
5699 el_pt->local_coordinate_of_node(
j,
s);
5723 if (
edge.is_boundary_edge())
5736 el_pt->local_coordinate_of_node(
j,
s);
5760 if (
edge.is_boundary_edge())
5773 el_pt->local_coordinate_of_node(
j,
s);
5797 if (
edge.is_boundary_edge())
5810 el_pt->local_coordinate_of_node(
j,
s);
5834 if (
edge.is_boundary_edge())
5847 el_pt->local_coordinate_of_node(
j,
s);
5871 if (
edge.is_boundary_edge())
5884 el_pt->local_coordinate_of_node(
j,
s);
5912 if (
face.is_boundary_face())
5925 el_pt->local_coordinate_of_node(
j,
s);
5953 if (
face.is_boundary_face())
5966 el_pt->local_coordinate_of_node(
j,
s);
5994 if (
face.is_boundary_face())
6007 el_pt->local_coordinate_of_node(
j,
s);
6029 el_pt->local_coordinate_of_node(
j,
s);
6046 el_pt->local_coordinate_of_node(
j,
s);
6063 el_pt->local_coordinate_of_node(
j,
s);
6077 for (
unsigned j = 0;
j < 8;
j++)
6117 s_tet[0] = 1.0 / 3.0;
6118 s_tet[1] = 1.0 / 3.0;
6142 s_tet[1] = 1.0 / 3.0;
6143 s_tet[2] = 1.0 / 3.0;
6155 s_tet[0] = 1.0 / 3.0;
6156 s_tet[1] = 1.0 / 3.0;
6157 s_tet[2] = 1.0 / 3.0;
6237 el_pt->local_coordinate_of_node(
j,
s);
6274 el_pt->local_coordinate_of_node(
j,
s);
6311 el_pt->local_coordinate_of_node(
j,
s);
6348 el_pt->local_coordinate_of_node(
j,
s);
6371 if (
face0.is_boundary_face())
6384 el_pt->local_coordinate_of_node(
j,
s);
6407 if (
face1.is_boundary_face())
6420 el_pt->local_coordinate_of_node(
j,
s);
6443 if (
face2.is_boundary_face())
6456 el_pt->local_coordinate_of_node(
j,
s);
6490 el_pt->local_coordinate_of_node(
j,
s);
6509 if (
edge.is_boundary_edge())
6522 el_pt->local_coordinate_of_node(
j,
s);
6546 if (
edge.is_boundary_edge())
6559 el_pt->local_coordinate_of_node(
j,
s);
6583 if (
edge.is_boundary_edge())
6596 el_pt->local_coordinate_of_node(
j,
s);
6620 if (
edge.is_boundary_edge())
6633 el_pt->local_coordinate_of_node(
j,
s);
6657 if (
edge.is_boundary_edge())
6670 el_pt->local_coordinate_of_node(
j,
s);
6694 if (
edge.is_boundary_edge())
6707 el_pt->local_coordinate_of_node(
j,
s);
6731 if (
edge.is_boundary_edge())
6744 el_pt->local_coordinate_of_node(
j,
s);
6768 if (
edge.is_boundary_edge())
6781 el_pt->local_coordinate_of_node(
j,
s);
6805 if (
edge.is_boundary_edge())
6818 el_pt->local_coordinate_of_node(
j,
s);
6842 if (
edge.is_boundary_edge())
6855 el_pt->local_coordinate_of_node(
j,
s);
6879 if (
edge.is_boundary_edge())
6892 el_pt->local_coordinate_of_node(
j,
s);
6916 if (
edge.is_boundary_edge())
6929 el_pt->local_coordinate_of_node(
j,
s);
6957 if (
face.is_boundary_face())
6970 el_pt->local_coordinate_of_node(
j,
s);
6998 if (
face.is_boundary_face())
7011 el_pt->local_coordinate_of_node(
j,
s);
7039 if (
face.is_boundary_face())
7052 el_pt->local_coordinate_of_node(
j,
s);
7074 el_pt->local_coordinate_of_node(
j,
s);
7091 el_pt->local_coordinate_of_node(
j,
s);
7113 for (
unsigned j = 0;
j < 8;
j++)
7153 s_tet[0] = 1.0 / 3.0;
7154 s_tet[1] = 1.0 / 3.0;
7177 s_tet[0] = 1.0 / 3.0;
7179 s_tet[2] = 1.0 / 3.0;
7192 s_tet[1] = 1.0 / 3.0;
7193 s_tet[2] = 1.0 / 3.0;
7273 el_pt->local_coordinate_of_node(
j,
s);
7310 el_pt->local_coordinate_of_node(
j,
s);
7347 el_pt->local_coordinate_of_node(
j,
s);
7384 el_pt->local_coordinate_of_node(
j,
s);
7407 if (
face0.is_boundary_face())
7420 el_pt->local_coordinate_of_node(
j,
s);
7443 if (
face1.is_boundary_face())
7456 el_pt->local_coordinate_of_node(
j,
s);
7479 if (
face2.is_boundary_face())
7492 el_pt->local_coordinate_of_node(
j,
s);
7526 el_pt->local_coordinate_of_node(
j,
s);
7545 if (
edge.is_boundary_edge())
7558 el_pt->local_coordinate_of_node(
j,
s);
7582 if (
edge.is_boundary_edge())
7595 el_pt->local_coordinate_of_node(
j,
s);
7619 if (
edge.is_boundary_edge())
7632 el_pt->local_coordinate_of_node(
j,
s);
7656 if (
edge.is_boundary_edge())
7669 el_pt->local_coordinate_of_node(
j,
s);
7693 if (
edge.is_boundary_edge())
7706 el_pt->local_coordinate_of_node(
j,
s);
7730 if (
edge.is_boundary_edge())
7743 el_pt->local_coordinate_of_node(
j,
s);
7767 if (
edge.is_boundary_edge())
7780 el_pt->local_coordinate_of_node(
j,
s);
7804 if (
edge.is_boundary_edge())
7817 el_pt->local_coordinate_of_node(
j,
s);
7841 if (
edge.is_boundary_edge())
7854 el_pt->local_coordinate_of_node(
j,
s);
7878 if (
edge.is_boundary_edge())
7891 el_pt->local_coordinate_of_node(
j,
s);
7915 if (
edge.is_boundary_edge())
7928 el_pt->local_coordinate_of_node(
j,
s);
7952 if (
edge.is_boundary_edge())
7965 el_pt->local_coordinate_of_node(
j,
s);
7993 if (
face.is_boundary_face())
8006 el_pt->local_coordinate_of_node(
j,
s);
8033 if (
face.is_boundary_face())
8046 el_pt->local_coordinate_of_node(
j,
s);
8074 if (
face.is_boundary_face())
8087 el_pt->local_coordinate_of_node(
j,
s);
8109 el_pt->local_coordinate_of_node(
j,
s);
8139 for (
unsigned j = 0;
j < 8;
j++)
8179 s_tet[0] = 1.0 / 3.0;
8180 s_tet[1] = 1.0 / 3.0;
8181 s_tet[2] = 1.0 / 3.0;
8204 s_tet[1] = 1.0 / 3.0;
8205 s_tet[2] = 1.0 / 3.0;
8217 s_tet[0] = 1.0 / 3.0;
8219 s_tet[2] = 1.0 / 3.0;
8299 el_pt->local_coordinate_of_node(
j,
s);
8336 el_pt->local_coordinate_of_node(
j,
s);
8373 el_pt->local_coordinate_of_node(
j,
s);
8410 el_pt->local_coordinate_of_node(
j,
s);
8433 if (
face0.is_boundary_face())
8446 el_pt->local_coordinate_of_node(
j,
s);
8469 if (
face1.is_boundary_face())
8482 el_pt->local_coordinate_of_node(
j,
s);
8505 if (
face2.is_boundary_face())
8518 el_pt->local_coordinate_of_node(
j,
s);
8552 el_pt->local_coordinate_of_node(
j,
s);
8571 if (
edge.is_boundary_edge())
8584 el_pt->local_coordinate_of_node(
j,
s);
8608 if (
edge.is_boundary_edge())
8621 el_pt->local_coordinate_of_node(
j,
s);
8645 if (
edge.is_boundary_edge())
8658 el_pt->local_coordinate_of_node(
j,
s);
8682 if (
edge.is_boundary_edge())
8695 el_pt->local_coordinate_of_node(
j,
s);
8719 if (
edge.is_boundary_edge())
8732 el_pt->local_coordinate_of_node(
j,
s);
8756 if (
edge.is_boundary_edge())
8769 el_pt->local_coordinate_of_node(
j,
s);
8793 if (
edge.is_boundary_edge())
8806 el_pt->local_coordinate_of_node(
j,
s);
8830 if (
edge.is_boundary_edge())
8843 el_pt->local_coordinate_of_node(
j,
s);
8867 if (
edge.is_boundary_edge())
8880 el_pt->local_coordinate_of_node(
j,
s);
8904 if (
edge.is_boundary_edge())
8917 el_pt->local_coordinate_of_node(
j,
s);
8941 if (
edge.is_boundary_edge())
8954 el_pt->local_coordinate_of_node(
j,
s);
8978 if (
edge.is_boundary_edge())
8991 el_pt->local_coordinate_of_node(
j,
s);
9019 if (
face.is_boundary_face())
9032 el_pt->local_coordinate_of_node(
j,
s);
9060 if (
face.is_boundary_face())
9073 el_pt->local_coordinate_of_node(
j,
s);
9101 if (
face.is_boundary_face())
9114 el_pt->local_coordinate_of_node(
j,
s);
9195 if (
face_pt->is_boundary_face())
9197 std::set<unsigned>
bnd;
9202 if ((*bnd_pt).size() > 1)
9205 error_stream <<
"TFace should only be on one boundary.\n";
9212 if ((*bnd_pt).size() == 1)
9223 <<
"Tet-element cannot be cast to SolidTElement<3,3>.\n"
9224 <<
"BrickFromTetMesh can only be built from\n"
9225 <<
"mesh containing quadratic tets.\n"
9242 error_stream <<
"Tet-element cannot be cast to TElement<3,3>.\n"
9243 <<
"BrickFromTetMesh can only be built from\n"
9244 <<
"mesh containing quadratic tets.\n"
9259 unsigned b = (*(*bnd_pt).begin());
9391 for (
unsigned i = 0;
i < 19;
i++)
9397 for (
unsigned j = 0;
j < 19;
j++)
9414 if (
dist > BrickFromTetMeshHelper::Face_position_tolerance)
9420 brick0.open(
"full_brick0.dat");
9421 brick1.open(
"full_brick1.dat");
9422 brick2.open(
"full_brick2.dat");
9423 brick3.open(
"full_brick3.dat");
9424 for (
unsigned j = 0;
j < 27;
j++)
9449 for (
unsigned j = 0;
j < 6;
j++)
9462 <<
"During assignment of boundary cordinates, the distance\n"
9463 <<
"between brick node and reference point in \n"
9464 <<
"triangular FaceElement is " <<
dist <<
" which \n"
9465 <<
"is bigger than the tolerance defined in \n"
9466 <<
"BrickFromTetMeshHelper::Face_position_tolerance="
9467 << BrickFromTetMeshHelper::Face_position_tolerance <<
".\n"
9468 <<
"If this is tolerable, increase the tolerance \n"
9469 <<
"(it's defined in a namespace and therefore publically\n"
9470 <<
"accessible). If not, the Face may be inverted in which \n"
9471 <<
"case you should re-implement the translation scheme,\n"
9472 <<
"following the pattern used in the "
9473 "ThinLayerBrickOnTetMesh."
9474 <<
"\nThe required code fragements are already here but \n"
9475 <<
"the translation is the unit map.\n"
9476 <<
"To aid the diagnostics, the files full_brick[0-3].dat\n"
9477 <<
"contain the coordinates of the 27 nodes in the four\n"
9478 <<
"bricks associated with the current tet and "
9480 <<
"contains the coordinates of the 6 nodes in the "
9482 <<
"\nfrom which the boundary coordinates are extracted.\n"
9483 <<
"FYI: The normal_sign of the face is: " <<
normal_sign
9560 for (
unsigned e = 0;
e < 4;
e++)
9562 for (
unsigned j = 0;
j < 8;
j++)