43 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(3, 3);
57 for (
unsigned i = 0;
i < 19;
i++)
199 for (
unsigned e = 0;
e < 4;
e++)
202 for (
unsigned j = 0;
j < 8;
j++)
221 <<
"BrickFromTetMesh can only built from tet mesh containing\n"
222 <<
"ten-noded tets.\n";
252 for (
unsigned j = 0;
j < 8;
j++)
292 s_tet[0] = 1.0 / 3.0;
293 s_tet[1] = 1.0 / 3.0;
316 s_tet[0] = 1.0 / 3.0;
317 s_tet[1] = 1.0 / 3.0;
318 s_tet[2] = 1.0 / 3.0;
330 s_tet[0] = 1.0 / 3.0;
332 s_tet[2] = 1.0 / 3.0;
414 el_pt->local_coordinate_of_node(
j,
s);
452 el_pt->local_coordinate_of_node(
j,
s);
490 el_pt->local_coordinate_of_node(
j,
s);
528 el_pt->local_coordinate_of_node(
j,
s);
553 if (
face0.is_boundary_face())
566 el_pt->local_coordinate_of_node(
j,
s);
590 if (
face1.is_boundary_face())
603 el_pt->local_coordinate_of_node(
j,
s);
627 if (
face2.is_boundary_face())
640 el_pt->local_coordinate_of_node(
j,
s);
667 el_pt->local_coordinate_of_node(
j,
s);
688 el_pt->local_coordinate_of_node(
j,
s);
707 if (
edge.is_boundary_edge())
720 el_pt->local_coordinate_of_node(
j,
s);
745 if (
edge.is_boundary_edge())
758 el_pt->local_coordinate_of_node(
j,
s);
782 if (
edge.is_boundary_edge())
795 el_pt->local_coordinate_of_node(
j,
s);
819 if (
edge.is_boundary_edge())
832 el_pt->local_coordinate_of_node(
j,
s);
856 if (
edge.is_boundary_edge())
869 el_pt->local_coordinate_of_node(
j,
s);
894 if (
edge.is_boundary_edge())
907 el_pt->local_coordinate_of_node(
j,
s);
931 if (
edge.is_boundary_edge())
944 el_pt->local_coordinate_of_node(
j,
s);
969 if (
edge.is_boundary_edge())
982 el_pt->local_coordinate_of_node(
j,
s);
1006 if (
edge.is_boundary_edge())
1019 el_pt->local_coordinate_of_node(
j,
s);
1044 if (
edge.is_boundary_edge())
1057 el_pt->local_coordinate_of_node(
j,
s);
1082 if (
edge.is_boundary_edge())
1095 el_pt->local_coordinate_of_node(
j,
s);
1120 if (
edge.is_boundary_edge())
1133 el_pt->local_coordinate_of_node(
j,
s);
1162 if (
face.is_boundary_face())
1175 el_pt->local_coordinate_of_node(
j,
s);
1204 if (
face.is_boundary_face())
1217 el_pt->local_coordinate_of_node(
j,
s);
1246 if (
face.is_boundary_face())
1259 el_pt->local_coordinate_of_node(
j,
s);
1282 el_pt->local_coordinate_of_node(
j,
s);
1300 el_pt->local_coordinate_of_node(
j,
s);
1318 el_pt->local_coordinate_of_node(
j,
s);
1333 for (
unsigned j = 0;
j < 8;
j++)
1373 s_tet[0] = 1.0 / 3.0;
1374 s_tet[1] = 1.0 / 3.0;
1398 s_tet[1] = 1.0 / 3.0;
1399 s_tet[2] = 1.0 / 3.0;
1411 s_tet[0] = 1.0 / 3.0;
1412 s_tet[1] = 1.0 / 3.0;
1413 s_tet[2] = 1.0 / 3.0;
1494 el_pt->local_coordinate_of_node(
j,
s);
1532 el_pt->local_coordinate_of_node(
j,
s);
1570 el_pt->local_coordinate_of_node(
j,
s);
1608 el_pt->local_coordinate_of_node(
j,
s);
1632 if (
face0.is_boundary_face())
1645 el_pt->local_coordinate_of_node(
j,
s);
1668 if (
face1.is_boundary_face())
1681 el_pt->local_coordinate_of_node(
j,
s);
1704 if (
face2.is_boundary_face())
1717 el_pt->local_coordinate_of_node(
j,
s);
1753 el_pt->local_coordinate_of_node(
j,
s);
1773 if (
edge.is_boundary_edge())
1786 el_pt->local_coordinate_of_node(
j,
s);
1811 if (
edge.is_boundary_edge())
1824 el_pt->local_coordinate_of_node(
j,
s);
1849 if (
edge.is_boundary_edge())
1862 el_pt->local_coordinate_of_node(
j,
s);
1886 if (
edge.is_boundary_edge())
1899 el_pt->local_coordinate_of_node(
j,
s);
1923 if (
edge.is_boundary_edge())
1936 el_pt->local_coordinate_of_node(
j,
s);
1961 if (
edge.is_boundary_edge())
1974 el_pt->local_coordinate_of_node(
j,
s);
1998 if (
edge.is_boundary_edge())
2011 el_pt->local_coordinate_of_node(
j,
s);
2036 if (
edge.is_boundary_edge())
2049 el_pt->local_coordinate_of_node(
j,
s);
2073 if (
edge.is_boundary_edge())
2086 el_pt->local_coordinate_of_node(
j,
s);
2111 if (
edge.is_boundary_edge())
2124 el_pt->local_coordinate_of_node(
j,
s);
2149 if (
edge.is_boundary_edge())
2162 el_pt->local_coordinate_of_node(
j,
s);
2187 if (
edge.is_boundary_edge())
2200 el_pt->local_coordinate_of_node(
j,
s);
2229 if (
face.is_boundary_face())
2242 el_pt->local_coordinate_of_node(
j,
s);
2271 if (
face.is_boundary_face())
2284 el_pt->local_coordinate_of_node(
j,
s);
2313 if (
face.is_boundary_face())
2326 el_pt->local_coordinate_of_node(
j,
s);
2349 el_pt->local_coordinate_of_node(
j,
s);
2367 el_pt->local_coordinate_of_node(
j,
s);
2391 for (
unsigned j = 0;
j < 8;
j++)
2431 s_tet[0] = 1.0 / 3.0;
2432 s_tet[1] = 1.0 / 3.0;
2455 s_tet[0] = 1.0 / 3.0;
2457 s_tet[2] = 1.0 / 3.0;
2470 s_tet[1] = 1.0 / 3.0;
2471 s_tet[2] = 1.0 / 3.0;
2552 el_pt->local_coordinate_of_node(
j,
s);
2590 el_pt->local_coordinate_of_node(
j,
s);
2628 el_pt->local_coordinate_of_node(
j,
s);
2666 el_pt->local_coordinate_of_node(
j,
s);
2690 if (
face0.is_boundary_face())
2703 el_pt->local_coordinate_of_node(
j,
s);
2726 if (
face1.is_boundary_face())
2739 el_pt->local_coordinate_of_node(
j,
s);
2762 if (
face2.is_boundary_face())
2775 el_pt->local_coordinate_of_node(
j,
s);
2811 el_pt->local_coordinate_of_node(
j,
s);
2830 if (
edge.is_boundary_edge())
2843 el_pt->local_coordinate_of_node(
j,
s);
2868 if (
edge.is_boundary_edge())
2881 el_pt->local_coordinate_of_node(
j,
s);
2905 if (
edge.is_boundary_edge())
2918 el_pt->local_coordinate_of_node(
j,
s);
2942 if (
edge.is_boundary_edge())
2955 el_pt->local_coordinate_of_node(
j,
s);
2979 if (
edge.is_boundary_edge())
2992 el_pt->local_coordinate_of_node(
j,
s);
3017 if (
edge.is_boundary_edge())
3030 el_pt->local_coordinate_of_node(
j,
s);
3054 if (
edge.is_boundary_edge())
3067 el_pt->local_coordinate_of_node(
j,
s);
3092 if (
edge.is_boundary_edge())
3105 el_pt->local_coordinate_of_node(
j,
s);
3129 if (
edge.is_boundary_edge())
3142 el_pt->local_coordinate_of_node(
j,
s);
3167 if (
edge.is_boundary_edge())
3180 el_pt->local_coordinate_of_node(
j,
s);
3205 if (
edge.is_boundary_edge())
3218 el_pt->local_coordinate_of_node(
j,
s);
3243 if (
edge.is_boundary_edge())
3256 el_pt->local_coordinate_of_node(
j,
s);
3285 if (
face.is_boundary_face())
3298 el_pt->local_coordinate_of_node(
j,
s);
3326 if (
face.is_boundary_face())
3339 el_pt->local_coordinate_of_node(
j,
s);
3368 if (
face.is_boundary_face())
3381 el_pt->local_coordinate_of_node(
j,
s);
3404 el_pt->local_coordinate_of_node(
j,
s);
3437 for (
unsigned j = 0;
j < 8;
j++)
3477 s_tet[0] = 1.0 / 3.0;
3478 s_tet[1] = 1.0 / 3.0;
3479 s_tet[2] = 1.0 / 3.0;
3502 s_tet[1] = 1.0 / 3.0;
3503 s_tet[2] = 1.0 / 3.0;
3515 s_tet[0] = 1.0 / 3.0;
3517 s_tet[2] = 1.0 / 3.0;
3598 el_pt->local_coordinate_of_node(
j,
s);
3636 el_pt->local_coordinate_of_node(
j,
s);
3674 el_pt->local_coordinate_of_node(
j,
s);
3712 el_pt->local_coordinate_of_node(
j,
s);
3736 if (
face0.is_boundary_face())
3749 el_pt->local_coordinate_of_node(
j,
s);
3772 if (
face1.is_boundary_face())
3785 el_pt->local_coordinate_of_node(
j,
s);
3808 if (
face2.is_boundary_face())
3821 el_pt->local_coordinate_of_node(
j,
s);
3857 el_pt->local_coordinate_of_node(
j,
s);
3876 if (
edge.is_boundary_edge())
3889 el_pt->local_coordinate_of_node(
j,
s);
3914 if (
edge.is_boundary_edge())
3927 el_pt->local_coordinate_of_node(
j,
s);
3951 if (
edge.is_boundary_edge())
3964 el_pt->local_coordinate_of_node(
j,
s);
3988 if (
edge.is_boundary_edge())
4001 el_pt->local_coordinate_of_node(
j,
s);
4025 if (
edge.is_boundary_edge())
4038 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);
4138 if (
edge.is_boundary_edge())
4151 el_pt->local_coordinate_of_node(
j,
s);
4175 if (
edge.is_boundary_edge())
4188 el_pt->local_coordinate_of_node(
j,
s);
4213 if (
edge.is_boundary_edge())
4226 el_pt->local_coordinate_of_node(
j,
s);
4251 if (
edge.is_boundary_edge())
4264 el_pt->local_coordinate_of_node(
j,
s);
4289 if (
edge.is_boundary_edge())
4302 el_pt->local_coordinate_of_node(
j,
s);
4331 if (
face.is_boundary_face())
4344 el_pt->local_coordinate_of_node(
j,
s);
4373 if (
face.is_boundary_face())
4386 el_pt->local_coordinate_of_node(
j,
s);
4415 if (
face.is_boundary_face())
4428 el_pt->local_coordinate_of_node(
j,
s);
4515 if (
face_pt->is_boundary_face())
4517 std::set<unsigned>
bnd;
4522 if ((*bnd_pt).size() > 1)
4525 error_stream <<
"TFace should only be on one boundary.\n";
4532 if ((*bnd_pt).size() == 1)
4543 <<
"Tet-element cannot be cast to SolidTElement<3,3>.\n"
4544 <<
"BrickFromTetMesh can only be built from\n"
4545 <<
"mesh containing quadratic tets.\n"
4562 error_stream <<
"Tet-element cannot be cast to TElement<3,3>.\n"
4563 <<
"BrickFromTetMesh can only be built from\n"
4564 <<
"mesh containing quadratic tets.\n"
4580 unsigned b = (*(*bnd_pt).begin());
4712 for (
unsigned i = 0;
i < 19;
i++)
4718 for (
unsigned j = 0;
j < 19;
j++)
4735 if (
dist > BrickFromTetMeshHelper::Face_position_tolerance)
4741 brick0.open(
"full_brick0.dat");
4742 brick1.open(
"full_brick1.dat");
4743 brick2.open(
"full_brick2.dat");
4744 brick3.open(
"full_brick3.dat");
4745 for (
unsigned j = 0;
j < 27;
j++)
4770 for (
unsigned j = 0;
j < 6;
j++)
4783 <<
"During assignment of boundary cordinates, the distance\n"
4784 <<
"between brick node and reference point in \n"
4785 <<
"triangular FaceElement is " <<
dist <<
" which \n"
4786 <<
"is bigger than the tolerance defined in \n"
4787 <<
"BrickFromTetMeshHelper::Face_position_tolerance="
4788 << BrickFromTetMeshHelper::Face_position_tolerance <<
".\n"
4789 <<
"If this is tolerable, increase the tolerance \n"
4790 <<
"(it's defined in a namespace and therefore publically\n"
4791 <<
"accessible). If not, the Face may be inverted in which \n"
4792 <<
"case you should re-implement the translation scheme,\n"
4793 <<
"following the pattern used in the "
4794 "ThinLayerBrickOnTetMesh."
4795 <<
"\nThe required code fragements are already here but \n"
4796 <<
"the translation is the unit map.\n"
4797 <<
"To aid the diagnostics, the files full_brick[0-3].dat\n"
4798 <<
"contain the coordinates of the 27 nodes in the four\n"
4799 <<
"bricks associated with the current tet and "
4801 <<
"contains the coordinates of the 6 nodes in the "
4803 <<
"\nfrom which the boundary coordinates are extracted.\n"
4804 <<
"FYI: The normal_sign of the face is: " <<
normal_sign
4881 for (
unsigned e = 0;
e < 4;
e++)
4883 for (
unsigned j = 0;
j < 8;
j++)
4900 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(3, 3);
4914 for (
unsigned i = 0;
i < 19;
i++)
5056 for (
unsigned e = 0;
e < 4;
e++)
5059 for (
unsigned j = 0;
j < 8;
j++)
5078 <<
"BrickFromTetMesh can only built from tet mesh containing\n"
5079 <<
"ten-noded tets.\n";
5109 for (
unsigned j = 0;
j < 8;
j++)
5149 s_tet[0] = 1.0 / 3.0;
5150 s_tet[1] = 1.0 / 3.0;
5173 s_tet[0] = 1.0 / 3.0;
5174 s_tet[1] = 1.0 / 3.0;
5175 s_tet[2] = 1.0 / 3.0;
5187 s_tet[0] = 1.0 / 3.0;
5189 s_tet[2] = 1.0 / 3.0;
5271 el_pt->local_coordinate_of_node(
j,
s);
5309 el_pt->local_coordinate_of_node(
j,
s);
5347 el_pt->local_coordinate_of_node(
j,
s);
5385 el_pt->local_coordinate_of_node(
j,
s);
5410 if (
face0.is_boundary_face())
5423 el_pt->local_coordinate_of_node(
j,
s);
5447 if (
face1.is_boundary_face())
5460 el_pt->local_coordinate_of_node(
j,
s);
5484 if (
face2.is_boundary_face())
5497 el_pt->local_coordinate_of_node(
j,
s);
5524 el_pt->local_coordinate_of_node(
j,
s);
5545 el_pt->local_coordinate_of_node(
j,
s);
5564 if (
edge.is_boundary_edge())
5577 el_pt->local_coordinate_of_node(
j,
s);
5602 if (
edge.is_boundary_edge())
5615 el_pt->local_coordinate_of_node(
j,
s);
5639 if (
edge.is_boundary_edge())
5652 el_pt->local_coordinate_of_node(
j,
s);
5676 if (
edge.is_boundary_edge())
5689 el_pt->local_coordinate_of_node(
j,
s);
5713 if (
edge.is_boundary_edge())
5726 el_pt->local_coordinate_of_node(
j,
s);
5751 if (
edge.is_boundary_edge())
5764 el_pt->local_coordinate_of_node(
j,
s);
5788 if (
edge.is_boundary_edge())
5801 el_pt->local_coordinate_of_node(
j,
s);
5826 if (
edge.is_boundary_edge())
5839 el_pt->local_coordinate_of_node(
j,
s);
5863 if (
edge.is_boundary_edge())
5876 el_pt->local_coordinate_of_node(
j,
s);
5901 if (
edge.is_boundary_edge())
5914 el_pt->local_coordinate_of_node(
j,
s);
5939 if (
edge.is_boundary_edge())
5952 el_pt->local_coordinate_of_node(
j,
s);
5977 if (
edge.is_boundary_edge())
5990 el_pt->local_coordinate_of_node(
j,
s);
6019 if (
face.is_boundary_face())
6032 el_pt->local_coordinate_of_node(
j,
s);
6061 if (
face.is_boundary_face())
6074 el_pt->local_coordinate_of_node(
j,
s);
6103 if (
face.is_boundary_face())
6116 el_pt->local_coordinate_of_node(
j,
s);
6139 el_pt->local_coordinate_of_node(
j,
s);
6157 el_pt->local_coordinate_of_node(
j,
s);
6175 el_pt->local_coordinate_of_node(
j,
s);
6190 for (
unsigned j = 0;
j < 8;
j++)
6230 s_tet[0] = 1.0 / 3.0;
6231 s_tet[1] = 1.0 / 3.0;
6255 s_tet[1] = 1.0 / 3.0;
6256 s_tet[2] = 1.0 / 3.0;
6268 s_tet[0] = 1.0 / 3.0;
6269 s_tet[1] = 1.0 / 3.0;
6270 s_tet[2] = 1.0 / 3.0;
6351 el_pt->local_coordinate_of_node(
j,
s);
6389 el_pt->local_coordinate_of_node(
j,
s);
6427 el_pt->local_coordinate_of_node(
j,
s);
6465 el_pt->local_coordinate_of_node(
j,
s);
6489 if (
face0.is_boundary_face())
6502 el_pt->local_coordinate_of_node(
j,
s);
6525 if (
face1.is_boundary_face())
6538 el_pt->local_coordinate_of_node(
j,
s);
6561 if (
face2.is_boundary_face())
6574 el_pt->local_coordinate_of_node(
j,
s);
6610 el_pt->local_coordinate_of_node(
j,
s);
6630 if (
edge.is_boundary_edge())
6643 el_pt->local_coordinate_of_node(
j,
s);
6668 if (
edge.is_boundary_edge())
6681 el_pt->local_coordinate_of_node(
j,
s);
6706 if (
edge.is_boundary_edge())
6719 el_pt->local_coordinate_of_node(
j,
s);
6743 if (
edge.is_boundary_edge())
6756 el_pt->local_coordinate_of_node(
j,
s);
6780 if (
edge.is_boundary_edge())
6793 el_pt->local_coordinate_of_node(
j,
s);
6818 if (
edge.is_boundary_edge())
6831 el_pt->local_coordinate_of_node(
j,
s);
6855 if (
edge.is_boundary_edge())
6868 el_pt->local_coordinate_of_node(
j,
s);
6893 if (
edge.is_boundary_edge())
6906 el_pt->local_coordinate_of_node(
j,
s);
6930 if (
edge.is_boundary_edge())
6943 el_pt->local_coordinate_of_node(
j,
s);
6968 if (
edge.is_boundary_edge())
6981 el_pt->local_coordinate_of_node(
j,
s);
7006 if (
edge.is_boundary_edge())
7019 el_pt->local_coordinate_of_node(
j,
s);
7044 if (
edge.is_boundary_edge())
7057 el_pt->local_coordinate_of_node(
j,
s);
7086 if (
face.is_boundary_face())
7099 el_pt->local_coordinate_of_node(
j,
s);
7128 if (
face.is_boundary_face())
7141 el_pt->local_coordinate_of_node(
j,
s);
7170 if (
face.is_boundary_face())
7183 el_pt->local_coordinate_of_node(
j,
s);
7206 el_pt->local_coordinate_of_node(
j,
s);
7224 el_pt->local_coordinate_of_node(
j,
s);
7248 for (
unsigned j = 0;
j < 8;
j++)
7288 s_tet[0] = 1.0 / 3.0;
7289 s_tet[1] = 1.0 / 3.0;
7312 s_tet[0] = 1.0 / 3.0;
7314 s_tet[2] = 1.0 / 3.0;
7327 s_tet[1] = 1.0 / 3.0;
7328 s_tet[2] = 1.0 / 3.0;
7409 el_pt->local_coordinate_of_node(
j,
s);
7447 el_pt->local_coordinate_of_node(
j,
s);
7485 el_pt->local_coordinate_of_node(
j,
s);
7523 el_pt->local_coordinate_of_node(
j,
s);
7547 if (
face0.is_boundary_face())
7560 el_pt->local_coordinate_of_node(
j,
s);
7583 if (
face1.is_boundary_face())
7596 el_pt->local_coordinate_of_node(
j,
s);
7619 if (
face2.is_boundary_face())
7632 el_pt->local_coordinate_of_node(
j,
s);
7668 el_pt->local_coordinate_of_node(
j,
s);
7687 if (
edge.is_boundary_edge())
7700 el_pt->local_coordinate_of_node(
j,
s);
7725 if (
edge.is_boundary_edge())
7738 el_pt->local_coordinate_of_node(
j,
s);
7762 if (
edge.is_boundary_edge())
7775 el_pt->local_coordinate_of_node(
j,
s);
7799 if (
edge.is_boundary_edge())
7812 el_pt->local_coordinate_of_node(
j,
s);
7836 if (
edge.is_boundary_edge())
7849 el_pt->local_coordinate_of_node(
j,
s);
7874 if (
edge.is_boundary_edge())
7887 el_pt->local_coordinate_of_node(
j,
s);
7911 if (
edge.is_boundary_edge())
7924 el_pt->local_coordinate_of_node(
j,
s);
7949 if (
edge.is_boundary_edge())
7962 el_pt->local_coordinate_of_node(
j,
s);
7986 if (
edge.is_boundary_edge())
7999 el_pt->local_coordinate_of_node(
j,
s);
8024 if (
edge.is_boundary_edge())
8037 el_pt->local_coordinate_of_node(
j,
s);
8062 if (
edge.is_boundary_edge())
8075 el_pt->local_coordinate_of_node(
j,
s);
8100 if (
edge.is_boundary_edge())
8113 el_pt->local_coordinate_of_node(
j,
s);
8142 if (
face.is_boundary_face())
8155 el_pt->local_coordinate_of_node(
j,
s);
8183 if (
face.is_boundary_face())
8196 el_pt->local_coordinate_of_node(
j,
s);
8225 if (
face.is_boundary_face())
8238 el_pt->local_coordinate_of_node(
j,
s);
8261 el_pt->local_coordinate_of_node(
j,
s);
8294 for (
unsigned j = 0;
j < 8;
j++)
8334 s_tet[0] = 1.0 / 3.0;
8335 s_tet[1] = 1.0 / 3.0;
8336 s_tet[2] = 1.0 / 3.0;
8359 s_tet[1] = 1.0 / 3.0;
8360 s_tet[2] = 1.0 / 3.0;
8372 s_tet[0] = 1.0 / 3.0;
8374 s_tet[2] = 1.0 / 3.0;
8455 el_pt->local_coordinate_of_node(
j,
s);
8493 el_pt->local_coordinate_of_node(
j,
s);
8531 el_pt->local_coordinate_of_node(
j,
s);
8569 el_pt->local_coordinate_of_node(
j,
s);
8593 if (
face0.is_boundary_face())
8606 el_pt->local_coordinate_of_node(
j,
s);
8629 if (
face1.is_boundary_face())
8642 el_pt->local_coordinate_of_node(
j,
s);
8665 if (
face2.is_boundary_face())
8678 el_pt->local_coordinate_of_node(
j,
s);
8714 el_pt->local_coordinate_of_node(
j,
s);
8733 if (
edge.is_boundary_edge())
8746 el_pt->local_coordinate_of_node(
j,
s);
8771 if (
edge.is_boundary_edge())
8784 el_pt->local_coordinate_of_node(
j,
s);
8808 if (
edge.is_boundary_edge())
8821 el_pt->local_coordinate_of_node(
j,
s);
8845 if (
edge.is_boundary_edge())
8858 el_pt->local_coordinate_of_node(
j,
s);
8882 if (
edge.is_boundary_edge())
8895 el_pt->local_coordinate_of_node(
j,
s);
8920 if (
edge.is_boundary_edge())
8933 el_pt->local_coordinate_of_node(
j,
s);
8957 if (
edge.is_boundary_edge())
8970 el_pt->local_coordinate_of_node(
j,
s);
8995 if (
edge.is_boundary_edge())
9008 el_pt->local_coordinate_of_node(
j,
s);
9032 if (
edge.is_boundary_edge())
9045 el_pt->local_coordinate_of_node(
j,
s);
9070 if (
edge.is_boundary_edge())
9083 el_pt->local_coordinate_of_node(
j,
s);
9108 if (
edge.is_boundary_edge())
9121 el_pt->local_coordinate_of_node(
j,
s);
9146 if (
edge.is_boundary_edge())
9159 el_pt->local_coordinate_of_node(
j,
s);
9188 if (
face.is_boundary_face())
9201 el_pt->local_coordinate_of_node(
j,
s);
9230 if (
face.is_boundary_face())
9243 el_pt->local_coordinate_of_node(
j,
s);
9272 if (
face.is_boundary_face())
9285 el_pt->local_coordinate_of_node(
j,
s);
9372 if (
face_pt->is_boundary_face())
9374 std::set<unsigned>
bnd;
9379 if ((*bnd_pt).size() > 1)
9382 error_stream <<
"TFace should only be on one boundary.\n";
9389 if ((*bnd_pt).size() == 1)
9400 <<
"Tet-element cannot be cast to SolidTElement<3,3>.\n"
9401 <<
"BrickFromTetMesh can only be built from\n"
9402 <<
"mesh containing quadratic tets.\n"
9419 error_stream <<
"Tet-element cannot be cast to TElement<3,3>.\n"
9420 <<
"BrickFromTetMesh can only be built from\n"
9421 <<
"mesh containing quadratic tets.\n"
9437 unsigned b = (*(*bnd_pt).begin());
9569 for (
unsigned i = 0;
i < 19;
i++)
9575 for (
unsigned j = 0;
j < 19;
j++)
9592 if (
dist > BrickFromTetMeshHelper::Face_position_tolerance)
9598 brick0.open(
"full_brick0.dat");
9599 brick1.open(
"full_brick1.dat");
9600 brick2.open(
"full_brick2.dat");
9601 brick3.open(
"full_brick3.dat");
9602 for (
unsigned j = 0;
j < 27;
j++)
9627 for (
unsigned j = 0;
j < 6;
j++)
9640 <<
"During assignment of boundary cordinates, the distance\n"
9641 <<
"between brick node and reference point in \n"
9642 <<
"triangular FaceElement is " <<
dist <<
" which \n"
9643 <<
"is bigger than the tolerance defined in \n"
9644 <<
"BrickFromTetMeshHelper::Face_position_tolerance="
9645 << BrickFromTetMeshHelper::Face_position_tolerance <<
".\n"
9646 <<
"If this is tolerable, increase the tolerance \n"
9647 <<
"(it's defined in a namespace and therefore publically\n"
9648 <<
"accessible). If not, the Face may be inverted in which \n"
9649 <<
"case you should re-implement the translation scheme,\n"
9650 <<
"following the pattern used in the "
9651 "ThinLayerBrickOnTetMesh."
9652 <<
"\nThe required code fragements are already here but \n"
9653 <<
"the translation is the unit map.\n"
9654 <<
"To aid the diagnostics, the files full_brick[0-3].dat\n"
9655 <<
"contain the coordinates of the 27 nodes in the four\n"
9656 <<
"bricks associated with the current tet and "
9658 <<
"contains the coordinates of the 6 nodes in the "
9660 <<
"\nfrom which the boundary coordinates are extracted.\n"
9661 <<
"FYI: The normal_sign of the face is: " <<
normal_sign
9739 for (
unsigned e = 0;
e < 4;
e++)
9741 for (
unsigned j = 0;
j < 8;
j++)