KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
List of all members
Kratos::Triangle3D3< TPointType > Class Template Reference

A three node 3D triangle geometry with linear shape functions. More...

#include <triangle_3d_3.h>

Inheritance diagram for Kratos::Triangle3D3< TPointType >:
Collaboration diagram for Kratos::Triangle3D3< TPointType >:

Public Member Functions

Life Cycle
 Triangle3D3 (typename PointType::Pointer pFirstPoint, typename PointType::Pointer pSecondPoint, typename PointType::Pointer pThirdPoint)
 
 Triangle3D3 (const PointsArrayType &ThisPoints)
 
 Triangle3D3 (const IndexType GeometryId, const PointsArrayType &rThisPoints)
 Constructor with Geometry Id. More...
 
 Triangle3D3 (const std::string &rGeometryName, const PointsArrayType &rThisPoints)
 Constructor with Geometry Name. More...
 
 Triangle3D3 (Triangle3D3 const &rOther)
 
template<class TOtherPointType >
 Triangle3D3 (Triangle3D3< TOtherPointType > const &rOther)
 
 ~Triangle3D3 () override
 
GeometryData::KratosGeometryFamily GetGeometryFamily () const override
 
GeometryData::KratosGeometryType GetGeometryType () const override
 
Operators
Triangle3D3operator= (const Triangle3D3 &rOther)
 
template<class TOtherPointType >
Triangle3D3operator= (Triangle3D3< TOtherPointType > const &rOther)
 
Operations
BaseType::Pointer Create (PointsArrayType const &rThisPoints) const override
 Creates a new geometry pointer. More...
 
BaseType::Pointer Create (const IndexType NewGeometryId, PointsArrayType const &rThisPoints) const override
 Creates a new geometry pointer. More...
 
BaseType::Pointer Create (const BaseType &rGeometry) const override
 Creates a new geometry pointer. More...
 
BaseType::Pointer Create (const IndexType NewGeometryId, const BaseType &rGeometry) const override
 Creates a new geometry pointer. More...
 
MatrixPointsLocalCoordinates (Matrix &rResult) const override
 
VectorLumpingFactors (Vector &rResult, const typename BaseType::LumpingMethods LumpingMethod=BaseType::LumpingMethods::ROW_SUM) const override
 Lumping factors for the calculation of the lumped mass matrix. More...
 
Information
double Length () const override
 
double Area () const override
 This method calculates and returns area or surface area of this geometry depending to it's dimension. More...
 
double DomainSize () const override
 This method calculates and returns length, area or volume of this geometry depending to it's dimension. More...
 
double MinEdgeLength () const override
 Class Interface. More...
 
double MaxEdgeLength () const override
 
double AverageEdgeLength () const override
 
double Circumradius () const override
 
double Inradius () const override
 
bool AllSameSide (array_1d< double, 3 > const &Distances) const
 
int GetMajorAxis (array_1d< double, 3 > const &V) const
 
bool HasIntersection (const GeometryType &rThisGeometry) const override
 Test the intersection with another geometry. More...
 
bool HasIntersection (const Point &rLowPoint, const Point &rHighPoint) const override
 
double InradiusToCircumradiusQuality () const override
 Quality functions. More...
 
double InradiusToLongestEdgeQuality () const override
 
double AreaToEdgeLengthRatio () const override
 
double ShortestAltitudeToEdgeLengthRatio () const override
 
virtual double AreaToEdgeLengthSquareRatio () const
 
virtual double ShortestAltitudeToLongestEdge () const
 
array_1d< double, 3 > Normal (const CoordinatesArrayType &rPointLocalCoordinates) const override
 It returns a vector that is normal to its corresponding geometry in the given local point. More...
 
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 given global point. More...
 
CoordinatesArrayTypePointLocalCoordinates (CoordinatesArrayType &rResult, const CoordinatesArrayType &rPoint) const override
 Returns the local coordinates of a given arbitrary point. More...
 
Spatial Operations
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. If projection fails, double::max will be returned. More...
 
