27 #include "utilities/geometry_utilities.h"
72 template<
class TPo
intType>
163 typename PointType::Pointer pPoint2,
164 typename PointType::Pointer pPoint3,
165 typename PointType::Pointer pPoint4,
166 typename PointType::Pointer pPoint5,
167 typename PointType::Pointer pPoint6,
168 typename PointType::Pointer pPoint7,
169 typename PointType::Pointer pPoint8,
170 typename PointType::Pointer pPoint9,
171 typename PointType::Pointer pPoint10
193 :
BaseType( ThisPoints, &msGeometryData )
202 ) :
BaseType(GeometryId, rThisPoints, &msGeometryData)
209 const std::string& rGeometryName,
211 ) :
BaseType(rGeometryName, rThisPoints, &msGeometryData)
292 template<
class TOtherPo
intType>
313 return typename BaseType::Pointer(
new Tetrahedra3D10( rThisPoints ) );
327 return typename BaseType::Pointer(
new Tetrahedra3D10( NewGeometryId, rThisPoints ) );
340 p_geometry->SetData(rGeometry.
GetData());
355 auto p_geometry =
typename BaseType::Pointer(
new Tetrahedra3D10( NewGeometryId, rGeometry.
Points() ) );
356 p_geometry->SetData(rGeometry.
GetData());
444 if (this->FacesArePlanar()) {
462 const double Tolerance = std::numeric_limits<double>::epsilon()
467 if ( (rResult[0] >= (0.0 - Tolerance)) && (rResult[0] <= (1.0 + Tolerance)) ) {
468 if ( (rResult[1] >= (0.0 - Tolerance)) && (rResult[1] <= (1.0 + Tolerance)) ) {
469 if ( (rResult[2] >= (0.0 - Tolerance)) && (rResult[2] <= (1.0 + Tolerance)) ) {
470 if ((( 1.0 - ( rResult[0] + rResult[1] + rResult[2] ) ) >= (0.0 - Tolerance) ) && (( 1.0 - ( rResult[0] + rResult[1] + rResult[2] ) ) <= (1.0 + Tolerance) ) ) {
606 return std::accumulate(
610 [](
double sum,
const auto& rEdge) {return sum + rEdge.Length();}
611 ) * 0.16666666666666666667;
616 if(rResult.size1()!= 10 || rResult.size2()!= 3)
617 rResult.
resize(10, 3,
false);
657 ShapeFunctionsValuesImpl(rResult, rCoordinates);
673 double fourthCoord = 1.0 - ( rPoint[0] + rPoint[1] + rPoint[2] );
675 switch ( ShapeFunctionIndex )
678 return( fourthCoord*( 2*fourthCoord - 1 ) );
680 return( rPoint[0]*( 2*rPoint[0] - 1 ) );
682 return( rPoint[1]*( 2*rPoint[1] - 1 ) );
684 return( rPoint[2]*( 2*rPoint[2] - 1 ) );
686 return( 4*fourthCoord*rPoint[0] );
688 return( 4*rPoint[0]*rPoint[1] );
690 return( 4*fourthCoord*rPoint[1] );
692 return( 4*fourthCoord*rPoint[2] );
694 return( 4*rPoint[0]*rPoint[2] );
696 return( 4*rPoint[1]*rPoint[2] );
698 KRATOS_ERROR <<
"Wrong index of shape function!" << *
this << std::endl;
707 const double fourthCoord = 1.0 - (rPoint[0] + rPoint[1] + rPoint[2]);
711 rResult(0, 0) = -(4.0 * fourthCoord - 1.0);
712 rResult(0, 1) = -(4.0 * fourthCoord - 1.0);
713 rResult(0, 2) = -(4.0 * fourthCoord - 1.0);
714 rResult(1, 0) = 4.0 * rPoint[0] - 1.0;
718 rResult(2, 1) = 4.0 * rPoint[1] - 1.0;
722 rResult(3, 2) = 4.0 * rPoint[2] - 1.0;
723 rResult(4, 0) = -4.0 * rPoint[0] + 4.0 * fourthCoord;
724 rResult(4, 1) = -4.0 * rPoint[0];
725 rResult(4, 2) = -4.0 * rPoint[0];
726 rResult(5, 0) = 4.0 * rPoint[1];
727 rResult(5, 1) = 4.0 * rPoint[0];
729 rResult(6, 0) = -4.0 * rPoint[1];
730 rResult(6, 1) = -4.0 * rPoint[1] + 4.0 * fourthCoord;
731 rResult(6, 2) = -4.0 * rPoint[1];
732 rResult(7, 0) = -4.0 * rPoint[2];
733 rResult(7, 1) = -4.0 * rPoint[2];
734 rResult(7, 2) = -4.0 * rPoint[2] + 4.0 * fourthCoord;
735 rResult(8, 0) = 4.0 * rPoint[2];
737 rResult(8, 2) = 4.0 * rPoint[0];
739 rResult(9, 1) = 4.0 * rPoint[2];
740 rResult(9, 2) = 4.0 * rPoint[1];
757 if (this->FacesArePlanar()) {
765 KRATOS_ERROR <<
"\"HasIntersection\" is not implemented for non-planar 10 noded tetrahedra.";
788 const double Tolerance = std::numeric_limits<double>::epsilon()
792 const Point point(rPointGlobalCoordinates);
796 if (this->
IsInside(rPointGlobalCoordinates, aux_coordinates, Tolerance)) {
801 std::array<double, 4> distances;
806 const auto min = std::min_element(distances.begin(), distances.end());
821 std::string
Info()
const override
823 return "3 dimensional tetrahedra with ten nodes in 3D space";
835 rOStream <<
"3 dimensional tetrahedra with ten nodes in 3D space";
851 std::cout << std::endl;
857 rOStream <<
" Jacobian in the origin\t : " << jacobian;
874 void save(
Serializer& rSerializer )
const override
902 if (rResult.size() != 10)
903 rResult.resize(10,
false);
904 const double fourthCoord = 1.0 - rCoordinates[0] - rCoordinates[1] - rCoordinates[2];
905 rResult[0] = fourthCoord * (2.0 * fourthCoord - 1.0);
906 rResult[1] = rCoordinates[0] * (2.0 * rCoordinates[0] - 1.0);
907 rResult[2] = rCoordinates[1] * (2.0 * rCoordinates[1] - 1.0);
908 rResult[3] = rCoordinates[2] * (2.0 * rCoordinates[2] - 1.0);
909 rResult[4] = 4.0 * fourthCoord * rCoordinates[0];
910 rResult[5] = 4.0 * rCoordinates[0] * rCoordinates[1];
911 rResult[6] = 4.0 * rCoordinates[1] * fourthCoord;
912 rResult[7] = 4.0 * rCoordinates[2] * fourthCoord;
913 rResult[8] = 4.0 * rCoordinates[0] * rCoordinates[2];
914 rResult[9] = 4.0 * rCoordinates[1] * rCoordinates[2];
927 const std::size_t points_number = 10;
930 Matrix shape_function_values(integration_points.size(), points_number);
933 for (std::size_t pnt = 0; pnt < integration_points.size(); ++pnt)
935 ShapeFunctionsValuesImpl(
N, integration_points[pnt]);
936 for (std::size_t
i = 0;
i <
N.size(); ++
i)
937 shape_function_values(pnt,
i) =
N[
i];
939 return shape_function_values;
952 CalculateShapeFunctionsIntegrationPointsLocalGradients(
956 AllIntegrationPoints();
959 const int integration_points_number = integration_points.size();
964 for (
int pnt = 0; pnt < integration_points_number; pnt++ )
966 double fourthCoord = 1.0 - ( integration_points[pnt].X() + integration_points[pnt].Y() + integration_points[pnt].Z() );
967 double fourthCoord_DX = -1.0;
968 double fourthCoord_DY = -1.0;
969 double fourthCoord_DZ = -1.0;
972 result( 0, 0 ) = ( 4 * fourthCoord - 1.0 ) * fourthCoord_DX;
973 result( 0, 1 ) = ( 4 * fourthCoord - 1.0 ) * fourthCoord_DY;
974 result( 0, 2 ) = ( 4 * fourthCoord - 1.0 ) * fourthCoord_DZ;
975 result( 1, 0 ) = 4 * integration_points[pnt].X() - 1.0;
976 result( 1, 1 ) = 0.0;
977 result( 1, 2 ) = 0.0;
978 result( 2, 0 ) = 0.0;
979 result( 2, 1 ) = 4 * integration_points[pnt].Y() - 1.0;
980 result( 2, 2 ) = 0.0;
981 result( 3, 0 ) = 0.0;
982 result( 3, 1 ) = 0.0;
983 result( 3, 2 ) = 4 * integration_points[pnt].Z() - 1.0 ;
984 result( 4, 0 ) = 4 * fourthCoord_DX * integration_points[pnt].X() + 4 * fourthCoord;
985 result( 4, 1 ) = 4 * fourthCoord_DY * integration_points[pnt].X();
986 result( 4, 2 ) = 4 * fourthCoord_DZ * integration_points[pnt].X();
987 result( 5, 0 ) = 4 * integration_points[pnt].Y();
988 result( 5, 1 ) = 4 * integration_points[pnt].X();
989 result( 5, 2 ) = 0.0;
990 result( 6, 0 ) = 4 * fourthCoord_DX * integration_points[pnt].Y();
991 result( 6, 1 ) = 4 * fourthCoord_DY * integration_points[pnt].Y() + 4 * fourthCoord;
992 result( 6, 2 ) = 4 * fourthCoord_DZ * integration_points[pnt].Y();
993 result( 7, 0 ) = 4 * fourthCoord_DX * integration_points[pnt].Z();
994 result( 7, 1 ) = 4 * fourthCoord_DY * integration_points[pnt].Z();
995 result( 7, 2 ) = 4 * fourthCoord_DZ * integration_points[pnt].Z() + 4 * fourthCoord;
996 result( 8, 0 ) = 4 * integration_points[pnt].Z();
997 result( 8, 1 ) = 0.0;
998 result( 8, 2 ) = 4 * integration_points[pnt].X();
999 result( 9, 0 ) = 0.0;
1000 result( 9, 1 ) = 4 * integration_points[pnt].Z();
1001 result( 9, 2 ) = 4 * integration_points[pnt].Y();
1003 d_shape_f_values[pnt] = result;
1006 return d_shape_f_values;
1014 Quadrature < TetrahedronGaussLegendreIntegrationPoints1,
1015 3, IntegrationPoint<3> >::GenerateIntegrationPoints(),
1016 Quadrature < TetrahedronGaussLegendreIntegrationPoints2,
1017 3, IntegrationPoint<3> >::GenerateIntegrationPoints(),
1018 Quadrature < TetrahedronGaussLegendreIntegrationPoints3,
1019 3, IntegrationPoint<3> >::GenerateIntegrationPoints(),
1020 Quadrature < TetrahedronGaussLegendreIntegrationPoints4,
1021 3, IntegrationPoint<3> >::GenerateIntegrationPoints(),
1022 Quadrature < TetrahedronGaussLegendreIntegrationPoints5,
1023 3, IntegrationPoint<3> >::GenerateIntegrationPoints(),
1026 return integration_points;
1034 Tetrahedra3D10<TPointType>::CalculateShapeFunctionsIntegrationPointsValues(
1036 Tetrahedra3D10<TPointType>::CalculateShapeFunctionsIntegrationPointsValues(
1038 Tetrahedra3D10<TPointType>::CalculateShapeFunctionsIntegrationPointsValues(
1040 Tetrahedra3D10<TPointType>::CalculateShapeFunctionsIntegrationPointsValues(
1042 Tetrahedra3D10<TPointType>::CalculateShapeFunctionsIntegrationPointsValues(
1046 return shape_functions_values;
1050 AllShapeFunctionsLocalGradients()
1055 Tetrahedra3D10<TPointType>::CalculateShapeFunctionsIntegrationPointsLocalGradients(
1057 Tetrahedra3D10<TPointType>::CalculateShapeFunctionsIntegrationPointsLocalGradients(
1059 Tetrahedra3D10<TPointType>::CalculateShapeFunctionsIntegrationPointsLocalGradients(
1061 Tetrahedra3D10<TPointType>::CalculateShapeFunctionsIntegrationPointsLocalGradients(
1063 Tetrahedra3D10<TPointType>::CalculateShapeFunctionsIntegrationPointsLocalGradients(
1067 return shape_functions_local_gradients;
1075 bool FacesArePlanar()
const
1077 constexpr
double tol = 1
e-6;
1078 constexpr std::array<std::array<size_t, 3>, 6> edges{
1079 {{0, 1, 4}, {1, 2, 5}, {2, 0, 6}, {0, 3, 7}, {1, 3, 8}, {2, 3, 9}}};
1080 const auto& r_points = this->
Points();
1081 for (
const auto& r_edge : edges) {
1085 if (
b +
c >
a*(1.0+
tol) ) {
1122 rOStream << std::endl;
1128 template<
class TPo
intType>
const
1129 GeometryData Tetrahedra3D10<TPointType>::msGeometryData(
1132 Tetrahedra3D10<TPointType>::AllIntegrationPoints(),
1133 Tetrahedra3D10<TPointType>::AllShapeFunctionsValues(),
1134 AllShapeFunctionsLocalGradients()
1137 template<
class TPo
intType>
const
Definition: geometry_data.h:60
KratosGeometryType
Definition: geometry_data.h:110
IntegrationMethod
Definition: geometry_data.h:76
KratosGeometryFamily
Definition: geometry_data.h:91
Definition: geometry_dimension.h:42
Geometry base class.
Definition: geometry.h:71
SizeType PointsNumber() const
Definition: geometry.h:528
PointerVector< GeometryType > GeometriesArrayType
Definition: geometry.h:127
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: geometry.h:3834
SizeType size() const
Definition: geometry.h:518
Geometry & operator=(const Geometry &rOther)
Definition: geometry.h:400
DenseVector< double > NormalType
Definition: geometry.h:203
std::vector< IntegrationPointType > IntegrationPointsArrayType
Definition: geometry.h:161
DataValueContainer & GetData()
Definition: geometry.h:591
SizeType LocalSpaceDimension() const
Definition: geometry.h:1300
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
PointerVector< TPointType > PointsArrayType
Definition: geometry.h:118
DenseVector< Matrix > JacobiansType
Definition: geometry.h:183
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
GeometryData::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
Definition: geometry.h:189
JacobiansType & Jacobian(JacobiansType &rResult) const
Definition: geometry.h:2901
PointType::CoordinatesArrayType CoordinatesArrayType
Definition: geometry.h:147
IntegrationPoint< 3 > IntegrationPointType
Definition: geometry.h:154
TPointType const & GetPoint(const int Index) const
Definition: geometry.h:1816
GeometryData::ShapeFunctionsLocalGradientsContainerType ShapeFunctionsLocalGradientsContainerType
Definition: geometry.h:177
GeometryData::IntegrationMethod IntegrationMethod
Definition: geometry.h:122
static TGeometryType::CoordinatesArrayType & PointLocalCoordinatesPlanarFaceTetrahedra(const TGeometryType &rGeometry, typename TGeometryType::CoordinatesArrayType &rResult, const typename TGeometryType::CoordinatesArrayType &rPoint)
Returns the local coordinates of a given arbitrary point for a given linear tetrahedra.
Definition: geometry_utilities.h:67
static double PointDistanceToTriangle3D(const Point &rTrianglePoint1, const Point &rTrianglePoint2, const Point &rTrianglePoint3, const Point &rPoint)
This function calculates the distance of a 3D point to a 3D triangle.
Definition: geometry_utilities.cpp:172
Short class definition.
Definition: integration_point.h:52
static double ComputeVolume3DGeometry(const Geometry< TPointType > &rGeometry)
This method calculates and returns the volume of the geometry from a 3D geometry.
Definition: integration_utilities.h:168
Definition: amatrix_interface.h:41
void resize(std::size_t NewSize1, std::size_t NewSize2, bool preserve=0)
Definition: amatrix_interface.h:224
An three node 3D line geometry with quadratic shape functions.
Definition: line_3d_3.h:66
static double Norm3(const TVectorType &a)
Calculates the norm of vector "a" which is assumed to be of size 3.
Definition: math_utils.h:691
This class defines the node.
Definition: node.h:65
Point class.
Definition: point.h:59
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
iterator end()
Definition: pointer_vector.h:177
void reserve(size_type dim)
Definition: pointer_vector.h:319
iterator begin()
Definition: pointer_vector.h:169
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 tetrahedra geometry with quadratic shape functions.
Definition: tetrahedra_3d_10.h:75
GeometriesArrayType GenerateFaces() const override
Returns all faces of the current geometry.
Definition: tetrahedra_3d_10.h:564
typename BaseType::IntegrationPointsContainerType IntegrationPointsContainerType
Definition: tetrahedra_3d_10.h:128
typename BaseType::ShapeFunctionsLocalGradientsContainerType ShapeFunctionsLocalGradientsContainerType
Definition: tetrahedra_3d_10.h:136
Tetrahedra3D10(typename PointType::Pointer pPoint1, typename PointType::Pointer pPoint2, typename PointType::Pointer pPoint3, typename PointType::Pointer pPoint4, typename PointType::Pointer pPoint5, typename PointType::Pointer pPoint6, typename PointType::Pointer pPoint7, typename PointType::Pointer pPoint8, typename PointType::Pointer pPoint9, typename PointType::Pointer pPoint10)
Default constructor.
Definition: tetrahedra_3d_10.h:162
KRATOS_CLASS_POINTER_DEFINITION(Tetrahedra3D10)
Pointer definition of Tetrahedra3D10.
Tetrahedra3D10(Tetrahedra3D10< TOtherPointType > const &rOther)
Definition: tetrahedra_3d_10.h:242
std::string Info() const override
Definition: tetrahedra_3d_10.h:821
typename BaseType::PointsArrayType PointsArrayType
Definition: tetrahedra_3d_10.h:112
SizeType FacesNumber() const override
Returns the number of faces of the current geometry.
Definition: tetrahedra_3d_10.h:551
SizeType EdgesNumber() const override
This method gives you number of all edges of this geometry.
Definition: tetrahedra_3d_10.h:495
~Tetrahedra3D10() override
Destructor. Does nothing!!!
Definition: tetrahedra_3d_10.h:248
double Volume() const override
This method calculate and return volume of this geometry.
Definition: tetrahedra_3d_10.h:411
typename BaseType::CoordinatesArrayType CoordinatesArrayType
Type of coordinates array.
Definition: tetrahedra_3d_10.h:152
friend class Tetrahedra3D10
Definition: tetrahedra_3d_10.h:1096
Tetrahedra3D10 & operator=(Tetrahedra3D10< TOtherPointType > const &rOther)
Definition: tetrahedra_3d_10.h:293
Tetrahedra3D10(const std::string &rGeometryName, const PointsArrayType &rThisPoints)
Constructor with Geometry Name.
Definition: tetrahedra_3d_10.h:208
typename BaseType::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
Definition: tetrahedra_3d_10.h:146
BaseType::Pointer Create(const IndexType NewGeometryId, const BaseType &rGeometry) const override
Creates a new geometry pointer.
Definition: tetrahedra_3d_10.h:350
Geometry< TPointType > BaseType
Geometry as base class.
Definition: tetrahedra_3d_10.h:81
BaseType::Pointer Create(const IndexType NewGeometryId, PointsArrayType const &rThisPoints) const override
Creates a new geometry pointer.
Definition: tetrahedra_3d_10.h:322
double Area() const override
Definition: tetrahedra_3d_10.h:398
Tetrahedra3D10(const PointsArrayType &ThisPoints)
Constructor with points array.
Definition: tetrahedra_3d_10.h:192
double ShapeFunctionValue(IndexType ShapeFunctionIndex, const CoordinatesArrayType &rPoint) const override
Definition: tetrahedra_3d_10.h:670
void PrintData(std::ostream &rOStream) const override
Definition: tetrahedra_3d_10.h:847
Tetrahedra3D10 & operator=(const Tetrahedra3D10 &rOther)
Definition: tetrahedra_3d_10.h:275
CoordinatesArrayType & PointLocalCoordinates(CoordinatesArrayType &rResult, const CoordinatesArrayType &rPoint) const override
Returns the local coordinates of a given arbitrary point.
Definition: tetrahedra_3d_10.h:438
Matrix & PointsLocalCoordinates(Matrix &rResult) const override
Definition: tetrahedra_3d_10.h:614
Triangle3D6< TPointType > FaceType
Definition: tetrahedra_3d_10.h:85
double CalculateDistance(const CoordinatesArrayType &rPointGlobalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const override
Computes the distance between an point in global coordinates and the closest point of this geometry....
Definition: tetrahedra_3d_10.h:786
typename BaseType::GeometriesArrayType GeometriesArrayType
Definition: tetrahedra_3d_10.h:95
TPointType PointType
Redefinition of template parameter TPointType.
Definition: tetrahedra_3d_10.h:98
void PrintInfo(std::ostream &rOStream) const override
Definition: tetrahedra_3d_10.h:833
BaseType::Pointer Create(PointsArrayType const &rThisPoints) const override
Creates a new geometry pointer.
Definition: tetrahedra_3d_10.h:309
GeometriesArrayType GenerateEdges() const override
This method gives you all edges of this geometry.
Definition: tetrahedra_3d_10.h:508
double DomainSize() const override
Definition: tetrahedra_3d_10.h:427
typename BaseType::ShapeFunctionsValuesContainerType ShapeFunctionsValuesContainerType
Definition: tetrahedra_3d_10.h:132
Matrix & ShapeFunctionsLocalGradients(Matrix &rResult, const CoordinatesArrayType &rPoint) const override
Definition: tetrahedra_3d_10.h:704
BaseType::Pointer Create(const BaseType &rGeometry) const override
Creates a new geometry pointer.
Definition: tetrahedra_3d_10.h:335
GeometryData::KratosGeometryType GetGeometryType() const override
Definition: tetrahedra_3d_10.h:255
Line3D3< TPointType > EdgeType
Type of edge and face geometries.
Definition: tetrahedra_3d_10.h:84
Vector & ShapeFunctionsValues(Vector &rResult, const CoordinatesArrayType &rCoordinates) const override
Definition: tetrahedra_3d_10.h:655
Tetrahedra3D10(Tetrahedra3D10 const &rOther)
Definition: tetrahedra_3d_10.h:225
Tetrahedra3D10(const IndexType GeometryId, const PointsArrayType &rThisPoints)
Constructor with Geometry Id.
Definition: tetrahedra_3d_10.h:199
typename BaseType::IntegrationPointsArrayType IntegrationPointsArrayType
Definition: tetrahedra_3d_10.h:123
GeometryData::KratosGeometryFamily GetGeometryFamily() const override
Definition: tetrahedra_3d_10.h:250
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: tetrahedra_3d_10.h:459
bool HasIntersection(const Point &rLowPoint, const Point &rHighPoint) const override
Definition: tetrahedra_3d_10.h:754
double AverageEdgeLength() const override
Definition: tetrahedra_3d_10.h:604
double Length() const override
Definition: tetrahedra_3d_10.h:379
A four node tetrahedra geometry with linear shape functions.
Definition: tetrahedra_3d_4.h:59
bool HasIntersection(const BaseType &rThisGeometry) const override
Test if this geometry intersects with other geometry.
Definition: tetrahedra_3d_4.h:1367
A six node 3D triangular geometry with quadratic shape functions.
Definition: triangle_3d_6.h:68
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
const GeometryData Tetrahedra3D10< TPointType >::msGeometryData & msGeometryDimension(), Tetrahedra3D10< TPointType >::AllShapeFunctionsValues(), AllShapeFunctionsLocalGradients()
Definition: brep_curve.h:483
#define KRATOS_ERROR
Definition: exception.h:161
#define KRATOS_ERROR_IF(conditional)
Definition: exception.h:162
static double min(double a, double b)
Definition: GeometryFunctions.h:71
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
Internals::Matrix< double, AMatrix::dynamic, 1 > Vector
Definition: amatrix_interface.h:472
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
Internals::Matrix< double, AMatrix::dynamic, AMatrix::dynamic > Matrix
Definition: amatrix_interface.h:470
TExpressionType::data_type sum(AMatrix::MatrixExpression< TExpressionType, TCategory > const &TheExpression)
Definition: amatrix_interface.h:675
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
const GeometryData BrepCurve< TContainerPointType, TContainerPointEmbeddedType >::msGeometryData & msGeometryDimension
Definition: brep_curve.h:483
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
a
Definition: generate_stokes_twofluid_element.py:77
b
Definition: generate_total_lagrangian_mixed_volumetric_strain_element.py:31
c
Definition: generate_weakly_compressible_navier_stokes_element.py:108
int tol
Definition: hinsberg_optimization.py:138
def load(f)
Definition: ode_solve.py:307
N
Definition: sensitivityMatrix.py:29
integer i
Definition: TensorModule.f:17
e
Definition: run_cpp_mpi_tests.py:31