65 template<
class TPo
intType>
208 auto& r_points = this->
Points();
209 r_points.push_back(
typename PointType::Pointer(
new PointType(Point01)));
210 r_points.push_back(
typename PointType::Pointer(
new PointType(Point02)));
211 r_points.push_back(
typename PointType::Pointer(
new PointType(Point03)));
212 r_points.push_back(
typename PointType::Pointer(
new PointType(Point04)));
213 r_points.push_back(
typename PointType::Pointer(
new PointType(Point05)));
214 r_points.push_back(
typename PointType::Pointer(
new PointType(Point06)));
215 r_points.push_back(
typename PointType::Pointer(
new PointType(Point07)));
216 r_points.push_back(
typename PointType::Pointer(
new PointType(Point08)));
217 r_points.push_back(
typename PointType::Pointer(
new PointType(Point09)));
218 r_points.push_back(
typename PointType::Pointer(
new PointType(Point10)));
221 Triangle2D10(
typename PointType::Pointer pPoint01,
typename PointType::Pointer pPoint02,
222 typename PointType::Pointer pPoint03,
typename PointType::Pointer pPoint04,
223 typename PointType::Pointer pPoint05,
typename PointType::Pointer pPoint06,
224 typename PointType::Pointer pPoint07,
typename PointType::Pointer pPoint08,
225 typename PointType::Pointer pPoint09,
typename PointType::Pointer pPoint10)
228 auto& r_points = this->
Points();
229 r_points.push_back(pPoint01);
230 r_points.push_back(pPoint02);
231 r_points.push_back(pPoint03);
232 r_points.push_back(pPoint04);
233 r_points.push_back(pPoint05);
234 r_points.push_back(pPoint06);
235 r_points.push_back(pPoint07);
236 r_points.push_back(pPoint08);
237 r_points.push_back(pPoint09);
238 r_points.push_back(pPoint10);
252 :
BaseType(GeometryId, rThisPoints, &msGeometryData)
260 :
BaseType(rGeometryName, rThisPoints, &msGeometryData)
343 template<
class TOtherPo
intType>
361 return typename BaseType::Pointer(
new Triangle2D10(rThisPoints));
373 return typename BaseType::Pointer(
new Triangle2D10(NewGeometryId, rThisPoints));
384 p_geometry->SetData(rGeometry.
GetData());
396 auto p_geometry =
typename BaseType::Pointer(
new Triangle2D10(NewGeometryId, rGeometry.
Points()));
397 p_geometry->SetData(rGeometry.
GetData());
408 rResult.
resize(10, 2,
false);
410 const double oneThird = 1.0 / 3.0;
411 const double twoThird = 2.0 / 3.0;
422 rResult(3, 0) = oneThird;
425 rResult(4, 0) = twoThird;
428 rResult(5, 0) = twoThird;
429 rResult(5, 1) = oneThird;
431 rResult(6, 0) = oneThird;
432 rResult(6, 1) = twoThird;
435 rResult(7, 1) = twoThird;
438 rResult(8, 1) = oneThird;
440 rResult(9, 0) = oneThird;
441 rResult(9, 1) = oneThird;
467 return std::sqrt(std::abs(
Area()));
487 for (
unsigned int i = 0;
i < integration_points.size(); ++
i)
489 area +=
temp[
i] * integration_points[
i].Weight();
518 const double Tolerance = std::numeric_limits<double>::epsilon())
const override
521 if ((rResult[0] >= (0.0 - Tolerance)) && (rResult[0] <= (1.0 + Tolerance))) {
522 if ((rResult[1] >= (0.0 - Tolerance)) && (rResult[1] <= (1.0 + Tolerance))) {
523 if ((rResult[0] + rResult[1]) <= (1.0 + Tolerance)) {
543 if (rResult.size() != 10) rResult.
resize(10,
false);
544 const double xi = rCoordinates[0];
545 const double et = rCoordinates[1];
546 const double zt = 1.0 - xi - et;
548 rResult[0] = zt * (3.0 * zt - 1.0) * (3.0 * zt - 2.0) * 0.5;
549 rResult[1] = xi * (3.0 * xi - 1.0) * (3.0 * xi - 2.0) * 0.5;
550 rResult[2] = et * (3.0 * et - 1.0) * (3.0 * et - 2.0) * 0.5;
551 rResult[3] = xi * zt * (3.0 * zt - 1.0) * 4.5;
552 rResult[4] = xi * zt * (3.0 * xi - 1.0) * 4.5;
553 rResult[5] = xi * et * (3.0 * xi - 1.0) * 4.5;
554 rResult[6] = xi * et * (3.0 * et - 1.0) * 4.5;
555 rResult[7] = et * zt * (3.0 * et - 1.0) * 4.5;
556 rResult[8] = et * zt * (3.0 * zt - 1.0) * 4.5;
557 rResult[9] = xi * et * zt * 27.0;
573 const double xi = rPoint[0];
574 const double et = rPoint[1];
575 const double zt = 1.0 - xi - et;
578 switch (ShapeFunctionIndex)
581 shape = zt * (3.0 * zt - 1.0) * (3.0 * zt - 2.0) * 0.5;
584 shape = xi * (3.0 * xi - 1.0) * (3.0 * xi - 2.0) * 0.5;
587 shape = et * (3.0 * et - 1.0) * (3.0 * et - 2.0) * 0.5;
590 shape = xi * zt * (3.0 * zt - 1.0) * 4.5;
593 shape = xi * zt * (3.0 * xi - 1.0) * 4.5;
596 shape = xi * et * (3.0 * xi - 1.0) * 4.5;
599 shape = xi * et * (3.0 * et - 1.0) * 4.5;
602 shape = et * zt * (3.0 * et - 1.0) * 4.5;
605 shape = et * zt * (3.0 * zt - 1.0) * 4.5;
608 shape = xi * et * zt * 27.0;
611 KRATOS_ERROR <<
"Wrong index of shape function!" << *
this << std::endl;
629 std::string
Info()
const override
631 return "2 dimensional triangle with ten nodes in 2D space";
642 rOStream <<
"2 dimensional triangle with ten nodes in 2D space";
659 std::cout << std::endl;
665 rOStream <<
" Jacobian in the origin\t : " << jacobian;
753 = CalculateShapeFunctionsIntegrationPointsLocalGradients(ThisMethod);
756 for (
int pnt = 0; pnt < integration_points_number; ++pnt)
758 Result[pnt] = localGradients[pnt];
771 = CalculateShapeFunctionsIntegrationPointsLocalGradients(ThisMethod);
774 for (
int pnt = 0; pnt < integration_points_number; ++pnt)
776 Result[pnt] = localGradients[pnt];
792 rResult.
resize(10, 2,
false);
793 const double xi = rPoint[0];
794 const double et = rPoint[1];
795 const double zt = 1.0 - xi - et;
799 rResult(0, 0) = -4.5 * zt * (3.0 * zt - 2.0) - 1.0;
800 rResult(0, 1) = -4.5 * zt * (3.0 * zt - 2.0) - 1.0;
802 rResult(1, 0) = 4.5 * xi * (3.0 * xi - 2.0) + 1.0;
806 rResult(2, 1) = 4.5 * et * (3.0 * et - 2.0) + 1.0;
808 rResult(3, 0) = 4.5 * (zt * (3.0 * zt - 1.0) - xi * (6.0 * zt - 1.0));
809 rResult(3, 1) = -4.5 * xi * (6.0 * zt - 1.0);
811 rResult(4, 0) = 4.5 * (zt * (6.0 * xi - 1.0) - xi * (3.0 * xi - 1.0));
812 rResult(4, 1) = -4.5 * xi * (3.0 * xi - 1.0);
814 rResult(5, 0) = 4.5 * et * (6.0 * xi - 1.0);
815 rResult(5, 1) = 4.5 * xi * (3.0 * xi - 1.0);
817 rResult(6, 0) = 4.5 * et * (3.0 * et - 1.0);
818 rResult(6, 1) = 4.5 * xi * (6.0 * et - 1.0);
820 rResult(7, 0) = -4.5 * et * (3.0 * et - 1.0);
821 rResult(7, 1) = 4.5 * (zt * (6.0 * et - 1.0) - et * (3.0 * et - 1.0));
823 rResult(8, 0) = -4.5 * et * (6.0 * zt - 1.0);
824 rResult(8, 1) = 4.5 * (zt * (3.0 * zt - 1.0) - et * (6.0 * zt - 1.0));
826 rResult(9, 0) = 27.0 * et * (zt - xi);
827 rResult(9, 1) = 27.0 * xi * (zt - et);
843 rResult.
resize(10, 2,
false);
845 const double xi = rPoint[0];
846 const double et = rPoint[1];
847 const double zt = 1.0 - xi - et;
851 rResult(0, 0) = -4.5 * zt * (3.0 * zt - 2.0) - 1.0;
852 rResult(0, 1) = -4.5 * zt * (3.0 * zt - 2.0) - 1.0;
854 rResult(1, 0) = 4.5 * xi * (3.0 * xi - 2.0) + 1.0;
858 rResult(2, 1) = 4.5 * et * (3.0 * et - 2.0) + 1.0;
860 rResult(3, 0) = 4.5 * (zt * (3.0 * zt - 1.0) - xi * (6.0 * zt - 1.0));
861 rResult(3, 1) = -4.5 * xi * (6.0 * zt - 1.0);
863 rResult(4, 0) = 4.5 * (zt * (6.0 * xi - 1.0) - xi * (3.0 * xi - 1.0));
864 rResult(4, 1) = -4.5 * xi * (3.0 * xi - 1.0);
866 rResult(5, 0) = 4.5 * et * (6.0 * xi - 1.0);
867 rResult(5, 1) = 4.5 * xi * (3.0 * xi - 1.0);
869 rResult(6, 0) = 4.5 * et * (3.0 * et - 1.0);
870 rResult(6, 1) = 4.5 * xi * (6.0 * et - 1.0);
872 rResult(7, 0) = -4.5 * et * (3.0 * et - 1.0);
873 rResult(7, 1) = 4.5 * (zt * (6.0 * et - 1.0) - et * (3.0 * et - 1.0));
875 rResult(8, 0) = -4.5 * et * (6.0 * zt - 1.0);
876 rResult(8, 1) = 4.5 * (zt * (3.0 * zt - 1.0) - et * (6.0 * zt - 1.0));
878 rResult(9, 0) = 27.0 * et * (zt - xi);
879 rResult(9, 1) = 27.0 * xi * (zt - et);
893 if (rResult.size() != this->PointsNumber())
899 rResult[0].
resize(2, 2,
false);
900 rResult[1].
resize(2, 2,
false);
901 rResult[2].
resize(2, 2,
false);
902 rResult[3].
resize(2, 2,
false);
903 rResult[4].
resize(2, 2,
false);
904 rResult[5].
resize(2, 2,
false);
905 rResult[6].
resize(2, 2,
false);
906 rResult[7].
resize(2, 2,
false);
907 rResult[8].
resize(2, 2,
false);
908 rResult[9].
resize(2, 2,
false);
910 const double xi = rPoint[0];
911 const double et = rPoint[1];
912 const double zt = 1.0 - xi - et;
914 rResult[0](0, 0) = 9.0 * (3.0 * zt - 1.0);
915 rResult[0](0, 1) = 9.0 * (3.0 * zt - 1.0);
916 rResult[0](1, 0) = 9.0 * (3.0 * zt - 1.0);
917 rResult[0](1, 1) = 9.0 * (3.0 * zt - 1.0);
919 rResult[1](0, 0) = 9.0 * (3.0 * xi - 1.0);
920 rResult[1](0, 1) = 0.0;
921 rResult[1](1, 0) = 0.0;
922 rResult[1](1, 1) = 0.0;
924 rResult[2](0, 0) = 0.0;
925 rResult[2](0, 1) = 0.0;
926 rResult[2](1, 0) = 0.0;
927 rResult[2](1, 1) = 9.0 * (3.0 * et - 1.0);
929 rResult[3](0, 0) = 9.0 * (3.0 * xi - 6.0 * zt + 1.0);
930 rResult[3](0, 1) = 4.5 * (6.0 * xi - 6.0 * zt + 1.0);
931 rResult[3](1, 0) = 4.5 * (6.0 * xi - 6.0 * zt + 1.0);
932 rResult[3](1, 1) = 27.0 * xi;
934 rResult[4](0, 0) = 9.0 * (3.0 * zt - 6.0 * xi + 1.0);
935 rResult[4](0, 1) = -4.5 * (6.0 * xi - 1.0);
936 rResult[4](1, 0) = -4.5 * (6.0 * xi - 1.0);
937 rResult[4](1, 1) = 0.0;
939 rResult[5](0, 0) = 27.0 * et;
940 rResult[5](0, 1) = 4.5 * (6.0 * xi - 1.0);
941 rResult[5](1, 0) = 4.5 * (6.0 * xi - 1.0);
942 rResult[5](1, 1) = 0.0;
944 rResult[6](0, 0) = 0.0;
945 rResult[6](0, 1) = 4.5 * (6.0 * et - 1.0);
946 rResult[6](1, 0) = 4.5 * (6.0 * et - 1.0);
947 rResult[6](1, 1) = 27.0 * xi;
949 rResult[7](0, 0) = 0.0;
950 rResult[7](0, 1) = 4.5 * (6.0 * et - 1.0);
951 rResult[7](1, 0) = 4.5 * (6.0 * et - 1.0);
952 rResult[7](1, 1) = 9.0 * (3.0 * zt - 6.0 * et + 1.0);
954 rResult[8](0, 0) = 27.0 * et;
955 rResult[8](0, 1) = 4.5 * (6.0 * et - 6.0 * zt + 1.0);
956 rResult[8](1, 0) = 4.5 * (6.0 * et - 6.0 * zt + 1.0);
957 rResult[8](1, 1) = 9.0 * (3.0 * et - 6.0 * zt + 1.0);
959 rResult[9](0, 0) = -54.0 * et;
960 rResult[9](0, 1) = -27.0 * (xi - zt + et);
961 rResult[9](1, 0) = -27.0 * (xi - zt + et);
962 rResult[9](1, 1) = -54.0 * xi;
976 if (rResult.size() != this->PointsNumber())
988 rResult[0][0].
resize(2, 2,
false);
989 rResult[0][1].
resize(2, 2,
false);
990 rResult[1][0].
resize(2, 2,
false);
991 rResult[1][1].
resize(2, 2,
false);
992 rResult[2][0].
resize(2, 2,
false);
993 rResult[2][1].
resize(2, 2,
false);
994 rResult[3][0].
resize(2, 2,
false);
995 rResult[3][1].
resize(2, 2,
false);
996 rResult[4][0].
resize(2, 2,
false);
997 rResult[4][1].
resize(2, 2,
false);
998 rResult[5][0].
resize(2, 2,
false);
999 rResult[5][1].
resize(2, 2,
false);
1000 rResult[6][0].
resize(2, 2,
false);
1001 rResult[6][1].
resize(2, 2,
false);
1002 rResult[7][0].
resize(2, 2,
false);
1003 rResult[7][1].
resize(2, 2,
false);
1004 rResult[8][0].
resize(2, 2,
false);
1005 rResult[8][1].
resize(2, 2,
false);
1006 rResult[9][0].
resize(2, 2,
false);
1007 rResult[9][1].
resize(2, 2,
false);
1009 rResult[0][0](0, 0) = -27.0;
1010 rResult[0][0](0, 1) = -27.0;
1011 rResult[0][0](1, 0) = -27.0;
1012 rResult[0][0](1, 1) = -27.0;
1013 rResult[0][1](0, 0) = -27.0;
1014 rResult[0][1](0, 1) = -27.0;
1015 rResult[0][1](1, 0) = -27.0;
1016 rResult[0][1](1, 1) = -27.0;
1018 rResult[1][0](0, 0) = 27.0;
1019 rResult[1][0](0, 1) = 0.0;
1020 rResult[1][0](1, 0) = 0.0;
1021 rResult[1][0](1, 1) = 0.0;
1022 rResult[1][1](0, 0) = 0.0;
1023 rResult[1][1](0, 1) = 0.0;
1024 rResult[1][1](1, 0) = 0.0;
1025 rResult[1][1](1, 1) = 0.0;
1027 rResult[2][0](0, 0) = 0.0;
1028 rResult[2][0](0, 1) = 0.0;
1029 rResult[2][0](1, 0) = 0.0;
1030 rResult[2][0](1, 1) = 0.0;
1031 rResult[2][1](0, 0) = 0.0;
1032 rResult[2][1](0, 1) = 0.0;
1033 rResult[2][1](1, 0) = 0.0;
1034 rResult[2][1](1, 1) = 27.0;
1036 rResult[3][0](0, 0) = 81.0;
1037 rResult[3][0](0, 1) = 54.0;
1038 rResult[3][0](1, 0) = 54.0;
1039 rResult[3][0](1, 1) = 27.0;
1040 rResult[3][1](0, 0) = 54.0;
1041 rResult[3][1](0, 1) = 27.0;
1042 rResult[3][1](1, 0) = 27.0;
1043 rResult[3][1](1, 1) = 0.0;
1045 rResult[4][0](0, 0) = -81.0;
1046 rResult[4][0](0, 1) = -27.0;
1047 rResult[4][0](1, 0) = -27.0;
1048 rResult[4][0](1, 1) = 0.0;
1049 rResult[4][1](0, 0) = -27.0;
1050 rResult[4][1](0, 1) = 0.0;
1051 rResult[4][1](1, 0) = 0.0;
1052 rResult[4][1](1, 1) = 0.0;
1054 rResult[5][0](0, 0) = 0.0;
1055 rResult[5][0](0, 1) = 27.0;
1056 rResult[5][0](1, 0) = 27.0;
1057 rResult[5][0](1, 1) = 0.0;
1058 rResult[5][1](0, 0) = 27.0;
1059 rResult[5][1](0, 1) = 0.0;
1060 rResult[5][1](1, 0) = 0.0;
1061 rResult[5][1](1, 1) = 0.0;
1063 rResult[6][0](0, 0) = 0.0;
1064 rResult[6][0](0, 1) = 0.0;
1065 rResult[6][0](1, 0) = 0.0;
1066 rResult[6][0](1, 1) = 27.0;
1067 rResult[6][1](0, 0) = 0.0;
1068 rResult[6][1](0, 1) = 27.0;
1069 rResult[6][1](1, 0) = 27.0;
1070 rResult[6][1](1, 1) = 0.0;
1072 rResult[7][0](0, 0) = 0.0;
1073 rResult[7][0](0, 1) = 0.0;
1074 rResult[7][0](1, 0) = 0.0;
1075 rResult[7][0](1, 1) = -27.0;
1076 rResult[7][1](0, 0) = 0.0;
1077 rResult[7][1](0, 1) = -27.0;
1078 rResult[7][1](1, 0) = -27.0;
1079 rResult[7][1](1, 1) = -81.0;
1081 rResult[8][0](0, 0) = 0.0;
1082 rResult[8][0](0, 1) = 27.0;
1083 rResult[8][0](1, 0) = 27.0;
1084 rResult[8][0](1, 1) = 54.0;
1085 rResult[8][1](0, 0) = 27.0;
1086 rResult[8][1](0, 1) = 54.0;
1087 rResult[8][1](1, 0) = 54.0;
1088 rResult[8][1](1, 1) = 81.0;
1090 rResult[9][0](0, 0) = 0.0;
1091 rResult[9][0](0, 1) = -54.0;
1092 rResult[9][0](1, 0) = -54.0;
1093 rResult[9][0](1, 1) = -54.0;
1094 rResult[9][1](0, 0) = -54.0;
1095 rResult[9][1](0, 1) = -54.0;
1096 rResult[9][1](1, 0) = -54.0;
1097 rResult[9][1](1, 1) = 0.0;
1127 void save(
Serializer& rSerializer)
const override
1163 const int integration_points_number = integration_points.size();
1165 const int points_number = 10;
1167 Matrix shape_function_values(integration_points_number, points_number);
1169 for (
int pnt = 0; pnt < integration_points_number; ++pnt)
1171 const double xi = integration_points[pnt].X();
1172 const double et = integration_points[pnt].Y();
1173 const double zt = 1.0 - xi - et;
1175 shape_function_values(pnt, 0) = zt * (3.0 * zt - 1.0) * (3.0 * zt - 2.0) * 0.5;
1176 shape_function_values(pnt, 1) = xi * (3.0 * xi - 1.0) * (3.0 * xi - 2.0) * 0.5;
1177 shape_function_values(pnt, 2) = et * (3.0 * et - 1.0) * (3.0 * et - 2.0) * 0.5;
1178 shape_function_values(pnt, 3) = xi * zt * (3.0 * zt - 1.0) * 4.5;
1179 shape_function_values(pnt, 4) = xi * zt * (3.0 * xi - 1.0) * 4.5;
1180 shape_function_values(pnt, 5) = xi * et * (3.0 * xi - 1.0) * 4.5;
1181 shape_function_values(pnt, 6) = xi * et * (3.0 * et - 1.0) * 4.5;
1182 shape_function_values(pnt, 7) = et * zt * (3.0 * et - 1.0) * 4.5;
1183 shape_function_values(pnt, 8) = et * zt * (3.0 * zt - 1.0) * 4.5;
1184 shape_function_values(pnt, 9) = xi * et * zt * 27.0;
1186 return shape_function_values;
1204 const int integration_points_number = integration_points.size();
1207 for (
int pnt = 0; pnt < integration_points_number; ++pnt)
1210 const double xi = integration_points[pnt].X();
1211 const double et = integration_points[pnt].Y();
1212 const double zt = 1.0 - xi - et;
1216 result(0, 0) = -4.5 * zt * (3.0 * zt - 2.0) - 1.0;
1217 result(0, 1) = -4.5 * zt * (3.0 * zt - 2.0) - 1.0;
1219 result(1, 0) = 4.5 * xi * (3.0 * xi - 2.0) + 1.0;
1223 result(2, 1) = 4.5 * et * (3.0 * et - 2.0) + 1.0;
1225 result(3, 0) = 4.5 * (zt * (3.0 * zt - 1.0) - xi * (6.0 * zt - 1.0));
1226 result(3, 1) = -4.5 * xi * (6.0 * zt - 1.0);
1228 result(4, 0) = 4.5 * (zt * (6.0 * xi - 1.0) - xi * (3.0 * xi - 1.0));
1229 result(4, 1) = -4.5 * xi * (3.0 * xi - 1.0);
1231 result(5, 0) = 4.5 * et * (6.0 * xi - 1.0);
1232 result(5, 1) = 4.5 * xi * (3.0 * xi - 1.0);
1234 result(6, 0) = 4.5 * et * (3.0 * et - 1.0);
1235 result(6, 1) = 4.5 * xi * (6.0 * et - 1.0);
1237 result(7, 0) = -4.5 * et * (3.0 * et - 1.0);
1238 result(7, 1) = 4.5 * (zt * (6.0 * et - 1.0) - et * (3.0 * et - 1.0));
1240 result(8, 0) = -4.5 * et * (6.0 * zt - 1.0);
1241 result(8, 1) = 4.5 * (zt * (3.0 * zt - 1.0) - et * (6.0 * zt - 1.0));
1243 result(9, 0) = 27.0 * et * (zt - xi);
1244 result(9, 1) = 27.0 * xi * (zt - et);
1246 d_shape_f_values[pnt] = result;
1248 return d_shape_f_values;
1256 Quadrature<TriangleGaussLegendreIntegrationPoints1, 2, IntegrationPoint<3>>::GenerateIntegrationPoints(),
1257 Quadrature<TriangleGaussLegendreIntegrationPoints2, 2, IntegrationPoint<3>>::GenerateIntegrationPoints(),
1258 Quadrature<TriangleGaussLegendreIntegrationPoints3, 2, IntegrationPoint<3>>::GenerateIntegrationPoints(),
1259 Quadrature<TriangleGaussLegendreIntegrationPoints4, 2, IntegrationPoint<3>>::GenerateIntegrationPoints(),
1260 Quadrature<TriangleGaussLegendreIntegrationPoints5, 2, IntegrationPoint<3>>::GenerateIntegrationPoints()
1263 return integration_points;
1278 return shape_functions_values;
1293 return shape_functions_local_gradients;
1328 template<
class TPo
intType>
1334 template<
class TPo
intType>
1338 rOStream << std::endl;
1345 template<
class TPo
intType>
const
1346 GeometryData Triangle2D10<TPointType>::msGeometryData(
1349 Triangle2D10<TPointType>::AllIntegrationPoints(),
1350 Triangle2D10<TPointType>::AllShapeFunctionsValues(),
1351 AllShapeFunctionsLocalGradients());
1353 template<
class TPo
intType>
Definition: geometry_data.h:60
KratosGeometryType
Definition: geometry_data.h:110
SizeType IntegrationPointsNumber() const
Definition: geometry_data.h:430
IntegrationMethod
Definition: geometry_data.h:76
KratosGeometryFamily
Definition: geometry_data.h:91
IntegrationMethod DefaultIntegrationMethod() const
Definition: geometry_data.h:425
Definition: geometry_dimension.h:42
Geometry base class.
Definition: geometry.h:71
SizeType PointsNumber() const
Definition: geometry.h:528
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: geometry.h:3834
Geometry & operator=(const Geometry &rOther)
Definition: geometry.h:400
std::vector< IntegrationPointType > IntegrationPointsArrayType
Definition: geometry.h:161
DataValueContainer & GetData()
Definition: geometry.h:591
std::size_t SizeType
Definition: geometry.h:144
const TPointType::Pointer pGetPoint(const int Index) const
Definition: geometry.h:1790
std::size_t IndexType
Definition: geometry.h:137
std::array< Matrix, static_cast< int >GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> ShapeFunctionsValuesContainerType
Definition: geometry.h:172
Vector & DeterminantOfJacobian(Vector &rResult) const
Definition: geometry.h:3154
virtual CoordinatesArrayType & PointLocalCoordinates(CoordinatesArrayType &rResult, const CoordinatesArrayType &rPoint) const
Returns the local coordinates of a given arbitrary point.
Definition: geometry.h:1854
const PointsArrayType & Points() const
Definition: geometry.h:1768
bool AllPointsAreValid() const
Checks if the geometry points are valid Checks if the geometry points are valid from the pointer valu...
Definition: geometry.h:4093
std::array< IntegrationPointsArrayType, static_cast< int >GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> IntegrationPointsContainerType
Definition: geometry.h:167
const IntegrationPointsArrayType & IntegrationPoints() const
Definition: geometry.h:2284
JacobiansType & Jacobian(JacobiansType &rResult) const
Definition: geometry.h:2901
GeometryData::ShapeFunctionsLocalGradientsContainerType ShapeFunctionsLocalGradientsContainerType
Definition: geometry.h:177
GeometryData::IntegrationMethod IntegrationMethod
Definition: geometry.h:122
Short class definition.
Definition: integration_point.h:52
Definition: amatrix_interface.h:41
void swap(Matrix &Other)
Definition: amatrix_interface.h:289
void resize(std::size_t NewSize1, std::size_t NewSize2, bool preserve=0)
Definition: amatrix_interface.h:224
An three node 2D line geometry with cubic shape functions.
Definition: line_2d_4.h:62
This class defines the node.
Definition: node.h:65
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
void push_back(const TPointerType &x)
Definition: pointer_vector.h:270
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
A ten node 2D triangular geometry with cubic shape functions.
Definition: triangle_2d_10.h:67
Triangle2D10(typename PointType::Pointer pPoint01, typename PointType::Pointer pPoint02, typename PointType::Pointer pPoint03, typename PointType::Pointer pPoint04, typename PointType::Pointer pPoint05, typename PointType::Pointer pPoint06, typename PointType::Pointer pPoint07, typename PointType::Pointer pPoint08, typename PointType::Pointer pPoint09, typename PointType::Pointer pPoint10)
Definition: triangle_2d_10.h:221
void NodesInFaces(DenseMatrix< unsigned int > &NodesInFaces) const override
Definition: triangle_2d_10.h:720
BaseType::NormalType NormalType
Definition: triangle_2d_10.h:197
BaseType::IntegrationPointsArrayType IntegrationPointsArrayType
Definition: triangle_2d_10.h:143
Triangle2D10 & operator=(Triangle2D10< TOtherPointType > const &rOther)
Definition: triangle_2d_10.h:344
BaseType::ShapeFunctionsSecondDerivativesType ShapeFunctionsSecondDerivativesType
Definition: triangle_2d_10.h:184
BaseType::Pointer Create(const IndexType NewGeometryId, const BaseType &rGeometry) const override
Creates a new geometry pointer.
Definition: triangle_2d_10.h:394
BaseType::PointsArrayType PointsArrayType
Definition: triangle_2d_10.h:123
BaseType::GeometriesArrayType GeometriesArrayType
Definition: triangle_2d_10.h:97
SizeType EdgesNumber() const override
This method gives you number of all edges of this geometry.
Definition: triangle_2d_10.h:684
Geometry< TPointType > BaseType
Definition: triangle_2d_10.h:76
Matrix & PointsLocalCoordinates(Matrix &rResult) const override
Definition: triangle_2d_10.h:406
BaseType::ShapeFunctionsValuesContainerType ShapeFunctionsValuesContainerType
Definition: triangle_2d_10.h:156
Line2D4< TPointType > EdgeType
Definition: triangle_2d_10.h:81
BaseType::JacobiansType JacobiansType
Definition: triangle_2d_10.h:169
~Triangle2D10() override
Definition: triangle_2d_10.h:299
bool IsInside(const CoordinatesArrayType &rPoint, CoordinatesArrayType &rResult, const double Tolerance=std::numeric_limits< double >::epsilon()) const override
Returns whether given arbitrary point is inside the Geometry and the respective local point for the g...
Definition: triangle_2d_10.h:517
Triangle2D10(const PointType &Point01, const PointType &Point02, const PointType &Point03, const PointType &Point04, const PointType &Point05, const PointType &Point06, const PointType &Point07, const PointType &Point08, const PointType &Point09, const PointType &Point10)
Definition: triangle_2d_10.h:203
double ShapeFunctionValue(IndexType ShapeFunctionIndex, const CoordinatesArrayType &rPoint) const override
Definition: triangle_2d_10.h:571
Triangle2D10(Triangle2D10 const &rOther)
Definition: triangle_2d_10.h:275
BaseType::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
Definition: triangle_2d_10.h:176
BaseType::IntegrationPointsContainerType IntegrationPointsContainerType
Definition: triangle_2d_10.h:150
double Length() const override
Definition: triangle_2d_10.h:465
BaseType::ShapeFunctionsLocalGradientsContainerType ShapeFunctionsLocalGradientsContainerType
Definition: triangle_2d_10.h:162
TPointType PointType
Definition: triangle_2d_10.h:102
Triangle2D10(const IndexType GeometryId, const PointsArrayType &rThisPoints)
Constructor with Geometry Id.
Definition: triangle_2d_10.h:251
SizeType FacesNumber() const override
Returns the number of faces of the current geometry.
Definition: triangle_2d_10.h:706
BaseType::IndexType IndexType
Definition: triangle_2d_10.h:110
virtual ShapeFunctionsGradientsType ShapeFunctionsLocalGradients(IntegrationMethod ThisMethod)
Definition: triangle_2d_10.h:750
ShapeFunctionsSecondDerivativesType & ShapeFunctionsSecondDerivatives(ShapeFunctionsSecondDerivativesType &rResult, const CoordinatesArrayType &rPoint) const override
Definition: triangle_2d_10.h:890
Vector & ShapeFunctionsValues(Vector &rResult, const CoordinatesArrayType &rCoordinates) const override
Returns vector of shape function values at local coordinate.
Definition: triangle_2d_10.h:541
BaseType::CoordinatesArrayType CoordinatesArrayType
Definition: triangle_2d_10.h:128
BaseType::Pointer Create(const IndexType NewGeometryId, PointsArrayType const &rThisPoints) const override
Creates a new geometry pointer.
Definition: triangle_2d_10.h:370
GeometryData::KratosGeometryType GetGeometryType() const override
Definition: triangle_2d_10.h:306
virtual Matrix & ShapeFunctionsGradients(Matrix &rResult, const CoordinatesArrayType &rPoint)
Definition: triangle_2d_10.h:841
Matrix & ShapeFunctionsLocalGradients(Matrix &rResult, const CoordinatesArrayType &rPoint) const override
Definition: triangle_2d_10.h:790
friend class Triangle2D10
Definition: triangle_2d_10.h:1308
GeometriesArrayType GenerateEdges() const override
This method gives you all edges of this geometry.
Definition: triangle_2d_10.h:697
ShapeFunctionsThirdDerivativesType & ShapeFunctionsThirdDerivatives(ShapeFunctionsThirdDerivativesType &rResult, const CoordinatesArrayType &rPoint) const override
Definition: triangle_2d_10.h:973
BaseType::IntegrationPointType IntegrationPointType
Definition: triangle_2d_10.h:134
GeometryData::IntegrationMethod IntegrationMethod
Definition: triangle_2d_10.h:91
BaseType::SizeType SizeType
Definition: triangle_2d_10.h:117
void NumberNodesInFaces(DenseVector< unsigned int > &NumberNodesInFaces) const override
Definition: triangle_2d_10.h:712
GeometryData::KratosGeometryFamily GetGeometryFamily() const override
Definition: triangle_2d_10.h:301
double DomainSize() const override
Definition: triangle_2d_10.h:504
KRATOS_CLASS_POINTER_DEFINITION(Triangle2D10)
Triangle2D10(const PointsArrayType &ThisPoints)
Definition: triangle_2d_10.h:241
std::string Info() const override
Definition: triangle_2d_10.h:629
virtual ShapeFunctionsGradientsType ShapeFunctionsLocalGradients()
Definition: triangle_2d_10.h:767
void PrintInfo(std::ostream &rOStream) const override
Definition: triangle_2d_10.h:640
Triangle2D10(Triangle2D10< TOtherPointType > const &rOther)
Definition: triangle_2d_10.h:291
BaseType::ShapeFunctionsThirdDerivativesType ShapeFunctionsThirdDerivativesType
Definition: triangle_2d_10.h:192
BaseType::Pointer Create(PointsArrayType const &rThisPoints) const override
Creates a new geometry pointer.
Definition: triangle_2d_10.h:359
double Area() const override
Definition: triangle_2d_10.h:481
BaseType::Pointer Create(const BaseType &rGeometry) const override
Creates a new geometry pointer.
Definition: triangle_2d_10.h:381
Triangle2D10 & operator=(const Triangle2D10 &rOther)
Definition: triangle_2d_10.h:326
void PrintData(std::ostream &rOStream) const override
Definition: triangle_2d_10.h:655
Triangle2D10(const std::string &rGeometryName, const PointsArrayType &rThisPoints)
Constructor with Geometry Name.
Definition: triangle_2d_10.h:259
Short class definition.
Definition: array_1d.h:61
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
#define KRATOS_ERROR
Definition: exception.h:161
#define KRATOS_ERROR_IF(conditional)
Definition: exception.h:162
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
const GeometryData Triangle2D10< TPointType >::msGeometryData & msGeometryDimension(), Triangle2D10< TPointType >::AllShapeFunctionsValues(), AllShapeFunctionsLocalGradients()
Definition: brep_curve.h:483
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
Internals::Matrix< double, AMatrix::dynamic, AMatrix::dynamic > Matrix
Definition: amatrix_interface.h:470
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
const GeometryData BrepCurve< TContainerPointType, TContainerPointEmbeddedType >::msGeometryData & msGeometryDimension
Definition: brep_curve.h:483
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
def load(f)
Definition: ode_solve.py:307
float temp
Definition: rotating_cone.py:85
integer i
Definition: TensorModule.f:17