int ProjectionPoint (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rProjectedPointGlobalCoordinates, CoordinatesArrayType &rProjectedPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const override
 Projects a certain point on the geometry, or finds the closest point, depending on the provided initial guess. The external point does not necessary lay on the geometry. It shall deal as the interface to the mathematical projection function e.g. the Newton-Raphson. Thus, the breaking criteria does not necessarily mean that it found a point on the surface, if it is really the closest if or not. It shows only if the breaking criteria, defined by the tolerance is reached. More...
 
int ProjectionPointLocalToLocalSpace (const CoordinatesArrayType &rPointLocalCoordinates, CoordinatesArrayType &rProjectionPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const override
 Projects a point onto the geometry Projects a certain point on the geometry, or finds the closest point, depending on the provided initial guess. The external point does not necessary lay on the geometry. It shall deal as the interface to the mathematical projection function e.g. the Newton-Raphson. Thus, the breaking criteria does not necessarily mean that it found a point on the surface, if it is really the closest if or not. It shows only if the breaking criteria, defined by the tolerance is reached. This function requires an initial guess, provided by rProjectionPointLocalCoordinates. This function can be a very costly operation. More...
 
int ProjectionPointGlobalToLocalSpace (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rProjectionPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const override
 Projects a point onto the geometry Projects a certain point on the geometry, or finds the closest point, depending on the provided initial guess. The external point does not necessary lay on the geometry. It shall deal as the interface to the mathematical projection function e.g. the Newton-Raphson. Thus, the breaking criteria does not necessarily mean that it found a point on the surface, if it is really the closest if or not. It shows only if the breaking criteria, defined by the tolerance is reached. This function requires an initial guess, provided by rProjectionPointLocalCoordinates. This function can be a very costly operation. More...
 
Jacobian
JacobiansTypeJacobian (JacobiansType &rResult, IntegrationMethod ThisMethod) const override
 
JacobiansTypeJacobian (JacobiansType &rResult, IntegrationMethod ThisMethod, Matrix &DeltaPosition) const override
 
MatrixJacobian (Matrix &rResult, IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const override
 
MatrixJacobian (Matrix &rResult, const CoordinatesArrayType &rPoint) const override
 
VectorDeterminantOfJacobian (Vector &rResult, IntegrationMethod ThisMethod) const override
 
double DeterminantOfJacobian (IndexType IntegrationPoint, IntegrationMethod ThisMethod) const override
 
double DeterminantOfJacobian (const CoordinatesArrayType &rPoint) const override
 
Edge
SizeType EdgesNumber () const override
 This method gives you number of all edges of this geometry. More...
 
GeometriesArrayType GenerateEdges () const override
 This method gives you all edges of this geometry. More...
 
Face
SizeType FacesNumber () const override
 Returns the number of faces of the current geometry. More...
 
GeometriesArrayType GenerateFaces () const override
 Returns all faces of the current geometry. More...
 
void NumberNodesInFaces (DenseVector< unsigned int > &NumberNodesInFaces) const override
 
void NodesInFaces (DenseMatrix< unsigned int > &NodesInFaces) const override
 
GeometriesArrayType Faces (void) override
 
Shape Function
double ShapeFunctionValue (IndexType ShapeFunctionIndex, const CoordinatesArrayType &rPoint) const override
 
VectorShapeFunctionsValues (Vector &rResult, const CoordinatesArrayType &rCoordinates) const override
 
Input and output
std::string Info () const override
 
void PrintInfo (std::ostream &rOStream) const override
 
void PrintData (std::ostream &rOStream) const override
 
virtual ShapeFunctionsGradientsType ShapeFunctionsLocalGradients (IntegrationMethod ThisMethod)
 
virtual ShapeFunctionsGradientsType ShapeFunctionsLocalGradients ()
 
MatrixShapeFunctionsLocalGradients (Matrix &rResult, const CoordinatesArrayType &rPoint) const override
 
virtual MatrixShapeFunctionsGradients (Matrix &rResult, PointType &rPoint)
 
ShapeFunctionsSecondDerivativesTypeShapeFunctionsSecondDerivatives (ShapeFunctionsSecondDerivativesType &rResult, const CoordinatesArrayType &rPoint) const override
 
ShapeFunctionsThirdDerivativesTypeShapeFunctionsThirdDerivatives (ShapeFunctionsThirdDerivativesType &rResult, const CoordinatesArrayType &rPoint) const override
 
- Public Member Functions inherited from Kratos::Geometry< TPointType >
 Geometry ()
 Standard Constructor. Generates self assigned id. More...
 
 Geometry (IndexType GeomertyId)
 Standard Constructor with a geometry Id. More...
 
 Geometry (const std::string &GeometryName)
 Standard Constructor with a Name. More...
 
 Geometry (const PointsArrayType &ThisPoints, GeometryData const *pThisGeometryData=&GeometryDataInstance())
 
 Geometry (IndexType GeometryId, const PointsArrayType &ThisPoints, GeometryData const *pThisGeometryData=&GeometryDataInstance())
 
 Geometry (const std::string &GeometryName, const PointsArrayType &ThisPoints, GeometryData const *pThisGeometryData=&GeometryDataInstance())
 
 Geometry (const Geometry &rOther)
 Copy constructor. More...
 
template<class TOtherPointType >
 Geometry (Geometry< TOtherPointType > const &rOther)
 Copy constructor with TOtherPointType. More...
 
virtual ~Geometry ()
 Destructor. Do nothing!!! More...
 
Geometryoperator= (const Geometry &rOther)
 
template<class TOtherPointType >
Geometryoperator= (Geometry< TOtherPointType > const &rOther)
 
 operator PointsArrayType & ()
 
TPointType & operator[] (const SizeType &i)
 
TPointType const & operator[] (const SizeType &i) const
 
PointPointerTypeoperator() (const SizeType &i)
 
ConstPointPointerTypeoperator() (const SizeType &i) const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
ptr_iterator ptr_begin ()
 
ptr_const_iterator ptr_begin () const
 
ptr_iterator ptr_end ()
 
ptr_const_iterator ptr_end () const
 
PointReferenceType front ()
 
ConstPointReferenceType front () const
 
PointReferenceType back ()
 
ConstPointReferenceType back () const
 
SizeType size () const
 
SizeType PointsNumber () const
 
virtual SizeType PointsNumberInDirection (IndexType LocalDirectionIndex) const
 Returns number of points per direction. More...
 
SizeType max_size () const
 
void swap (GeometryType &rOther)
 
void push_back (PointPointerType x)
 
void clear ()
 
void reserve (int dim)
 
int capacity ()
 
PointPointerContainerTypeGetContainer ()
 ‍** Gives a reference to underly normal container. *‍/ More...
 
const PointPointerContainerTypeGetContainer () const
 
DataValueContainerGetData ()
 
DataValueContainer const & GetData () const
 
void SetData (DataValueContainer const &rThisData)
 
template<class TDataType >
bool Has (const Variable< TDataType > &rThisVariable) const
 
template<class TVariableType >
void SetValue (const TVariableType &rThisVariable, typename TVariableType::Type const &rValue)
 
template<class TVariableType >
TVariableType::Type & GetValue (const TVariableType &rThisVariable)
 
template<class TVariableType >
TVariableType::Type const & GetValue (const TVariableType &rThisVariable) const
 
virtual void Assign (const Variable< bool > &rVariable, const bool Input)
 Assign with bool. More...
 
virtual void Assign (const Variable< int > &rVariable, const int Input)
 Assign with int. More...
 
virtual void Assign (const Variable< double > &rVariable, const double Input)
 Assign with double. More...
 
virtual void Assign (const Variable< array_1d< double, 2 >> &rVariable, const array_1d< double, 2 > &rInput)
 Assign with array_1d<double, 2> More...
 
virtual void Assign (const Variable< array_1d< double, 3 >> &rVariable, const array_1d< double, 3 > &rInput)
 Assign with array_1d<double, 3> More...
 
virtual void Assign (const Variable< array_1d< double, 6 >> &rVariable, const array_1d< double, 6 > &rInput)
 Assign with array_1d<double, 6> More...
 
virtual void Assign (const Variable< Vector > &rVariable, const Vector &rInput)
 Assign with Vector. More...
 
virtual void Assign (const Variable< Matrix > &rVariable, const Matrix &rInput)
 Assign with Matrix. More...
 
virtual void Calculate (const Variable< bool > &rVariable, bool &rOutput) const
 Calculate with bool. More...
 
virtual void Calculate (const Variable< int > &rVariable, int &rOutput) const
 Calculate with int. More...
 
virtual void Calculate (const Variable< double > &rVariable, double &rOutput) const
 Calculate with double. More...
 
virtual void Calculate (const Variable< array_1d< double, 2 >> &rVariable, array_1d< double, 2 > &rOutput) const
 Calculate with array_1d<double, 2> More...
 
virtual void Calculate (const Variable< array_1d< double, 3 >> &rVariable, array_1d< double, 3 > &rOutput) const
 Calculate with array_1d<double, 3> More...
 
virtual void Calculate (const Variable< array_1d< double, 6 >> &rVariable, array_1d< double, 6 > &rOutput) const
 Calculate with array_1d<double, 6> More...
 
virtual void Calculate (const Variable< Vector > &rVariable, Vector &rOutput) const
 Calculate with Vector. More...
 
virtual void Calculate (const Variable< Matrix > &rVariable, Matrix &rOutput) const
 Calculate with Matrix. More...
 
Pointer Create (const std::string &rNewGeometryName, PointsArrayType const &rThisPoints) const
 Creates a new geometry pointer. More...
 
virtual Pointer Create (const GeometryType &rGeometry) const
 Creates a new geometry pointer. More...
 
virtual Pointer Create (const IndexType NewGeometryId, const GeometryType &rGeometry) const
 Creates a new geometry pointer. More...
 
Pointer Create (const std::string &rNewGeometryName, const GeometryType &rGeometry) const
 Creates a new geometry pointer. More...
 
void ClonePoints ()
 
GeometryData const & GetGeometryData () const
 GeometryData contains all information about dimensions and has a set of precomputed values for integration points and shape functions, including derivatives. More...
 
virtual void SetGeometryShapeFunctionContainer (const GeometryShapeFunctionContainer< GeometryData::IntegrationMethod > &rGeometryShapeFunctionContainer)
 
virtual GeometryTypeGetGeometryParent (IndexType Index) const
 Some geometries require relations to other geometries. This is the case for e.g. quadrature points. To reach the parent geometry this function can be used. More...
 
virtual void SetGeometryParent (GeometryType *pGeometryParent)
 Some geometries require relations to other geometries. This is the case for e.g. quadrature points. To set or change the parent geometry this function can be used. More...
 
virtual GeometryTypeGetGeometryPart (const IndexType Index)
 Used for composite geometries. It returns the the geometry part, corresponding to the Index. More...
 
virtual const GeometryTypeGetGeometryPart (const IndexType Index) const
 Used for composite geometries. It returns the the geometry part, corresponding to the Index. More...
 
virtual GeometryType::Pointer pGetGeometryPart (const IndexType Index)
 Used for composite geometries. It returns the pointer of a geometry part, corresponding to the Index. More...
 
virtual const GeometryType::Pointer pGetGeometryPart (const IndexType Index) const
 Used for composite geometries. It returns the const pointer of a geometry part, corresponding to the Index. More...
 
virtual void SetGeometryPart (const IndexType Index, GeometryType::Pointer pGeometry)
 Allows to exchange certain geometries. More...
 
virtual IndexType AddGeometryPart (GeometryType::Pointer pGeometry)
 Allows to enhance the coupling geometry, with another geometry. More...
 
virtual void RemoveGeometryPart (GeometryType::Pointer pGeometry)
 Removes a geometry part. More...
 
virtual void RemoveGeometryPart (const IndexType Index)
 Removes a geometry part. More...
 
virtual bool HasGeometryPart (const IndexType Index) const
 Use to check if certain Indexed object is within the geometry parts of this geometry. More...
 
virtual SizeType NumberOfGeometryParts () const
 
SizeType WorkingSpaceDimension () const
 
SizeType LocalSpaceDimension () const
 
virtual SizeType PolynomialDegree (IndexType LocalDirectionIndex) const
 Return polynomial degree of the geometry in a certain direction. More...
 
virtual double Volume () const
 This method calculate and return volume of this geometry. More...
 
virtual void BoundingBox (TPointType &rLowPoint, TPointType &rHighPoint) const
 Calculates the boundingbox of the geometry. More...
 
virtual Point Center () const
 
virtual array_1d< double, 3 > Normal (IndexType IntegrationPointIndex) const
 It returns the vector, which is normal to its corresponding geometry in the given integration point for the default integration method. More...
 
virtual array_1d< double, 3 > Normal (IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 It returns the vector, which is normal to its corresponding geometry in the given integration point. More...
 
virtual array_1d< double, 3 > UnitNormal (const CoordinatesArrayType &rPointLocalCoordinates) const
 It computes the unit normal of the geometry in the given local point. More...
 
virtual array_1d< double, 3 > UnitNormal (IndexType IntegrationPointIndex) const
 It returns the normalized normal vector in the given integration point. More...
 
virtual array_1d< double, 3 > UnitNormal (IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 It returns the normalized normal vector in the given integration point. More...
 
double Quality (const QualityCriteria qualityCriteria) const
 
virtual void ComputeDihedralAngles (Vector &rDihedralAngles) const
 
virtual void ComputeSolidAngles (Vector &rSolidAngles) const
 
const PointsArrayTypePoints () const
 
PointsArrayTypePoints ()
 
const TPointType::Pointer pGetPoint (const int Index) const
 
TPointType::Pointer pGetPoint (const int Index)
 
TPointType const & GetPoint (const int Index) const
 
TPointType & GetPoint (const int Index)
 
virtual int IsInsideLocalSpace (const CoordinatesArrayType &rPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Checks if given point in local space coordinates of this geometry is inside the geometry boundaries. More...
 
virtual void SpansLocalSpace (std::vector< double > &rSpans, IndexType LocalDirectionIndex=0) const
 
virtual GeometriesArrayType GenerateBoundariesEntities () const
 This method gives you all boundaries entities of this geometry. More...
 
virtual GeometriesArrayType GeneratePoints () const
 This method gives you all points of this geometry. More...
 
 KRATOS_DEPRECATED_MESSAGE ("This is legacy version (use GenerateEdges instead)") virtual GeometriesArrayType Edges(void)
 This method gives you all edges of this geometry. More...
 
 KRATOS_DEPRECATED_MESSAGE ("This is legacy version (use GenerateFaces instead)") virtual GeometriesArrayType Faces(void)
 Returns all faces of the current geometry. More...
 
SizeType IntegrationPointsNumber () const
 
SizeType IntegrationPointsNumber (IntegrationMethod ThisMethod) const
 
const IntegrationPointsArrayTypeIntegrationPoints () const
 
const IntegrationPointsArrayTypeIntegrationPoints (IntegrationMethod ThisMethod) const
 
virtual void CreateIntegrationPoints (IntegrationPointsArrayType &rIntegrationPoints, IntegrationInfo &rIntegrationInfo) const
 
virtual void CreateQuadraturePointGeometries (GeometriesArrayType &rResultGeometries, IndexType NumberOfShapeFunctionDerivatives, const IntegrationPointsArrayType &rIntegrationPoints, IntegrationInfo &rIntegrationInfo)
 
virtual void CreateQuadraturePointGeometries (GeometriesArrayType &rResultGeometries, IndexType NumberOfShapeFunctionDerivatives, IntegrationInfo &rIntegrationInfo)
 
virtual CoordinatesArrayTypeGlobalCoordinates (CoordinatesArrayType &rResult, CoordinatesArrayType const &LocalCoordinates) const
 
void GlobalCoordinates (CoordinatesArrayType &rResult, IndexType IntegrationPointIndex) const
 
void GlobalCoordinates (CoordinatesArrayType &rResult, IndexType IntegrationPointIndex, const IntegrationMethod ThisMethod) const
 This method provides the global coordinates to the corresponding integration point. More...
 
virtual CoordinatesArrayTypeGlobalCoordinates (CoordinatesArrayType &rResult, CoordinatesArrayType const &LocalCoordinates, Matrix &DeltaPosition) const
 
virtual void GlobalSpaceDerivatives (std::vector< CoordinatesArrayType > &rGlobalSpaceDerivatives, const CoordinatesArrayType &rLocalCoordinates, const SizeType DerivativeOrder) const
 This method maps from dimension space to working space and computes the number of derivatives at the dimension parameter. More...
 
virtual void GlobalSpaceDerivatives (std::vector< CoordinatesArrayType > &rGlobalSpaceDerivatives, IndexType IntegrationPointIndex, const SizeType DerivativeOrder) const
 This method maps from dimension space to working space and computes the number of derivatives at the dimension parameter. More...
 
virtual int ClosestPoint (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rClosestPointGlobalCoordinates, CoordinatesArrayType &rClosestPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Returns all coordinates of the closest point on the geometry given to an arbitrary point in global coordinates. The basic concept is to first do a projection towards this geometry and second checking if the projection was successfull or if no point on the geometry was found. More...
 
virtual int ClosestPoint (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rClosestPointGlobalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Returns global coordinates of the closest point on the geometry given to an arbitrary point in global coordinates. The basic concept is to first do a projection towards this geometry and second checking if the projection was successfull or if no point on the geometry was found. More...
 
virtual int ClosestPointLocalCoordinates (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rClosestPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Returns local coordinates of the closest point on the geometry given to an arbitrary point in global coordinates. The basic concept is to first do a projection towards this geometry and second checking if the projection was successfull or if no point on the geometry was found. More...
 
virtual int ClosestPointLocalToLocalSpace (const CoordinatesArrayType &rPointLocalCoordinates, CoordinatesArrayType &rClosestPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Calculates the closes point projection This method calculates the closest point projection of a point in local space coordinates. More...
 
virtual int ClosestPointGlobalToLocalSpace (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rClosestPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Calculates the closes point projection This method calculates the closest point projection of a point in global space coordinates. More...
 
JacobiansTypeJacobian (JacobiansType &rResult) const
 
MatrixJacobian (Matrix &rResult, IndexType IntegrationPointIndex) const
 
virtual MatrixJacobian (Matrix &rResult, IndexType IntegrationPointIndex, IntegrationMethod ThisMethod, const Matrix &rDeltaPosition) const
 
virtual MatrixJacobian (Matrix &rResult, const CoordinatesArrayType &rCoordinates, Matrix &rDeltaPosition) const
 
VectorDeterminantOfJacobian (Vector &rResult) const
 
double DeterminantOfJacobian (IndexType IntegrationPointIndex) const
 
JacobiansTypeInverseOfJacobian (JacobiansType &rResult) const
 
virtual JacobiansTypeInverseOfJacobian (JacobiansType &rResult, IntegrationMethod ThisMethod) const
 
MatrixInverseOfJacobian (Matrix &rResult, IndexType IntegrationPointIndex) const
 
virtual MatrixInverseOfJacobian (Matrix &rResult, IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 
virtual MatrixInverseOfJacobian (Matrix &rResult, const CoordinatesArrayType &rCoordinates) const
 
const MatrixShapeFunctionsValues () const
 
const MatrixShapeFunctionsValues (IntegrationMethod ThisMethod) const
 
double ShapeFunctionValue (IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex) const
 
double ShapeFunctionValue (IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex, IntegrationMethod ThisMethod) const
 
const ShapeFunctionsGradientsTypeShapeFunctionsLocalGradients () const
 
const ShapeFunctionsGradientsTypeShapeFunctionsLocalGradients (IntegrationMethod ThisMethod) const
 
const MatrixShapeFunctionLocalGradient (IndexType IntegrationPointIndex) const
 
const MatrixShapeFunctionLocalGradient (IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 
const MatrixShapeFunctionLocalGradient (IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex, IntegrationMethod ThisMethod) const
 
const MatrixShapeFunctionDerivatives (IndexType DerivativeOrderIndex, IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 
const MatrixShapeFunctionDerivatives (IndexType DerivativeOrderIndex, IndexType IntegrationPointIndex) const
 
void ShapeFunctionsIntegrationPointsGradients (ShapeFunctionsGradientsType &rResult) const
 
virtual void ShapeFunctionsIntegrationPointsGradients (ShapeFunctionsGradientsType &rResult, IntegrationMethod ThisMethod) const
 
virtual void ShapeFunctionsIntegrationPointsGradients (ShapeFunctionsGradientsType &rResult, Vector &rDeterminantsOfJacobian, IntegrationMethod ThisMethod) const
 
virtual void ShapeFunctionsIntegrationPointsGradients (ShapeFunctionsGradientsType &rResult, Vector &rDeterminantsOfJacobian, IntegrationMethod ThisMethod, Matrix &ShapeFunctionsIntegrationPointsValues) const
 
virtual int Check () const
 
virtual std::string Name () const
 Returns name. More...
 
virtual void PrintName (std::ostream &rOstream) const
 Print name. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (Geometry)
 Pointer definition of Geometry. More...
 
bool empty () const
 
bool HasIntegrationMethod (IntegrationMethod ThisMethod) const
 
IntegrationMethod GetDefaultIntegrationMethod () const
 
virtual IntegrationInfo GetDefaultIntegrationInfo () const
 Provides the default integration per geometry. More...
 
virtual bool IsSymmetric () const
 
IndexType const & Id () const
 Id of this Geometry. More...
 
bool IsIdGeneratedFromString ()
 Returns if id was generated from a geometry name. More...
 
bool IsIdSelfAssigned ()
 Returns if id was generated by itself. More...
 
void SetId (const IndexType Id)
 Sets Id of this Geometry. More...
 
void SetId (const std::string &rName)
 Sets Id with the use of the name of this geometry. More...
 

Friends

Private Friends
template<class TOtherPointType >
class Triangle3D3
 
- Friends inherited from Kratos::Geometry< TPointType >

Type Definitions

typedef Geometry< TPointType > BaseType
 
typedef Geometry< TPointType > GeometryType
 
typedef Line3D2< TPointType > EdgeType
 
typedef Triangle3D3< TPointType > FaceType
 
typedef GeometryData::IntegrationMethod IntegrationMethod
 
typedef BaseType::GeometriesArrayType GeometriesArrayType
 
typedef TPointType PointType
 
typedef BaseType::IndexType IndexType
 
typedef BaseType::SizeType SizeType
 
typedef BaseType::PointsArrayType PointsArrayType
 
typedef BaseType::CoordinatesArrayType CoordinatesArrayType
 
typedef BaseType::IntegrationPointType IntegrationPointType
 
typedef BaseType::IntegrationPointsArrayType IntegrationPointsArrayType
 
typedef BaseType::IntegrationPointsContainerType IntegrationPointsContainerType
 
typedef BaseType::ShapeFunctionsValuesContainerType ShapeFunctionsValuesContainerType
 
typedef BaseType::ShapeFunctionsLocalGradientsContainerType ShapeFunctionsLocalGradientsContainerType
 
typedef BaseType::JacobiansType JacobiansType
 
typedef BaseType::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
 
typedef BaseType::ShapeFunctionsSecondDerivativesType ShapeFunctionsSecondDerivativesType
 
typedef BaseType::ShapeFunctionsThirdDerivativesType ShapeFunctionsThirdDerivativesType
 
typedef BaseType::NormalType NormalType
 
 KRATOS_CLASS_POINTER_DEFINITION (Triangle3D3)
 

Serialization

class Serializer
 

Additional Inherited Members

- Public Types inherited from Kratos::Geometry< TPointType >
enum class  QualityCriteria {
  INRADIUS_TO_CIRCUMRADIUS , AREA_TO_LENGTH , SHORTEST_ALTITUDE_TO_LENGTH , INRADIUS_TO_LONGEST_EDGE ,
  SHORTEST_TO_LONGEST_EDGE , REGULARITY , VOLUME_TO_SURFACE_AREA , VOLUME_TO_EDGE_LENGTH ,
  VOLUME_TO_AVERAGE_EDGE_LENGTH , VOLUME_TO_RMS_EDGE_LENGTH , MIN_DIHEDRAL_ANGLE , MAX_DIHEDRAL_ANGLE ,
  MIN_SOLID_ANGLE
}
 
enum class  LumpingMethods { ROW_SUM , DIAGONAL_SCALING , QUADRATURE_ON_NODES }
 This defines the different methods to compute the lumping methods. More...
 
typedef Geometry< TPointType > GeometryType
 This Geometry type. More...
 
typedef PointerVector< TPointType > PointsArrayType
 
typedef GeometryData::IntegrationMethod IntegrationMethod
 
typedef PointerVector< GeometryTypeGeometriesArrayType
 
typedef TPointType PointType
 
typedef std::size_t IndexType
 
typedef std::size_t SizeType
 
typedef PointType::CoordinatesArrayType CoordinatesArrayType
 
typedef IntegrationPoint< 3 > IntegrationPointType
 
typedef std::vector< IntegrationPointTypeIntegrationPointsArrayType
 
typedef std::array< IntegrationPointsArrayType, static_cast< int >GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> IntegrationPointsContainerType
 
typedef std::array< Matrix, static_cast< int >GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> ShapeFunctionsValuesContainerType
 
typedef GeometryData::ShapeFunctionsLocalGradientsContainerType ShapeFunctionsLocalGradientsContainerType
 
typedef DenseVector< MatrixJacobiansType
 
typedef GeometryData::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
 
typedef GeometryData::ShapeFunctionsSecondDerivativesType ShapeFunctionsSecondDerivativesType
 
typedef GeometryData::ShapeFunctionsThirdDerivativesType ShapeFunctionsThirdDerivativesType
 
typedef DenseVector< doubleNormalType
 
typedef PointType::Pointer PointPointerType
 data type stores in this container. More...
 
typedef const PointPointerType ConstPointPointerType
 
typedef TPointType & PointReferenceType
 
typedef const TPointType & ConstPointReferenceType
 
typedef std::vector< PointPointerTypePointPointerContainerType
 
typedef PointsArrayType::iterator iterator
 PointsArrayType typedefs. More...
 
typedef PointsArrayType::const_iterator const_iterator
 
typedef PointsArrayType::ptr_iterator ptr_iterator
 
typedef PointsArrayType::ptr_const_iterator ptr_const_iterator
 
typedef PointsArrayType::difference_type difference_type
 
- Static Public Member Functions inherited from Kratos::Geometry< TPointType >
static bool HasSameType (const GeometryType &rLHS, const GeometryType &rRHS)
 Checks if two GeometryType have the same type. More...
 
static bool HasSameType (const GeometryType *rLHS, const GeometryType *rRHS)
 Checks if two GeometryType have the same type (pointer version) More...
 
static bool HasSameGeometryType (const GeometryType &rLHS, const GeometryType &rRHS)
 Checks if two GeometryType have the same geometry type. More...
 
static bool HasSameGeometryType (const GeometryType *rLHS, const GeometryType *rRHS)
 Checks if two GeometryType have the same geometry type (pointer version) More...
 
static bool IsSame (const GeometryType &rLHS, const GeometryType &rRHS)
 Checks if two GeometryType are the same. More...
 
static bool IsSame (const GeometryType *rLHS, const GeometryType *rRHS)
 Checks if two GeometryType are the same (pointer version) More...
 
static IndexType GenerateId (const std::string &rName)
 Gets the corresponding hash-Id to a string name. More...
 
- Static Public Attributes inherited from Kratos::Geometry< TPointType >
static constexpr IndexType BACKGROUND_GEOMETRY_INDEX = std::numeric_limits<IndexType>::max()
 
- Protected Member Functions inherited from Kratos::Geometry< TPointType >
void SetGeometryData (GeometryData const *pGeometryData)
 updates the pointer to GeometryData of the respective geometry. More...
 
virtual double ShortestToLongestEdgeQuality () const
 
virtual double RegularityQuality () const
 
virtual double VolumeToSurfaceAreaQuality () const
 
virtual double VolumeToEdgeLengthQuality () const
 
virtual double VolumeToAverageEdgeLength () const
 
virtual double VolumeToRMSEdgeLength () const
 
virtual double MinDihedralAngle () const
 
virtual double MaxDihedralAngle () const
 
virtual double MinSolidAngle () const
 
bool AllPointsAreValid () const
 Checks if the geometry points are valid Checks if the geometry points are valid from the pointer value Points are not valid when the pointer value is null. More...
 

Detailed Description

template<class TPointType>
class Kratos::Triangle3D3< TPointType >

A three node 3D triangle geometry with linear shape functions.

While the shape functions are only defined in 2D it is possible to define an arbitrary orientation in space. Thus it can be used for defining surfaces on 3D elements. The node ordering corresponds with: v ^ | 2 |\ |\ | \ |\ | `\ 0-------—1 --> u

Author
Riccardo Rossi
Janosch Stascheit
Felix Nagel

Member Typedef Documentation

◆ BaseType

template<class TPointType >
typedef Geometry<TPointType> Kratos::Triangle3D3< TPointType >::BaseType

Geometry as base class.

◆ CoordinatesArrayType

template<class TPointType >
typedef BaseType::CoordinatesArrayType Kratos::Triangle3D3< TPointType >::CoordinatesArrayType

Array of coordinates. Can be Nodes, Points or IntegrationPoints

◆ EdgeType

template<class TPointType >
typedef Line3D2<TPointType> Kratos::Triangle3D3< TPointType >::EdgeType

Type of edge geometry

◆ FaceType

template<class TPointType >
typedef Triangle3D3<TPointType> Kratos::Triangle3D3< TPointType >::FaceType

Type of face geometry

◆ GeometriesArrayType

template<class TPointType >
typedef BaseType::GeometriesArrayType Kratos::Triangle3D3< TPointType >::GeometriesArrayType

A Vector of counted pointers to Geometries. Used for returning edges of the geometry.

◆ GeometryType

template<class TPointType >
typedef Geometry<TPointType> Kratos::Triangle3D3< TPointType >::GeometryType

◆ IndexType

template<class TPointType >
typedef BaseType::IndexType Kratos::Triangle3D3< TPointType >::IndexType

Type used for indexing in geometry class. std::size_t used for indexing point or integration point access methods and also all other methods which need point or integration point index.

◆ IntegrationMethod

template<class TPointType >
typedef GeometryData::IntegrationMethod Kratos::Triangle3D3< TPointType >::IntegrationMethod

Integration methods implemented in geometry.

◆ IntegrationPointsArrayType

template<class TPointType >
typedef BaseType::IntegrationPointsArrayType Kratos::Triangle3D3< TPointType >::IntegrationPointsArrayType

A Vector of IntegrationPointType which used to hold integration points related to an integration method. IntegrationPoints functions used this type to return their results.

◆ IntegrationPointsContainerType

A Vector of IntegrationPointsArrayType which used to hold integration points related to different integration method implemented in geometry.

◆ IntegrationPointType

template<class TPointType >
typedef BaseType::IntegrationPointType Kratos::Triangle3D3< TPointType >::IntegrationPointType

This type used for representing an integration point in geometry. This integration point is a point with an additional weight component.

◆ JacobiansType

template<class TPointType >
typedef BaseType::JacobiansType Kratos::Triangle3D3< TPointType >::JacobiansType

A third order tensor to hold jacobian matrices evaluated at integration points. Jacobian and InverseOfJacobian functions return this type as their result.

◆ NormalType

template<class TPointType >
typedef BaseType::NormalType Kratos::Triangle3D3< TPointType >::NormalType

Type of the normal vector used for normal to edges in geomety.

◆ PointsArrayType

template<class TPointType >
typedef BaseType::PointsArrayType Kratos::Triangle3D3< TPointType >::PointsArrayType

Array of counted pointers to point. This type used to hold geometry's points.

◆ PointType

template<class TPointType >
typedef TPointType Kratos::Triangle3D3< TPointType >::PointType

Redefinition of template parameter TPointType.

◆ ShapeFunctionsGradientsType

A third order tensor to hold shape functions' local gradients. ShapefunctionsLocalGradients function return this type as its result.

◆ ShapeFunctionsLocalGradientsContainerType

A fourth order tensor used as shape functions' local gradients container in geometry.

◆ ShapeFunctionsSecondDerivativesType

A third order tensor to hold shape functions' local second derivatives. ShapefunctionsLocalGradients function return this type as its result.

◆ ShapeFunctionsThirdDerivativesType

A third order tensor to hold shape functions' local third derivatives. ShapefunctionsLocalGradients function return this type as its result.

◆ ShapeFunctionsValuesContainerType

A third order tensor used as shape functions' values container.

◆ SizeType

template<class TPointType >
typedef BaseType::SizeType Kratos::Triangle3D3< TPointType >::SizeType

This type is used to return size or dimension in geometry. Dimension, WorkingDimension, PointsNumber and ... return this type as their results.

Constructor & Destructor Documentation

◆ Triangle3D3() [1/6]

template<class TPointType >
Kratos::Triangle3D3< TPointType >::Triangle3D3 ( typename PointType::Pointer  pFirstPoint,
typename PointType::Pointer  pSecondPoint,
typename PointType::Pointer  pThirdPoint 
)
inline

◆ Triangle3D3() [2/6]

template<class TPointType >
Kratos::Triangle3D3< TPointType >::Triangle3D3 ( const PointsArrayType ThisPoints)
inlineexplicit

◆ Triangle3D3() [3/6]

template<class TPointType >
Kratos::Triangle3D3< TPointType >::Triangle3D3 ( const IndexType  GeometryId,
const PointsArrayType rThisPoints 
)
inlineexplicit

Constructor with Geometry Id.

◆ Triangle3D3() [4/6]

template<class TPointType >
Kratos::Triangle3D3< TPointType >::Triangle3D3 ( const std::string &  rGeometryName,
const PointsArrayType rThisPoints 
)
inlineexplicit

Constructor with Geometry Name.

◆ Triangle3D3() [5/6]

template<class TPointType >
Kratos::Triangle3D3< TPointType >::Triangle3D3 ( Triangle3D3< TPointType > const &  rOther)
inline

Copy constructor. Construct this geometry as a copy of given geometry.

Note
This copy constructor does not copy the points and new geometry shares points with given source geometry. It is obvious that any change to this new geometry's point affect source geometry's points too.

◆ Triangle3D3() [6/6]

template<class TPointType >
template<class TOtherPointType >
Kratos::Triangle3D3< TPointType >::Triangle3D3 ( Triangle3D3< TOtherPointType > const &  rOther)
inlineexplicit

Copy constructor from a geometry with other point type. Construct this geometry as a copy of given geometry which has different type of points. The given goemetry's TOtherPointType* must be implicity convertible to this geometry PointType.

Note
This copy constructor does not copy the points and new geometry shares points with given source geometry. It is obvious that any change to this new geometry's point affect source geometry's points too.

◆ ~Triangle3D3()

template<class TPointType >
Kratos::Triangle3D3< TPointType >::~Triangle3D3 ( )
inlineoverride

Destructor. Does nothing!!!

Member Function Documentation

◆ AllSameSide()

template<class TPointType >
bool Kratos::Triangle3D3< TPointType >::AllSameSide ( array_1d< double, 3 > const &  Distances) const
inline

◆ Area()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::Area ( ) const
inlineoverridevirtual

This method calculates and returns area or surface area of this geometry depending to it's dimension.

For one dimensional geometry it returns zero, for two dimensional it gives area and for three dimensional geometries it gives surface area.

Returns
double value contains area or surface area
See also
Length()
Volume()
DomainSize()

Reimplemented from Kratos::Geometry< TPointType >.

◆ AreaToEdgeLengthRatio()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::AreaToEdgeLengthRatio ( ) const
inlineoverridevirtual

Calculates the area to edge length quality metric. Calculates the area to edge length quality metric using the sum of the distances squares. This metric is bounded by the interval (0,1) being: 1 -> Optimal value 0 -> Worst value

@formulae $$ \frac{h_{min}}{h_{max}} $$

Returns
The Inradius to Circumradius Quality metric.

Reimplemented from Kratos::Geometry< TPointType >.

◆ AreaToEdgeLengthSquareRatio()

template<class TPointType >
virtual double Kratos::Triangle3D3< TPointType >::AreaToEdgeLengthSquareRatio ( ) const
inlinevirtual

Calculates the area to edge length quality metric. Calculates the area to edge length quality metric using the square of the sum of the distances. This metric is bounded by the interval (0,1) being: 1 -> Optimal value 0 -> Worst value

@formulae $$ \frac{h_{min}}{h_{max}} $$

Returns
The Inradius to Circumradius Quality metric.

◆ AverageEdgeLength()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::AverageEdgeLength ( ) const
inlineoverridevirtual

This method calculates and returns the average edge length of the geometry

Returns
double value with the average edge length
See also
MinEdgeLength()
MaxEdgeLength()

Reimplemented from Kratos::Geometry< TPointType >.

◆ CalculateDistance()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::CalculateDistance ( const CoordinatesArrayType rPointGlobalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlineoverridevirtual

Computes the distance between an point in global coordinates and the closest point of this geometry. If projection fails, double::max will be returned.

Parameters
rPointGlobalCoordinatesthe point to which the closest point has to be found.
Toleranceaccepted orthogonal error.
Returns
Distance to geometry. positive -> outside of to the geometry (for 2D and solids) 0 -> on/ in the geometry.

Reimplemented from Kratos::Geometry< TPointType >.

◆ Circumradius()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::Circumradius ( ) const
inlineoverridevirtual

Calculates the circumradius of the geometry. Calculates the circumradius of the geometry.

Returns
Circumradius of the geometry.
See also
Inradius()

Reimplemented from Kratos::Geometry< TPointType >.

◆ Create() [1/4]

template<class TPointType >
BaseType::Pointer Kratos::Triangle3D3< TPointType >::Create ( const BaseType rGeometry) const
inlineoverride

Creates a new geometry pointer.

Parameters
rGeometryreference to an existing geometry
Returns
Pointer to the new geometry

◆ Create() [2/4]

template<class TPointType >
BaseType::Pointer Kratos::Triangle3D3< TPointType >::Create ( const IndexType  NewGeometryId,
const BaseType rGeometry 
) const
inlineoverride

Creates a new geometry pointer.

Parameters
NewGeometryIdthe ID of the new geometry
rGeometryreference to an existing geometry
Returns
Pointer to the new geometry

◆ Create() [3/4]

template<class TPointType >
BaseType::Pointer Kratos::Triangle3D3< TPointType >::Create ( const IndexType  NewGeometryId,
PointsArrayType const &  rThisPoints 
) const
inlineoverridevirtual

Creates a new geometry pointer.

Parameters
NewGeometryIdthe ID of the new geometry
rThisPointsthe nodes of the new geometry
Returns
Pointer to the new geometry

Reimplemented from Kratos::Geometry< TPointType >.

◆ Create() [4/4]

template<class TPointType >
BaseType::Pointer Kratos::Triangle3D3< TPointType >::Create ( PointsArrayType const &  rThisPoints) const
inlineoverridevirtual

Creates a new geometry pointer.

Parameters
rThisPointsthe nodes of the new geometry
Returns
Pointer to the new geometry

Reimplemented from Kratos::Geometry< TPointType >.

◆ DeterminantOfJacobian() [1/3]

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::DeterminantOfJacobian ( const CoordinatesArrayType rPoint) const
inlineoverridevirtual

Determinant of jacobian in given point. This method calculate determinant of jacobian matrix in given point.

Parameters
rPointpoint which determinant of jacobians has to be calculated in it.
Returns
Determinamt of jacobian matrix \( |J| \) in given point.
See also
DeterminantOfJacobian
InverseOfJacobian

Reimplemented from Kratos::Geometry< TPointType >.

◆ DeterminantOfJacobian() [2/3]

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::DeterminantOfJacobian ( IndexType  IntegrationPoint,
IntegrationMethod  ThisMethod 
) const
inlineoverridevirtual

Determinant of jacobian in specific integration point of given integration method. This method calculate determinant of jacobian in given integration point of given integration method.

Parameters
IntegrationPointIndexindex of integration point which jacobians has to be calculated in it.
IntegrationPointIndexindex of integration point which determinant of jacobians has to be calculated in it.
Returns
Determinamt of jacobian matrix \( |J|_i \) where \( i \) is the given integration point index of given integration method.
See also
Jacobian
InverseOfJacobian

Reimplemented from Kratos::Geometry< TPointType >.

◆ DeterminantOfJacobian() [3/3]

template<class TPointType >
Vector& Kratos::Triangle3D3< TPointType >::DeterminantOfJacobian ( Vector rResult,
IntegrationMethod  ThisMethod 
) const
inlineoverridevirtual

Determinant of jacobians for given integration method. This method calculates determinant of jacobian in all integrations points of given integration method.

Returns
Vector of double which is vector of determinants of jacobians \( |J|_i \) where \( i=1,2,...,n \) is the integration point index of given integration method.
See also
Jacobian
InverseOfJacobian

Reimplemented from Kratos::Geometry< TPointType >.

◆ DomainSize()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::DomainSize ( ) const
inlineoverridevirtual

This method calculates and returns length, area or volume of this geometry depending to it's dimension.

For one dimensional geometry it returns its length, for two dimensional it gives area and for three dimensional geometries it gives its volume.

Returns
double value contains length, area or volume.
See also
Length()
Area()
Volume()

Reimplemented from Kratos::Geometry< TPointType >.

◆ EdgesNumber()

template<class TPointType >
SizeType Kratos::Triangle3D3< TPointType >::EdgesNumber ( ) const
inlineoverridevirtual

This method gives you number of all edges of this geometry.

For example, for a hexahedron, this would be 12

Returns
SizeType containes number of this geometry edges.
See also
EdgesNumber()
Edges()
GenerateEdges()
FacesNumber()
Faces()
GenerateFaces()

Reimplemented from Kratos::Geometry< TPointType >.

◆ Faces()

template<class TPointType >
GeometriesArrayType Kratos::Triangle3D3< TPointType >::Faces ( void  )
inlineoverride

Returns all faces of the current geometry. This is only implemented for 3D geometries, since 2D geometries only have edges but no faces

See also
EdgesNumber
Edges
FacesNumber

◆ FacesNumber()

template<class TPointType >
SizeType Kratos::Triangle3D3< TPointType >::FacesNumber ( ) const
inlineoverridevirtual

Returns the number of faces of the current geometry.

This is only implemented for 3D geometries, since 2D geometries only have edges but no faces

See also
EdgesNumber
Edges
Faces

Reimplemented from Kratos::Geometry< TPointType >.

◆ GenerateEdges()

template<class TPointType >
GeometriesArrayType Kratos::Triangle3D3< TPointType >::GenerateEdges ( ) const
inlineoverridevirtual

This method gives you all edges of this geometry.

This method will gives you all the edges with one dimension less than this geometry. For example a triangle would return three lines as its edges or a tetrahedral would return four triangle as its edges but won't return its six edge lines by this method.

Returns
GeometriesArrayType containes this geometry edges.
See also
EdgesNumber()
Edge()

Reimplemented from Kratos::Geometry< TPointType >.

◆ GenerateFaces()

template<class TPointType >
GeometriesArrayType Kratos::Triangle3D3< TPointType >::GenerateFaces ( ) const
inlineoverridevirtual

Returns all faces of the current geometry.

This is only implemented for 3D geometries, since 2D geometries only have edges but no faces

Returns
GeometriesArrayType containes this geometry faces.
See also
EdgesNumber
GenerateEdges
FacesNumber

Reimplemented from Kratos::Geometry< TPointType >.

◆ GetGeometryFamily()

template<class TPointType >
GeometryData::KratosGeometryFamily Kratos::Triangle3D3< TPointType >::GetGeometryFamily ( ) const
inlineoverridevirtual

Reimplemented from Kratos::Geometry< TPointType >.

◆ GetGeometryType()

template<class TPointType >
GeometryData::KratosGeometryType Kratos::Triangle3D3< TPointType >::GetGeometryType ( ) const
inlineoverridevirtual

Reimplemented from Kratos::Geometry< TPointType >.

◆ GetMajorAxis()

template<class TPointType >
int Kratos::Triangle3D3< TPointType >::GetMajorAxis ( array_1d< double, 3 > const &  V) const
inline

◆ HasIntersection() [1/2]

template<class TPointType >
bool Kratos::Triangle3D3< TPointType >::HasIntersection ( const GeometryType rThisGeometry) const
inlineoverridevirtual

Test the intersection with another geometry.

Parameters
ThisGeometryGeometry to intersect with
Returns
True if the geometries intersect, False in any other case.

Reimplemented from Kratos::Geometry< TPointType >.

◆ HasIntersection() [2/2]

template<class TPointType >
bool Kratos::Triangle3D3< TPointType >::HasIntersection ( const Point rLowPoint,
const Point rHighPoint 
) const
inlineoverridevirtual

Check if an axis-aliged bounding box (AABB) intersects a triangle

Based on code develop by Moller: http://fileadmin.cs.lth.se/cs/personal/tomas_akenine-moller/code/tribox3.txt and the article "A Fast Triangle-Triangle Intersection Test", SIGGRAPH '05 ACM, Art.8, 2005: http://fileadmin.cs.lth.se/cs/personal/tomas_akenine-moller/code/tribox_tam.pdf

Returns
bool if the triangle overlaps a box
Parameters
rLowPointfirst corner of the box
rHighPointsecond corner of the box

Reimplemented from Kratos::Geometry< TPointType >.

◆ Info()

template<class TPointType >
std::string Kratos::Triangle3D3< TPointType >::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

Returns
String contains information about this geometry.
See also
PrintData()
PrintInfo()

Reimplemented from Kratos::Geometry< TPointType >.

◆ Inradius()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::Inradius ( ) const
inlineoverridevirtual

Calculates the inradius of the geometry. Calculates the inradius of the geometry.

Returns
Inradius of the geometry.
See also
Circumradius()

Reimplemented from Kratos::Geometry< TPointType >.

◆ InradiusToCircumradiusQuality()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::InradiusToCircumradiusQuality ( ) const
inlineoverridevirtual

Quality functions.

Calculates the inradius to circumradius quality metric. Calculates the inradius to circumradius quality metric. This metric is bounded by the interval (0,1) being: 1 -> Optimal value 0 -> Worst value

@formulae $$ \frac{r_K}{\rho_K} $$

Returns
The inradius to circumradius quality metric.

Reimplemented from Kratos::Geometry< TPointType >.

◆ InradiusToLongestEdgeQuality()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::InradiusToLongestEdgeQuality ( ) const
inlineoverridevirtual

Calculates the inradius to longest edge quality metric. Calculates the inradius to longest edge quality metric. This metric is bounded by the interval (0,1) being: 1 -> Optimal value 0 -> Worst value

@formulae $$ \frac{r_K}{h_{max}} $$

Returns
The inradius to longest edge quality metric.

Reimplemented from Kratos::Geometry< TPointType >.

◆ IsInside()

template<class TPointType >
bool Kratos::Triangle3D3< TPointType >::IsInside ( const CoordinatesArrayType rPoint,
CoordinatesArrayType rResult,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlineoverridevirtual

Returns whether given arbitrary point is inside the Geometry and the respective local point for the given global point.

Parameters
rPointThe point to be checked if is inside o note in global coordinates
rResultThe local coordinates of the point
ToleranceThe tolerance that will be considered to check if the point is inside or not
Returns
True if the point is inside, false otherwise

Reimplemented from Kratos::Geometry< TPointType >.

◆ Jacobian() [1/4]

template<class TPointType >
JacobiansType& Kratos::Triangle3D3< TPointType >::Jacobian ( JacobiansType rResult,
IntegrationMethod  ThisMethod 
) const
inlineoverridevirtual

TODO: implemented but not yet tested Jacobians for given method. This method calculates jacobians matrices in all integrations points of given integration method.

Parameters
ThisMethodintegration method which jacobians has to be calculated in its integration points.
Returns
JacobiansType a Vector of jacobian matrices \( J_i \) where \( i=1,2,...,n \) is the integration point index of given integration method.
See also
DeterminantOfJacobian
InverseOfJacobian

Reimplemented from Kratos::Geometry< TPointType >.

◆ Jacobian() [2/4]

template<class TPointType >
JacobiansType& Kratos::Triangle3D3< TPointType >::Jacobian ( JacobiansType rResult,
IntegrationMethod  ThisMethod,
Matrix DeltaPosition 
) const
inlineoverridevirtual

Jacobians for given method. This method calculates jacobians matrices in all integrations points of given integration method.

Parameters
ThisMethodintegration method which jacobians has to be calculated in its integration points.
Returns
JacobiansType a Vector of jacobian matrices \( J_i \) where \( i=1,2,...,n \) is the integration point index of given integration method.
Parameters
DeltaPositionMatrix with the nodes position increment which describes the configuration where the jacobian has to be calculated.
See also
DeterminantOfJacobian
InverseOfJacobian

Reimplemented from Kratos::Geometry< TPointType >.

◆ Jacobian() [3/4]

template<class TPointType >
Matrix& Kratos::Triangle3D3< TPointType >::Jacobian ( Matrix rResult,
const CoordinatesArrayType rPoint 
) const
inlineoverridevirtual

TODO: implemented but not yet tested Jacobian in given point. This method calculate jacobian matrix in given point.

Parameters
rPointpoint which jacobians has to be calculated in it.
Returns
Matrix of double which is jacobian matrix \( J \) in given point.
See also
DeterminantOfJacobian
InverseOfJacobian

Reimplemented from Kratos::Geometry< TPointType >.

◆ Jacobian() [4/4]

template<class TPointType >
Matrix& Kratos::Triangle3D3< TPointType >::Jacobian ( Matrix rResult,
IndexType  IntegrationPointIndex,
IntegrationMethod  ThisMethod 
) const
inlineoverridevirtual

TODO: implemented but not yet tested Jacobian in specific integration point of given integration method. This method calculate jacobian matrix in given integration point of given integration method.

Parameters
IntegrationPointIndexindex of integration point which jacobians has to be calculated in it.
ThisMethodintegration method which jacobians has to be calculated in its integration points.
Returns
Matrix<double> Jacobian matrix \( J_i \) where \( i \) is the given integration point index of given integration method.
See also
DeterminantOfJacobian
InverseOfJacobian

Reimplemented from Kratos::Geometry< TPointType >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TPointType >
Kratos::Triangle3D3< TPointType >::KRATOS_CLASS_POINTER_DEFINITION ( Triangle3D3< TPointType >  )

Pointer definition of Triangle3D3

◆ Length()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::Length ( ) const
inlineoverridevirtual

Calculates and returns Length or charactereistic length of this geometry. This method calculates and returns Length or charactereistic length of this geometry depending on it's dimension. For one dimensional geometry for example Line it returns length of it and for the other geometries it gives Characteristic length otherwise. In the current geometry this function returns the determinant of jacobian

Returns
double value contains length or Characteristic length
See also
Area()
Volume()
DomainSize() :TODO: could be replaced by something more suitable (comment by janosch)

Reimplemented from Kratos::Geometry< TPointType >.

◆ LumpingFactors()

template<class TPointType >
Vector& Kratos::Triangle3D3< TPointType >::LumpingFactors ( Vector rResult,
const typename BaseType::LumpingMethods  LumpingMethod = BaseType::LumpingMethods::ROW_SUM 
) const
inlineoverridevirtual

Lumping factors for the calculation of the lumped mass matrix.

Parameters
rResultVector containing the lumping factors
LumpingMethodThe lumping method considered. The three methods available are:
  • The row sum method
  • Diagonal scaling
  • Evaluation of M using a quadrature involving only the nodal points and thus automatically yielding a diagonal matrix for standard element shape function

Reimplemented from Kratos::Geometry< TPointType >.

◆ MaxEdgeLength()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::MaxEdgeLength ( ) const
inlineoverridevirtual

This method calculates and returns the maximum edge length of the geometry

Returns
double value with the maximum edge length
See also
MinEdgeLength()
AverageEdgeLength()

Reimplemented from Kratos::Geometry< TPointType >.

◆ MinEdgeLength()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::MinEdgeLength ( ) const
inlineoverridevirtual

Class Interface.

This method calculates and returns the minimum edge length of the geometry

Returns
double value with the minimum edge length
See also
MaxEdgeLength()
AverageEdgeLength()

Reimplemented from Kratos::Geometry< TPointType >.

◆ NodesInFaces()

template<class TPointType >
void Kratos::Triangle3D3< TPointType >::NodesInFaces ( DenseMatrix< unsigned int > &  NodesInFaces) const
inlineoverridevirtual

Reimplemented from Kratos::Geometry< TPointType >.

◆ Normal()

template<class TPointType >
array_1d<double, 3> Kratos::Triangle3D3< TPointType >::Normal ( const CoordinatesArrayType rPointLocalCoordinates) const
inlineoverridevirtual

It returns a vector that is normal to its corresponding geometry in the given local point.

Parameters
rPointLocalCoordinatesReference to the local coordinates of the point in where the normal is to be computed
Returns
The normal in the given point

Reimplemented from Kratos::Geometry< TPointType >.

◆ NumberNodesInFaces()

template<class TPointType >
void Kratos::Triangle3D3< TPointType >::NumberNodesInFaces ( DenseVector< unsigned int > &  NumberNodesInFaces) const
inlineoverridevirtual

Reimplemented from Kratos::Geometry< TPointType >.

◆ operator=() [1/2]

template<class TPointType >
Triangle3D3& Kratos::Triangle3D3< TPointType >::operator= ( const Triangle3D3< TPointType > &  rOther)
inline

Assignment operator.

Note
This operator don't copy the points and this geometry shares points with given source geometry. It's obvious that any change to this geometry's point affect source geometry's points too.
See also
Clone
ClonePoints

◆ operator=() [2/2]

template<class TPointType >
template<class TOtherPointType >
Triangle3D3& Kratos::Triangle3D3< TPointType >::operator= ( Triangle3D3< TOtherPointType > const &  rOther)
inline

Assignment operator for geometries with different point type.

Note
This operator don't copy the points and this geometry shares points with given source geometry. It's obvious that any change to this geometry's point affect source geometry's points too.
See also
Clone
ClonePoints

◆ PointLocalCoordinates()

template<class TPointType >
CoordinatesArrayType& Kratos::Triangle3D3< TPointType >::PointLocalCoordinates ( CoordinatesArrayType rResult,
const CoordinatesArrayType rPoint 
) const
inlineoverridevirtual

Returns the local coordinates of a given arbitrary point.

Parameters
rResultThe vector containing the local coordinates of the point
rPointThe point in global coordinates
Returns
The vector containing the local coordinates of the point

Reimplemented from Kratos::Geometry< TPointType >.

◆ PointsLocalCoordinates()

template<class TPointType >
Matrix& Kratos::Triangle3D3< TPointType >::PointsLocalCoordinates ( Matrix rResult) const
inlineoverridevirtual

returns the local coordinates of all nodes of the current geometry

Parameters
rResulta Matrix object that will be overwritten by the result
Returns
the local coordinates of all nodes

Reimplemented from Kratos::Geometry< TPointType >.

◆ PrintData()

template<class TPointType >
void Kratos::Triangle3D3< TPointType >::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

Print geometry's data into given stream. Prints it's points by the order they stored in the geometry and then center point of geometry.

Parameters
rOStreamStream to print into it.
See also
PrintInfo()
Info() :TODO: needs to be reviewed because it is not properly implemented yet (comment by janosch)

Reimplemented from Kratos::Geometry< TPointType >.

◆ PrintInfo()

template<class TPointType >
void Kratos::Triangle3D3< TPointType >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

Parameters
rOStreamStream to print into it.
See also
PrintData()
Info()

Reimplemented from Kratos::Geometry< TPointType >.

◆ ProjectionPoint()

template<class TPointType >
int Kratos::Triangle3D3< TPointType >::ProjectionPoint ( const CoordinatesArrayType rPointGlobalCoordinates,
CoordinatesArrayType rProjectedPointGlobalCoordinates,
CoordinatesArrayType rProjectedPointLocalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlineoverridevirtual

Projects a certain point on the geometry, or finds the closest point, depending on the provided initial guess. The external point does not necessary lay on the geometry. It shall deal as the interface to the mathematical projection function e.g. the Newton-Raphson. Thus, the breaking criteria does not necessarily mean that it found a point on the surface, if it is really the closest if or not. It shows only if the breaking criteria, defined by the tolerance is reached.

This function requires an initial guess, provided by rProjectedPointLocalCoordinates. This function can be a very costly operation.

Parameters
rPointGlobalCoordinatesthe point to which the projection has to be found.
rProjectedPointGlobalCoordinatesthe location of the projection in global coordinates.
rProjectedPointLocalCoordinatesthe location of the projection in local coordinates. The variable is as initial guess!
Toleranceaccepted of orthogonal error to projection.
Returns
It is chosen to take an int as output parameter to keep more possibilities within the interface. 0 -> failed 1 -> converged

Reimplemented from Kratos::Geometry< TPointType >.

◆ ProjectionPointGlobalToLocalSpace()

template<class TPointType >
int Kratos::Triangle3D3< TPointType >::ProjectionPointGlobalToLocalSpace ( const CoordinatesArrayType rPointGlobalCoordinates,
CoordinatesArrayType rProjectionPointLocalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlineoverridevirtual

Projects a point onto the geometry Projects a certain point on the geometry, or finds the closest point, depending on the provided initial guess. The external point does not necessary lay on the geometry. It shall deal as the interface to the mathematical projection function e.g. the Newton-Raphson. Thus, the breaking criteria does not necessarily mean that it found a point on the surface, if it is really the closest if or not. It shows only if the breaking criteria, defined by the tolerance is reached. This function requires an initial guess, provided by rProjectionPointLocalCoordinates. This function can be a very costly operation.

Parameters
rPointLocalCoordinatesGlobal coordinates of the point to be projected
rProjectionPointLocalCoordinatesProjection point local coordinates. This should be initialized with the initial guess
ToleranceAccepted orthogonal error
Returns
int 0 -> failed 1 -> converged

Reimplemented from Kratos::Geometry< TPointType >.

◆ ProjectionPointLocalToLocalSpace()

template<class TPointType >
int Kratos::Triangle3D3< TPointType >::ProjectionPointLocalToLocalSpace ( const CoordinatesArrayType rPointLocalCoordinates,
CoordinatesArrayType rProjectionPointLocalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlineoverridevirtual

Projects a point onto the geometry Projects a certain point on the geometry, or finds the closest point, depending on the provided initial guess. The external point does not necessary lay on the geometry. It shall deal as the interface to the mathematical projection function e.g. the Newton-Raphson. Thus, the breaking criteria does not necessarily mean that it found a point on the surface, if it is really the closest if or not. It shows only if the breaking criteria, defined by the tolerance is reached. This function requires an initial guess, provided by rProjectionPointLocalCoordinates. This function can be a very costly operation.

Parameters
rPointLocalCoordinatesLocal coordinates of the point to be projected
rProjectionPointLocalCoordinatesProjection point local coordinates. This should be initialized with the initial guess
ToleranceAccepted orthogonal error
Returns
int 0 -> failed 1 -> converged

Reimplemented from Kratos::Geometry< TPointType >.

◆ ShapeFunctionsGradients()

template<class TPointType >
virtual Matrix& Kratos::Triangle3D3< TPointType >::ShapeFunctionsGradients ( Matrix rResult,
PointType rPoint 
)
inlinevirtual

returns the shape function gradients in an arbitrary point, given in local coordinates

Parameters
rResultthe matrix of gradients, will be overwritten with the gradients for all shape functions in given point
rPointthe given point the gradients are calculated in

◆ ShapeFunctionsLocalGradients() [1/3]

template<class TPointType >
virtual ShapeFunctionsGradientsType Kratos::Triangle3D3< TPointType >::ShapeFunctionsLocalGradients ( )
inlinevirtual

Calculates the local gradients for all integration points for the default integration method

◆ ShapeFunctionsLocalGradients() [2/3]

template<class TPointType >
virtual ShapeFunctionsGradientsType Kratos::Triangle3D3< TPointType >::ShapeFunctionsLocalGradients ( IntegrationMethod  ThisMethod)
inlinevirtual

Calculates the local gradients for all integration points for given integration method

◆ ShapeFunctionsLocalGradients() [3/3]

template<class TPointType >
Matrix& Kratos::Triangle3D3< TPointType >::ShapeFunctionsLocalGradients ( Matrix rResult,
const CoordinatesArrayType rPoint 
) const
inlineoverridevirtual

Calculates the gradients in terms of local coordinates of all shape functions in a given point.

Parameters
rPointthe current point at which the gradients are calculated in local coordinates
Returns
the gradients of all shape functions \( \frac{\partial N^i}{\partial \xi_j} \)

Reimplemented from Kratos::Geometry< TPointType >.

◆ ShapeFunctionsSecondDerivatives()

template<class TPointType >
ShapeFunctionsSecondDerivativesType& Kratos::Triangle3D3< TPointType >::ShapeFunctionsSecondDerivatives ( ShapeFunctionsSecondDerivativesType rResult,
const CoordinatesArrayType rPoint 
) const
inlineoverridevirtual

returns the second order derivatives of all shape functions in given arbitrary pointers

Parameters
rResulta third order tensor which contains the second derivatives
rPointthe given point the second order derivatives are calculated in

Reimplemented from Kratos::Geometry< TPointType >.

◆ ShapeFunctionsThirdDerivatives()

template<class TPointType >
ShapeFunctionsThirdDerivativesType& Kratos::Triangle3D3< TPointType >::ShapeFunctionsThirdDerivatives ( ShapeFunctionsThirdDerivativesType rResult,
const CoordinatesArrayType rPoint 
) const
inlineoverridevirtual

returns the third order derivatives of all shape functions in given arbitrary pointers

Parameters
rResulta fourth order tensor which contains the third derivatives
rPointthe given point the third order derivatives are calculated in

Reimplemented from Kratos::Geometry< TPointType >.

◆ ShapeFunctionsValues()

template<class TPointType >
Vector& Kratos::Triangle3D3< TPointType >::ShapeFunctionsValues ( Vector rResult,
const CoordinatesArrayType rCoordinates 
) const
inlineoverridevirtual

This method gives all non-zero shape functions values evaluated at the rCoordinates provided

Note
There is no control if the return vector is empty or not!
Returns
Vector of values of shape functions \( F_{i} \) where i is the shape function index (for NURBS it is the index of the local enumeration in the element).
See also
ShapeFunctionValue
ShapeFunctionsLocalGradients
ShapeFunctionLocalGradient

Reimplemented from Kratos::Geometry< TPointType >.

◆ ShapeFunctionValue()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::ShapeFunctionValue ( IndexType  ShapeFunctionIndex,
const CoordinatesArrayType rPoint 
) const
inlineoverridevirtual

Calculates the value of a given shape function at a given point.

Parameters
ShapeFunctionIndexThe number of the desired shape function
rPointthe given point in local coordinates at which the value of the shape function is calculated
Returns
the value of the shape function at the given point

Reimplemented from Kratos::Geometry< TPointType >.

◆ ShortestAltitudeToEdgeLengthRatio()

template<class TPointType >
double Kratos::Triangle3D3< TPointType >::ShortestAltitudeToEdgeLengthRatio ( ) const
inlineoverridevirtual

Calculates the shortest altitude to edge length quality metric. Calculates the shortest altitude to edge length quality metric. This metric is bounded by the interval (0,1) being: 1 -> Optimal value 0 -> Worst value -1 -> Optimal value with inverted volume.

@formulae $$ \frac{h_{min}}{h_{max}} $$

Returns
The shortest altitude to edge length quality metric.

Reimplemented from Kratos::Geometry< TPointType >.

◆ ShortestAltitudeToLongestEdge()

template<class TPointType >
virtual double Kratos::Triangle3D3< TPointType >::ShortestAltitudeToLongestEdge ( ) const
inlinevirtual

Calculates the shortest altitude to longest edge. Calculates the shortest altitude to longest edge. This metric is bounded by the interval (0,1) being: 1 -> Optimal value 0 -> Worst value -1 -> Optimal value with inverted volume.

@formulae $$ \frac{h_{min}}{h_{max}} $$

Returns
The shortest altitude to edge length quality metric.

Friends And Related Function Documentation

◆ Serializer

template<class TPointType >
friend class Serializer
friend

◆ Triangle3D3

template<class TPointType >
template<class TOtherPointType >
friend class Triangle3D3
friend

The documentation for this class was generated from the following file: