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::Geometry< TPointType > Class Template Reference

Geometry base class. More...

#include <geometry.h>

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

Public Member Functions

Life Cycle
 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...
 
virtual GeometryData::KratosGeometryFamily GetGeometryFamily () const
 
virtual GeometryData::KratosGeometryType GetGeometryType () const
 
Operators
Geometryoperator= (const Geometry &rOther)
 
template<class TOtherPointType >
Geometryoperator= (Geometry< TOtherPointType > const &rOther)
 
 operator PointsArrayType & ()
 
PointerVector Operators
TPointType & operator[] (const SizeType &i)
 
TPointType const & operator[] (const SizeType &i) const
 
PointPointerTypeoperator() (const SizeType &i)
 
ConstPointPointerTypeoperator() (const SizeType &i) const
 
PointerVector Operations
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
 
Data Container
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
 
Dynamic access to internals
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...
 
Operations
virtual Pointer Create (PointsArrayType const &rThisPoints) const
 Creates a new geometry pointer. More...
 
virtual Pointer Create (const IndexType NewGeometryId, PointsArrayType const &rThisPoints) const
 Creates a new geometry pointer. 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 ()
 
virtual VectorLumpingFactors (Vector &rResult, const LumpingMethods LumpingMethod=LumpingMethods::ROW_SUM) const
 Lumping factors for the calculation of the lumped mass matrix. More...
 
Geometry Data and Geometry Shape Function Container
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)
 
Parent
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...
 
Geometry part functions
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
 
Informations
SizeType WorkingSpaceDimension () const
 
SizeType LocalSpaceDimension () const
 
Mathematical Informations
virtual SizeType PolynomialDegree (IndexType LocalDirectionIndex) const
 Return polynomial degree of the geometry in a certain direction. More...
 
Geometrical Informations
virtual double Length () const
 
virtual double Area () const
 This method calculate and return area or surface area of this geometry depending to it's dimension. More...
 
virtual double Volume () const
 This method calculate and return volume of this geometry. More...
 
virtual double DomainSize () const
 This method calculate and return length, area or volume of this geometry depending to it's dimension. More...
 
virtual double MinEdgeLength () const
 
virtual double MaxEdgeLength () const
 
virtual double AverageEdgeLength () const
 
virtual double Circumradius () const
 
virtual double Inradius () const
 
virtual bool HasIntersection (const GeometryType &ThisGeometry) const
 
virtual bool HasIntersection (const Point &rLowPoint, const Point &rHighPoint) const
 
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 (const CoordinatesArrayType &rPointLocalCoordinates) const
 It returns a vector that is normal to its corresponding geometry in the given local point. More...
 
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...
 
Quality
double Quality (const QualityCriteria qualityCriteria) const
 
virtual void ComputeDihedralAngles (Vector &rDihedralAngles) const
 
virtual void ComputeSolidAngles (Vector &rSolidAngles) const
 
Access
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 MatrixPointsLocalCoordinates (Matrix &rResult) const
 
virtual CoordinatesArrayTypePointLocalCoordinates (CoordinatesArrayType &rResult, const CoordinatesArrayType &rPoint) const
 Returns the local coordinates of a given arbitrary point. More...
 
IsInside
virtual bool IsInside (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rResult, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Checks if given point in global space coordinates is inside the geometry boundaries. This function computes the local coordinates and checks then if this point lays within the boundaries. More...
 
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...
 
Spans
virtual void SpansLocalSpace (std::vector< double > &rSpans, IndexType LocalDirectionIndex=0) const
 
Boundaries
virtual GeometriesArrayType GenerateBoundariesEntities () const
 This method gives you all boundaries entities of this geometry. More...
 
Points
virtual GeometriesArrayType GeneratePoints () const
 This method gives you all points of this geometry. More...
 
Edge
virtual SizeType EdgesNumber () const
 This method gives you number of all edges 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...
 
virtual GeometriesArrayType GenerateEdges () const
 This method gives you all edges of this geometry. More...
 
Face
virtual SizeType FacesNumber () const
 Returns the number of faces of the current geometry. More...
 
 KRATOS_DEPRECATED_MESSAGE ("This is legacy version (use GenerateFaces instead)") virtual GeometriesArrayType Faces(void)
 Returns all faces of the current geometry. More...
 
virtual GeometriesArrayType GenerateFaces () const
 Returns all faces of the current geometry. More...
 
virtual void NumberNodesInFaces (DenseVector< unsigned int > &rNumberNodesInFaces) const
 
virtual void NodesInFaces (DenseMatrix< unsigned int > &rNodesInFaces) const
 
Integration Points
SizeType IntegrationPointsNumber () const
 
SizeType IntegrationPointsNumber (IntegrationMethod ThisMethod) const
 
const IntegrationPointsArrayTypeIntegrationPoints () const
 
const IntegrationPointsArrayTypeIntegrationPoints (IntegrationMethod ThisMethod) const
 
virtual void CreateIntegrationPoints (IntegrationPointsArrayType &rIntegrationPoints, IntegrationInfo &rIntegrationInfo) const
 
Quadrature Point Geometries
virtual void CreateQuadraturePointGeometries (GeometriesArrayType &rResultGeometries, IndexType NumberOfShapeFunctionDerivatives, const IntegrationPointsArrayType &rIntegrationPoints, IntegrationInfo &rIntegrationInfo)
 
virtual void CreateQuadraturePointGeometries (GeometriesArrayType &rResultGeometries, IndexType NumberOfShapeFunctionDerivatives, IntegrationInfo &rIntegrationInfo)
 
Operation within Global Space
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...
 
Spatial Operations
virtual int ProjectionPoint (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rProjectedPointGlobalCoordinates, CoordinatesArrayType &rProjectedPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 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...
 
virtual int ProjectionPointLocalToLocalSpace (const CoordinatesArrayType &rPointLocalCoordinates, CoordinatesArrayType &rProjectionPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 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...
 
virtual int ProjectionPointGlobalToLocalSpace (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rProjectionPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 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...
 
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...
 
virtual double CalculateDistance (const CoordinatesArrayType &rPointGlobalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 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...
 
Jacobian
JacobiansTypeJacobian (JacobiansType &rResult) const
 
virtual JacobiansTypeJacobian (JacobiansType &rResult, IntegrationMethod ThisMethod) const
 
virtual JacobiansTypeJacobian (JacobiansType &rResult, IntegrationMethod ThisMethod, Matrix &DeltaPosition) const
 
MatrixJacobian (Matrix &rResult, IndexType IntegrationPointIndex) const
 
virtual MatrixJacobian (Matrix &rResult, IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 
virtual MatrixJacobian (Matrix &rResult, IndexType IntegrationPointIndex, IntegrationMethod ThisMethod, const Matrix &rDeltaPosition) const
 
virtual MatrixJacobian (Matrix &rResult, const CoordinatesArrayType &rCoordinates) const
 
virtual MatrixJacobian (Matrix &rResult, const CoordinatesArrayType &rCoordinates, Matrix &rDeltaPosition) const
 
VectorDeterminantOfJacobian (Vector &rResult) const
 
virtual VectorDeterminantOfJacobian (Vector &rResult, IntegrationMethod ThisMethod) const
 
double DeterminantOfJacobian (IndexType IntegrationPointIndex) const
 
virtual double DeterminantOfJacobian (IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 
virtual double DeterminantOfJacobian (const CoordinatesArrayType &rPoint) 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
 
Shape Function
const MatrixShapeFunctionsValues () const
 
virtual VectorShapeFunctionsValues (Vector &rResult, const CoordinatesArrayType &rCoordinates) const
 
const MatrixShapeFunctionsValues (IntegrationMethod ThisMethod) const
 
double ShapeFunctionValue (IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex) const
 
double ShapeFunctionValue (IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex, IntegrationMethod ThisMethod) const
 
virtual double ShapeFunctionValue (IndexType ShapeFunctionIndex, const CoordinatesArrayType &rCoordinates) 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
 
virtual MatrixShapeFunctionsLocalGradients (Matrix &rResult, const CoordinatesArrayType &rPoint) const
 
const MatrixShapeFunctionDerivatives (IndexType DerivativeOrderIndex, IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 
const MatrixShapeFunctionDerivatives (IndexType DerivativeOrderIndex, IndexType IntegrationPointIndex) const
 
virtual ShapeFunctionsSecondDerivativesTypeShapeFunctionsSecondDerivatives (ShapeFunctionsSecondDerivativesType &rResult, const CoordinatesArrayType &rPoint) const
 
virtual ShapeFunctionsThirdDerivativesTypeShapeFunctionsThirdDerivatives (ShapeFunctionsThirdDerivativesType &rResult, const CoordinatesArrayType &rPoint) 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
 
Input and output
virtual std::string Info () const
 Return geometry information as a string. More...
 
virtual std::string Name () const
 Returns name. More...
 
virtual void PrintInfo (std::ostream &rOStream) const
 Print information about this object. More...
 
virtual void PrintName (std::ostream &rOstream) const
 Print name. More...
 
virtual void PrintData (std::ostream &rOStream) const
 Print object's data. More...
 

Protected Member Functions

Geometry Data
void SetGeometryData (GeometryData const *pGeometryData)
 updates the pointer to GeometryData of the respective geometry. More...
 
Protected Operations
virtual double InradiusToCircumradiusQuality () const
 Quality functions. More...
 
virtual double AreaToEdgeLengthRatio () const
 
virtual double ShortestAltitudeToEdgeLengthRatio () const
 
virtual double InradiusToLongestEdgeQuality () const
 
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
 
Protected Inquiry
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...
 

Friends

Private Friends
template<class TOtherPointType >
class Geometry
 

Type Definitions

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 constexpr IndexType BACKGROUND_GEOMETRY_INDEX = std::numeric_limits<IndexType>::max()
 
 KRATOS_CLASS_POINTER_DEFINITION (Geometry)
 Pointer definition of Geometry. More...
 

Serialization

class Serializer
 

Inquiry

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
 
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...
 

Id

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...
 
static IndexType GenerateId (const std::string &rName)
 Gets the corresponding hash-Id to a string name. More...
 

Detailed Description

template<class TPointType>
class Kratos::Geometry< TPointType >

Geometry base class.

As a base class Geometry has all the common interface of Kratos' geometries. Also it contains array of pointers to its points, reference to shape functions values in all integrations points and also local gradients of shape functions evaluated in all integrations points.

Geometry is a template class with just one template parameter:

See also
Point
Node
Formulation
GeometryAndFormulationElement

Member Typedef Documentation

◆ const_iterator

template<class TPointType >
typedef PointsArrayType::const_iterator Kratos::Geometry< TPointType >::const_iterator

◆ ConstPointPointerType

template<class TPointType >
typedef const PointPointerType Kratos::Geometry< TPointType >::ConstPointPointerType

◆ ConstPointReferenceType

template<class TPointType >
typedef const TPointType& Kratos::Geometry< TPointType >::ConstPointReferenceType

◆ CoordinatesArrayType

template<class TPointType >
typedef PointType::CoordinatesArrayType Kratos::Geometry< TPointType >::CoordinatesArrayType

◆ difference_type

template<class TPointType >
typedef PointsArrayType::difference_type Kratos::Geometry< TPointType >::difference_type

◆ GeometriesArrayType

template<class TPointType >
typedef PointerVector<GeometryType> Kratos::Geometry< TPointType >::GeometriesArrayType

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

◆ GeometryType

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

This Geometry type.

◆ IndexType

template<class TPointType >
typedef std::size_t Kratos::Geometry< 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::Geometry< TPointType >::IntegrationMethod

Integration methods implemented in geometry.

◆ IntegrationPointsArrayType

template<class TPointType >
typedef std::vector<IntegrationPointType> Kratos::Geometry< 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 IntegrationPoint<3> Kratos::Geometry< TPointType >::IntegrationPointType

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

◆ iterator

template<class TPointType >
typedef PointsArrayType::iterator Kratos::Geometry< TPointType >::iterator

PointsArrayType typedefs.

◆ JacobiansType

template<class TPointType >
typedef DenseVector<Matrix > Kratos::Geometry< 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 DenseVector<double> Kratos::Geometry< TPointType >::NormalType

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

◆ PointPointerContainerType

template<class TPointType >
typedef std::vector<PointPointerType> Kratos::Geometry< TPointType >::PointPointerContainerType

◆ PointPointerType

template<class TPointType >
typedef PointType::Pointer Kratos::Geometry< TPointType >::PointPointerType

data type stores in this container.

◆ PointReferenceType

template<class TPointType >
typedef TPointType& Kratos::Geometry< TPointType >::PointReferenceType

◆ PointsArrayType

template<class TPointType >
typedef PointerVector<TPointType> Kratos::Geometry< TPointType >::PointsArrayType

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

◆ PointType

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

Redefinition of geometry template parameter TPointType as this geometry point type.

◆ ptr_const_iterator

template<class TPointType >
typedef PointsArrayType::ptr_const_iterator Kratos::Geometry< TPointType >::ptr_const_iterator

◆ ptr_iterator

template<class TPointType >
typedef PointsArrayType::ptr_iterator Kratos::Geometry< TPointType >::ptr_iterator

◆ ShapeFunctionsGradientsType

A third order tensor to hold shape functions' gradients. ShapefunctionsGradients 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 fourth order tensor to hold shape functions' local third order derivatives

◆ ShapeFunctionsValuesContainerType

template<class TPointType >
typedef std::array<Matrix, static_cast<int>GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> Kratos::Geometry< TPointType >::ShapeFunctionsValuesContainerType

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

◆ SizeType

template<class TPointType >
typedef std::size_t Kratos::Geometry< TPointType >::SizeType

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

Member Enumeration Documentation

◆ LumpingMethods

template<class TPointType >
enum Kratos::Geometry::LumpingMethods
strong

This defines the different methods to compute the lumping methods.

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
Enumerator
ROW_SUM 
DIAGONAL_SCALING 
QUADRATURE_ON_NODES 

◆ QualityCriteria

template<class TPointType >
enum Kratos::Geometry::QualityCriteria
strong

Different criteria to evaluate the quality of a geometry. Different criteria to evaluate the quality of a geometry.

Enumerator
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 

Constructor & Destructor Documentation

◆ Geometry() [1/8]

template<class TPointType >
Kratos::Geometry< TPointType >::Geometry ( )
inline

Standard Constructor. Generates self assigned id.

◆ Geometry() [2/8]

template<class TPointType >
Kratos::Geometry< TPointType >::Geometry ( IndexType  GeomertyId)
inline

Standard Constructor with a geometry Id.

◆ Geometry() [3/8]

template<class TPointType >
Kratos::Geometry< TPointType >::Geometry ( const std::string &  GeometryName)
inline

Standard Constructor with a Name.

◆ Geometry() [4/8]

template<class TPointType >
Kratos::Geometry< TPointType >::Geometry ( const PointsArrayType ThisPoints,
GeometryData const *  pThisGeometryData = &GeometryDataInstance() 
)
inline

Complete argument constructor. This constructor gives a complete set of arguments to pass all the initial value of all the member variables of geometry class. Also it has default value for integration variables to make it usefull in the case of constructing new geometry without mapping and integrating properties.

Parameters
ThisPointsVector of pointers to points which this geometry constructing on them. Points must have dimension equal or greater than working space dimension though there is no control on it.
ThisDefaultMethodDefault integration method. Its default value is gaussian integration with orden one which make no deference while in this condition there is no shape function database exist and integrating is not possible including by default method.
ThisIntegrationPointsAll the integration points in all methods. This is a Vector of IntegrationPointsArrayType and It must have at least four component correspounding to four integration method defined now. If there is some geometry which don't have all this method implemented related points Vector must exist but with zero size. For example if a geometry don't have gaussian orden one ThisIntegrationPoints[GI_GAUSS_1] must be an empty IntegrationPointsArrayType.
ThisShapeFunctionsValuesValues of all the shape functions evaluated in all integrations points of all integration methods. It's a three dimensional array \( F_{ijk} \) where i = GI_GAUSS_1,..., GI_GAUSS_4 and j is the integration point index and k is the shape function index. In the other word component \( f_{ijk} \) is the value of the shape function related to node k evaluated in integration point j of i integration method point set. Again if there is some integration method unsupported an empty Matrix must assigned to related place. For example if a geometry don't have gaussian orden four ThisShapeFunctionsValues[GI_GAUSS_4] must be an empty Matrix.
ThisShapeFunctionsLocalGradientsValues of local gradients respected to all local coordinates of all the shape functions evaluated in all integrations points of all integration methods. It's a four dimensional array \( F_{ijkh} \) where i = GI_GAUSS_1,..., GI_GAUSS_4 and j is the integration point index and k is the shape function index and h is local coordinate index. In the other word component \( f_{ijkh} \) is the value of h'th component of local gradient of the shape function related to node k evaluated in integration point j of i integration method point set. Again if there is some integration method unsupported an empty ShapeFunctionsGradientsType must assigned to related place. For example if a geometry don't have gaussian orden two ThisShapeFunctionsValues[GI_GAUSS_2] must be an empty ShapeFunctionsGradientsType.

◆ Geometry() [5/8]

template<class TPointType >
Kratos::Geometry< TPointType >::Geometry ( IndexType  GeometryId,
const PointsArrayType ThisPoints,
GeometryData const *  pThisGeometryData = &GeometryDataInstance() 
)
inline

◆ Geometry() [6/8]

template<class TPointType >
Kratos::Geometry< TPointType >::Geometry ( const std::string &  GeometryName,
const PointsArrayType ThisPoints,
GeometryData const *  pThisGeometryData = &GeometryDataInstance() 
)
inline

◆ Geometry() [7/8]

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

Copy constructor.

Note
Does not copy the points but shares same points with the original geometry. Any change to the points of the copied geometry affect point of original geometry, too.
Copied geometry shares the same Id as the original geometry.

◆ Geometry() [8/8]

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

Copy constructor with TOtherPointType.

   Copies geometry with a different type of points.
   TOtherPointType* must be implicity convertible
   to TPointType of the original geometry.
Note
Does not copy the points but shares same points with the original geometry. Any change to the points of the copied geometry affect point of original geometry, too.
Copied geometry shares the same Id as the original geometry.

◆ ~Geometry()

template<class TPointType >
virtual Kratos::Geometry< TPointType >::~Geometry ( )
inlinevirtual

Destructor. Do nothing!!!

Member Function Documentation

◆ AddGeometryPart()

template<class TPointType >
virtual IndexType Kratos::Geometry< TPointType >::AddGeometryPart ( GeometryType::Pointer  pGeometry)
inlinevirtual

Allows to enhance the coupling geometry, with another geometry.

Parameters
pGeometryThe new geometry to add

Reimplemented in Kratos::CouplingGeometry< TPointType >.

◆ AllPointsAreValid()

template<class TPointType >
bool Kratos::Geometry< TPointType >::AllPointsAreValid ( ) const
inlineprotected

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.

Returns
true All points are valid
false At least one point has nullptr value

◆ Area()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::Area ( ) const
inlinevirtual

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

For one dimensional geometry it returns length, 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 in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::SurfaceInNurbsVolumeGeometry< TWorkingSpaceDimension, TVolumeContainerPointType >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::Point3D< TPointType >, Kratos::Point3D< Kratos::Node >, Kratos::Point2D< TPointType >, Kratos::Point2D< Kratos::Node >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, and Kratos::Line3DN< TPointType >.

◆ AreaToEdgeLengthRatio()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::AreaToEdgeLengthRatio ( ) const
inlineprotectedvirtual

Calculates the minimum to maximum edge length quality metric. Calculates the minimum to maximum edge length quality metric. 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 in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D3< TPointType >, and Kratos::Triangle2D3< Kratos::Node >.

◆ Assign() [1/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Assign ( const Variable< array_1d< double, 2 >> &  rVariable,
const array_1d< double, 2 > &  rInput 
)
inlinevirtual

Assign with array_1d<double, 2>

◆ Assign() [2/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Assign ( const Variable< array_1d< double, 3 >> &  rVariable,
const array_1d< double, 3 > &  rInput 
)
inlinevirtual

◆ Assign() [3/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Assign ( const Variable< array_1d< double, 6 >> &  rVariable,
const array_1d< double, 6 > &  rInput 
)
inlinevirtual

Assign with array_1d<double, 6>

◆ Assign() [4/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Assign ( const Variable< bool > &  rVariable,
const bool  Input 
)
inlinevirtual

Assign with bool.

◆ Assign() [5/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Assign ( const Variable< double > &  rVariable,
const double  Input 
)
inlinevirtual

Assign with double.

◆ Assign() [6/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Assign ( const Variable< int > &  rVariable,
const int  Input 
)
inlinevirtual

Assign with int.

◆ Assign() [7/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Assign ( const Variable< Matrix > &  rVariable,
const Matrix rInput 
)
inlinevirtual

Assign with Matrix.

Reimplemented in Kratos::QuadraturePointSurfaceInVolumeGeometry< TPointType >.

◆ Assign() [8/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Assign ( const Variable< Vector > &  rVariable,
const Vector rInput 
)
inlinevirtual

Assign with Vector.

◆ AverageEdgeLength()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::AverageEdgeLength ( ) const
inlinevirtual

◆ back() [1/2]

template<class TPointType >
PointReferenceType Kratos::Geometry< TPointType >::back ( )
inline

◆ back() [2/2]

template<class TPointType >
ConstPointReferenceType Kratos::Geometry< TPointType >::back ( ) const
inline

◆ begin() [1/2]

template<class TPointType >
iterator Kratos::Geometry< TPointType >::begin ( )
inline

◆ begin() [2/2]

template<class TPointType >
const_iterator Kratos::Geometry< TPointType >::begin ( ) const
inline

◆ BoundingBox()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::BoundingBox ( TPointType &  rLowPoint,
TPointType &  rHighPoint 
) const
inlinevirtual

Calculates the boundingbox of the geometry.

Corresponds with the highest and lowest point in space

Parameters
rLowPointLower point of the boundingbox.
rHighPointHigher point of the boundingbox.

◆ Calculate() [1/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Calculate ( const Variable< array_1d< double, 2 >> &  rVariable,
array_1d< double, 2 > &  rOutput 
) const
inlinevirtual

Calculate with array_1d<double, 2>

◆ Calculate() [2/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Calculate ( const Variable< array_1d< double, 3 >> &  rVariable,
array_1d< double, 3 > &  rOutput 
) const
inlinevirtual

◆ Calculate() [3/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Calculate ( const Variable< array_1d< double, 6 >> &  rVariable,
array_1d< double, 6 > &  rOutput 
) const
inlinevirtual

Calculate with array_1d<double, 6>

◆ Calculate() [4/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Calculate ( const Variable< bool > &  rVariable,
bool rOutput 
) const
inlinevirtual

Calculate with bool.

◆ Calculate() [5/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Calculate ( const Variable< double > &  rVariable,
double rOutput 
) const
inlinevirtual

Calculate with double.

◆ Calculate() [6/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Calculate ( const Variable< int > &  rVariable,
int rOutput 
) const
inlinevirtual

Calculate with int.

◆ Calculate() [7/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Calculate ( const Variable< Matrix > &  rVariable,
Matrix rOutput 
) const
inlinevirtual

Calculate with Matrix.

Reimplemented in Kratos::QuadraturePointSurfaceInVolumeGeometry< TPointType >.

◆ Calculate() [8/8]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::Calculate ( const Variable< Vector > &  rVariable,
Vector rOutput 
) const
inlinevirtual

◆ CalculateDistance()

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

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 in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Hexahedra3D8< TPointType >, and Kratos::Hexahedra3D8< Kratos::Node >.

◆ capacity()

template<class TPointType >
int Kratos::Geometry< TPointType >::capacity ( )
inline

◆ Center()

template<class TPointType >
virtual Point Kratos::Geometry< TPointType >::Center ( ) const
inlinevirtual

Calculates center of this geometry by a simple averaging algorithm. Each center point component calculated using:

\[ c_i = \sum_j^n(x_i^j) / n \]

where \( c_i \) is component i of center point and \( X_i^j \) is component i of j'th point of geometry and n is number of the points in this geometry.

Returns
PointType which is the calculated center of this geometry.

Reimplemented in Kratos::SurfaceInNurbsVolumeGeometry< TWorkingSpaceDimension, TVolumeContainerPointType >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::PointOnGeometry< TContainerPointType, TWorkingSpaceDimension, TLocalSpaceDimensionOfBackground >, Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >, Kratos::CouplingGeometry< TPointType >, Kratos::BrepSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, and Kratos::BrepCurve< TContainerPointType, TContainerPointEmbeddedType >.

◆ Check()

template<class TPointType >
virtual int Kratos::Geometry< TPointType >::Check ( ) const
inlinevirtual

◆ Circumradius()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::Circumradius ( ) const
inlinevirtual

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

Returns
Circumradius of the geometry.
See also
Inradius()

Reimplemented in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Tetrahedra3D4< TPointType >, and Kratos::Tetrahedra3D4< Kratos::Node >.

◆ clear()

template<class TPointType >
void Kratos::Geometry< TPointType >::clear ( )
inline

◆ ClonePoints()

template<class TPointType >
void Kratos::Geometry< TPointType >::ClonePoints ( )
inline

This methods will create a duplicate of all its points and substitute them with its points.

◆ ClosestPoint() [1/2]

template<class TPointType >
virtual int Kratos::Geometry< TPointType >::ClosestPoint ( const CoordinatesArrayType rPointGlobalCoordinates,
CoordinatesArrayType rClosestPointGlobalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlinevirtual

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.

Parameters
rPointGlobalCoordinatesthe point to which the closest point has to be found.
rClosestPointGlobalCoordinatesthe location of the closest point in global coordinates.

WARNING: This function does not provide the possibility to use an initial guess!!

Parameters
Toleranceaccepted orthogonal error.
Returns
-1 -> failed 0 -> outside 1 -> inside 2 -> on the boundary

◆ ClosestPoint() [2/2]

template<class TPointType >
virtual int Kratos::Geometry< TPointType >::ClosestPoint ( const CoordinatesArrayType rPointGlobalCoordinates,
CoordinatesArrayType rClosestPointGlobalCoordinates,
CoordinatesArrayType rClosestPointLocalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlinevirtual

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.

Parameters
rPointGlobalCoordinatesthe point to which the closest point has to be found.
rClosestPointGlobalCoordinatesthe location of the closest point in global coordinates.
rClosestPointLocalCoordinatesthe location of the closest point in local coordinates. IMPORTANT: The variable can also be used as initial guess.
Toleranceaccepted orthogonal error.
Returns
-1 -> failed 0 -> outside 1 -> inside 2 -> on the boundary

◆ ClosestPointGlobalToLocalSpace()

template<class TPointType >
virtual int Kratos::Geometry< TPointType >::ClosestPointGlobalToLocalSpace ( const CoordinatesArrayType rPointGlobalCoordinates,
CoordinatesArrayType rClosestPointLocalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlinevirtual

Calculates the closes point projection This method calculates the closest point projection of a point in global space coordinates.

Parameters
rPointLocalCoordinatesInput global coordinates
rClosestPointLocalCoordinatesClosest point local coordinates. This should be initialized with the initial guess
ToleranceAccepted orthogonal error
Returns
int -1 -> failed 0 -> outside 1 -> inside 2 -> on the boundary

◆ ClosestPointLocalCoordinates()

template<class TPointType >
virtual int Kratos::Geometry< TPointType >::ClosestPointLocalCoordinates ( const CoordinatesArrayType rPointGlobalCoordinates,
CoordinatesArrayType rClosestPointLocalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlinevirtual

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.

Parameters
rPointGlobalCoordinatesthe point to which the closest point has to be found.
rClosestPointLocalCoordinatesthe location of the closest point in local coordinates.

IMPORTANT: The rClosestPointLocalCoordinates can also be used as initial guess.

Parameters
Toleranceaccepted orthogonal error.
Returns
-1 -> failed 0 -> outside 1 -> inside 2 -> on the boundary

◆ ClosestPointLocalToLocalSpace()

template<class TPointType >
virtual int Kratos::Geometry< TPointType >::ClosestPointLocalToLocalSpace ( const CoordinatesArrayType rPointLocalCoordinates,
CoordinatesArrayType rClosestPointLocalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlinevirtual

Calculates the closes point projection This method calculates the closest point projection of a point in local space coordinates.

Parameters
rPointLocalCoordinatesInput local coordinates
rClosestPointLocalCoordinatesClosest point local coordinates. This should be initialized with the initial guess
ToleranceAccepted orthogonal error
Returns
int -1 -> failed 0 -> outside 1 -> inside 2 -> on the boundary

Reimplemented in Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, and Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >.

◆ ComputeDihedralAngles()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::ComputeDihedralAngles ( Vector rDihedralAngles) const
inlinevirtual

Calculates the dihedral angles of the geometry. Calculates the dihedral angles of the geometry.

Returns
a vector of dihedral angles of the geometry..

Reimplemented in Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Hexahedra3D8< TPointType >, and Kratos::Hexahedra3D8< Kratos::Node >.

◆ ComputeSolidAngles()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::ComputeSolidAngles ( Vector rSolidAngles) const
inlinevirtual

Calculates the solid angles of the geometry. Calculates the solid angles of the geometry.

Returns
a vector of dihedral angles of the geometry..

Reimplemented in Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Hexahedra3D8< TPointType >, and Kratos::Hexahedra3D8< Kratos::Node >.

◆ Create() [1/6]

template<class TPointType >
virtual Pointer Kratos::Geometry< TPointType >::Create ( const GeometryType rGeometry) const
inlinevirtual

◆ Create() [2/6]

template<class TPointType >
virtual Pointer Kratos::Geometry< TPointType >::Create ( const IndexType  NewGeometryId,
const GeometryType rGeometry 
) const
inlinevirtual

◆ Create() [3/6]

template<class TPointType >
virtual Pointer Kratos::Geometry< TPointType >::Create ( const IndexType  NewGeometryId,
PointsArrayType const &  rThisPoints 
) const
inlinevirtual

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 in Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::Point3D< TPointType >, Kratos::Point3D< Kratos::Node >, Kratos::Point2D< TPointType >, Kratos::Point2D< Kratos::Node >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, and Kratos::Hexahedra3D20< Kratos::Node >.

◆ Create() [4/6]

template<class TPointType >
Pointer Kratos::Geometry< TPointType >::Create ( const std::string &  rNewGeometryName,
const GeometryType rGeometry 
) const
inline

Creates a new geometry pointer.

Parameters
rNewGeometryNamethe name of the new geometry
rGeometryReference to an existing geometry
Returns
Pointer to the new geometry

◆ Create() [5/6]

template<class TPointType >
Pointer Kratos::Geometry< TPointType >::Create ( const std::string &  rNewGeometryName,
PointsArrayType const &  rThisPoints 
) const
inline

Creates a new geometry pointer.

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

◆ Create() [6/6]

template<class TPointType >
virtual Pointer Kratos::Geometry< TPointType >::Create ( PointsArrayType const &  rThisPoints) const
inlinevirtual

Creates a new geometry pointer.

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

Reimplemented in Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::PrismInterface3D6< TPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::CouplingGeometry< TPointType >, Kratos::Line3DN< TPointType >, Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::Sphere3D1< TPointType >, and Kratos::Sphere3D1< Kratos::Node >.

◆ CreateIntegrationPoints()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::CreateIntegrationPoints ( IntegrationPointsArrayType rIntegrationPoints,
IntegrationInfo rIntegrationInfo 
) const
inlinevirtual

◆ CreateQuadraturePointGeometries() [1/2]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::CreateQuadraturePointGeometries ( GeometriesArrayType rResultGeometries,
IndexType  NumberOfShapeFunctionDerivatives,
const IntegrationPointsArrayType rIntegrationPoints,
IntegrationInfo rIntegrationInfo 
)
inlinevirtual

◆ CreateQuadraturePointGeometries() [2/2]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::CreateQuadraturePointGeometries ( GeometriesArrayType rResultGeometries,
IndexType  NumberOfShapeFunctionDerivatives,
IntegrationInfo rIntegrationInfo 
)
inlinevirtual

◆ DeterminantOfJacobian() [1/5]

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::DeterminantOfJacobian ( const CoordinatesArrayType rPoint) const
inlinevirtual

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 in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::SurfaceInNurbsVolumeGeometry< TWorkingSpaceDimension, TVolumeContainerPointType >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::PrismInterface3D6< TPointType >, Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, and Kratos::Line2D2< Kratos::Node >.

◆ DeterminantOfJacobian() [2/5]

template<class TPointType >
double Kratos::Geometry< TPointType >::DeterminantOfJacobian ( IndexType  IntegrationPointIndex) const
inline

Determinant of jacobian in specific integration point of default integration method. This method just call DeterminantOfJacobian(IndexType IntegrationPointIndex, enum IntegrationMethod ThisMethod) with default integration method.

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

◆ DeterminantOfJacobian() [3/5]

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::DeterminantOfJacobian ( IndexType  IntegrationPointIndex,
IntegrationMethod  ThisMethod 
) const
inlinevirtual

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 in Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::QuadraturePointSurfaceInVolumeGeometry< TPointType >, Kratos::QuadraturePointCurveOnSurfaceGeometry< TPointType >, Kratos::Triangle3D3< TPointType >, and Kratos::Triangle3D3< Kratos::Node >.

◆ DeterminantOfJacobian() [4/5]

template<class TPointType >
Vector& Kratos::Geometry< TPointType >::DeterminantOfJacobian ( Vector rResult) const
inline

Determinant of jacobians for default integration method. This method just call DeterminantOfJacobian(enum IntegrationMethod ThisMethod) with default 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 default integration method.
See also
Jacobian
InverseOfJacobian

◆ DeterminantOfJacobian() [5/5]

template<class TPointType >
virtual Vector& Kratos::Geometry< TPointType >::DeterminantOfJacobian ( Vector rResult,
IntegrationMethod  ThisMethod 
) const
inlinevirtual

◆ DomainSize()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::DomainSize ( ) const
inlinevirtual

This method calculate and return 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 in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::Point3D< TPointType >, Kratos::Point3D< Kratos::Node >, Kratos::Point2D< TPointType >, Kratos::Point2D< Kratos::Node >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, Kratos::CouplingGeometry< TPointType >, and Kratos::Line3DN< TPointType >.

◆ EdgesNumber()

template<class TPointType >
virtual SizeType Kratos::Geometry< TPointType >::EdgesNumber ( ) const
inlinevirtual

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 in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::Point3D< TPointType >, Kratos::Point3D< Kratos::Node >, Kratos::Point2D< TPointType >, Kratos::Point2D< Kratos::Node >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, and Kratos::Line3DN< TPointType >.

◆ empty()

template<class TPointType >
bool Kratos::Geometry< TPointType >::empty ( ) const
inline

◆ end() [1/2]

template<class TPointType >
iterator Kratos::Geometry< TPointType >::end ( )
inline

◆ end() [2/2]

template<class TPointType >
const_iterator Kratos::Geometry< TPointType >::end ( ) const
inline

◆ FacesNumber()

template<class TPointType >
virtual SizeType Kratos::Geometry< TPointType >::FacesNumber ( ) const
inlinevirtual

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 in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::Point3D< TPointType >, Kratos::Point3D< Kratos::Node >, Kratos::Point2D< TPointType >, Kratos::Point2D< Kratos::Node >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, and Kratos::Line3DN< TPointType >.

◆ front() [1/2]

template<class TPointType >
PointReferenceType Kratos::Geometry< TPointType >::front ( )
inline

◆ front() [2/2]

template<class TPointType >
ConstPointReferenceType Kratos::Geometry< TPointType >::front ( ) const
inline

◆ GenerateBoundariesEntities()

template<class TPointType >
virtual GeometriesArrayType Kratos::Geometry< TPointType >::GenerateBoundariesEntities ( ) const
inlinevirtual

This method gives you all boundaries entities of this geometry.

This method will gives you all the boundaries entities

Returns
GeometriesArrayType containes this geometry boundaries entities.
See also
GeneratePoints()
GenerateEdges()
GenerateFaces()

◆ GenerateEdges()

template<class TPointType >
virtual GeometriesArrayType Kratos::Geometry< TPointType >::GenerateEdges ( ) const
inlinevirtual

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 in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, and Kratos::Hexahedra3D20< Kratos::Node >.

◆ GenerateFaces()

template<class TPointType >
virtual GeometriesArrayType Kratos::Geometry< TPointType >::GenerateFaces ( ) const
inlinevirtual

◆ GenerateId()

template<class TPointType >
static IndexType Kratos::Geometry< TPointType >::GenerateId ( const std::string &  rName)
inlinestatic

Gets the corresponding hash-Id to a string name.

◆ GeneratePoints()

template<class TPointType >
virtual GeometriesArrayType Kratos::Geometry< TPointType >::GeneratePoints ( ) const
inlinevirtual

This method gives you all points of this geometry.

This method will gives you all the points

Returns
GeometriesArrayType containes this geometry points.
See also
Points()

◆ GetContainer() [1/2]

template<class TPointType >
PointPointerContainerType& Kratos::Geometry< TPointType >::GetContainer ( )
inline

‍** Gives a reference to underly normal container. *‍/

◆ GetContainer() [2/2]

template<class TPointType >
const PointPointerContainerType& Kratos::Geometry< TPointType >::GetContainer ( ) const
inline

Gives a constant reference to underly normal container.

◆ GetData() [1/2]

template<class TPointType >
DataValueContainer& Kratos::Geometry< TPointType >::GetData ( )
inline

Access Data:

◆ GetData() [2/2]

template<class TPointType >
DataValueContainer const& Kratos::Geometry< TPointType >::GetData ( ) const
inline

◆ GetDefaultIntegrationInfo()

template<class TPointType >
virtual IntegrationInfo Kratos::Geometry< TPointType >::GetDefaultIntegrationInfo ( ) const
inlinevirtual

◆ GetDefaultIntegrationMethod()

template<class TPointType >
IntegrationMethod Kratos::Geometry< TPointType >::GetDefaultIntegrationMethod ( ) const
inline
Returns
default integration method

◆ GetGeometryData()

template<class TPointType >
GeometryData const& Kratos::Geometry< TPointType >::GetGeometryData ( ) const
inline

GeometryData contains all information about dimensions and has a set of precomputed values for integration points and shape functions, including derivatives.

Returns
the geometry data of a certain geometry class.

◆ GetGeometryFamily()

template<class TPointType >
virtual GeometryData::KratosGeometryFamily Kratos::Geometry< TPointType >::GetGeometryFamily ( ) const
inlinevirtual

Reimplemented in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::SurfaceInNurbsVolumeGeometry< TWorkingSpaceDimension, TVolumeContainerPointType >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::QuadraturePointSurfaceInVolumeGeometry< TPointType >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::QuadraturePointCurveOnSurfaceGeometry< TPointType >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::PointOnGeometry< TContainerPointType, TWorkingSpaceDimension, TLocalSpaceDimensionOfBackground >, Kratos::Point3D< TPointType >, Kratos::Point3D< Kratos::Node >, Kratos::Point2D< TPointType >, Kratos::Point2D< Kratos::Node >, Kratos::NurbsVolumeGeometry< TContainerPointType >, Kratos::NurbsSurfaceGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, Kratos::CouplingGeometry< TPointType >, Kratos::BrepSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, and Kratos::BrepCurve< TContainerPointType, TContainerPointEmbeddedType >.

◆ GetGeometryParent()

template<class TPointType >
virtual GeometryType& Kratos::Geometry< TPointType >::GetGeometryParent ( IndexType  Index) const
inlinevirtual

◆ GetGeometryPart() [1/2]

template<class TPointType >
virtual GeometryType& Kratos::Geometry< TPointType >::GetGeometryPart ( const IndexType  Index)
inlinevirtual

Used for composite geometries. It returns the the geometry part, corresponding to the Index.

Parameters
Indexof the geometry part. This index can be used differently within the derived classes.
Returns
reference to corresponding geometry.

◆ GetGeometryPart() [2/2]

template<class TPointType >
virtual const GeometryType& Kratos::Geometry< TPointType >::GetGeometryPart ( const IndexType  Index) const
inlinevirtual

Used for composite geometries. It returns the the geometry part, corresponding to the Index.

Parameters
Indexof the geometry part. This index can be used differently within the derived classes.
Returns
const reference to corresponding geometry.

◆ GetGeometryType()

template<class TPointType >
virtual GeometryData::KratosGeometryType Kratos::Geometry< TPointType >::GetGeometryType ( ) const
inlinevirtual

Reimplemented in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::SurfaceInNurbsVolumeGeometry< TWorkingSpaceDimension, TVolumeContainerPointType >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::QuadraturePointSurfaceInVolumeGeometry< TPointType >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::QuadraturePointCurveOnSurfaceGeometry< TPointType >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::Point3D< TPointType >, Kratos::Point3D< Kratos::Node >, Kratos::Point2D< TPointType >, Kratos::Point2D< Kratos::Node >, Kratos::NurbsVolumeGeometry< TContainerPointType >, Kratos::NurbsSurfaceGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, Kratos::CouplingGeometry< TPointType >, Kratos::BrepSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, and Kratos::BrepCurve< TContainerPointType, TContainerPointEmbeddedType >.

◆ GetPoint() [1/2]

template<class TPointType >
TPointType& Kratos::Geometry< TPointType >::GetPoint ( const int  Index)
inline

An access method to the i'th points stored in this geometry.

Returns
A counted pointer to i'th point of geometry.

◆ GetPoint() [2/2]

template<class TPointType >
TPointType const& Kratos::Geometry< TPointType >::GetPoint ( const int  Index) const
inline

A constant access method to the i'th points stored in this geometry.

Returns
A constant counted pointer to i'th point of geometry.

◆ GetValue() [1/2]

template<class TPointType >
template<class TVariableType >
TVariableType::Type& Kratos::Geometry< TPointType >::GetValue ( const TVariableType &  rThisVariable)
inline

Get Data with GetValue and the Variable to get:

◆ GetValue() [2/2]

template<class TPointType >
template<class TVariableType >
TVariableType::Type const& Kratos::Geometry< TPointType >::GetValue ( const TVariableType &  rThisVariable) const
inline

◆ GlobalCoordinates() [1/4]

template<class TPointType >
virtual CoordinatesArrayType& Kratos::Geometry< TPointType >::GlobalCoordinates ( CoordinatesArrayType rResult,
CoordinatesArrayType const &  LocalCoordinates 
) const
inlinevirtual

This method provides the global coordinates corresponding to the local coordinates provided

Parameters
rResultThe array containing the global coordinates corresponding to the local coordinates provided
LocalCoordinatesThe local coordinates provided
Returns
An array containing the global coordinates corresponding to the local coordinates provides
See also
PointLocalCoordinates

Reimplemented in Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::SurfaceInNurbsVolumeGeometry< TWorkingSpaceDimension, TVolumeContainerPointType >, Kratos::PointOnGeometry< TContainerPointType, TWorkingSpaceDimension, TLocalSpaceDimensionOfBackground >, Kratos::NurbsVolumeGeometry< TContainerPointType >, Kratos::NurbsSurfaceGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::BrepSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, and Kratos::BrepCurve< TContainerPointType, TContainerPointEmbeddedType >.

◆ GlobalCoordinates() [2/4]

template<class TPointType >
virtual CoordinatesArrayType& Kratos::Geometry< TPointType >::GlobalCoordinates ( CoordinatesArrayType rResult,
CoordinatesArrayType const &  LocalCoordinates,
Matrix DeltaPosition 
) const
inlinevirtual

This method provides the global coordinates corresponding to the local coordinates provided, considering additionally a certain increment in the coordinates

Parameters
rResultThe array containing the global coordinates corresponding to the local coordinates provided
LocalCoordinatesThe local coordinates provided
DeltaPositionThe increment of position considered
Returns
An array containing the global coordinates corresponding to the local coordinates provides
See also
PointLocalCoordinates

Reimplemented in Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, and Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >.

◆ GlobalCoordinates() [3/4]

template<class TPointType >
void Kratos::Geometry< TPointType >::GlobalCoordinates ( CoordinatesArrayType rResult,
IndexType  IntegrationPointIndex 
) const
inline

This method provides the global coordinates to the corresponding integration point

Parameters
rResultThe global coordinates
IntegrationPointIndexThe index of the integration point
Returns
the global coordinates

◆ GlobalCoordinates() [4/4]

template<class TPointType >
void Kratos::Geometry< TPointType >::GlobalCoordinates ( CoordinatesArrayType rResult,
IndexType  IntegrationPointIndex,
const IntegrationMethod  ThisMethod 
) const
inline

This method provides the global coordinates to the corresponding integration point.

Parameters
rResultThe global coordinates
IntegrationPointIndexThe index of the integration point
ThisMethodThe integration method
Returns
The global coordinates

◆ GlobalSpaceDerivatives() [1/2]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::GlobalSpaceDerivatives ( std::vector< CoordinatesArrayType > &  rGlobalSpaceDerivatives,
const CoordinatesArrayType rLocalCoordinates,
const SizeType  DerivativeOrder 
) const
inlinevirtual

This method maps from dimension space to working space and computes the number of derivatives at the dimension parameter.

Parameters
rGlobalSpaceDerivativesThe derivative in global space.
rLocalCoordinatesthe local coordinates
rDerivativeOrderof computed derivatives
Returns
std::vector<array_1d<double, 3>> with the coordinates in working space The list is structured as following: [0] - global coordinates [1 - loc_space_dim] - base vectors (du, dv, dw) [...] - second order vectors: 1D: du^2 2D: du^2, dudv, dv^2 3D: du^2, dudv, dudw, dv^2, dvdw, dw^2 [...] - third order vectors: 1D: du^3 2D: du^3, du^2dv, dudv^2, dv^3

Reimplemented in Kratos::NurbsVolumeGeometry< TContainerPointType >, Kratos::NurbsSurfaceGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::SurfaceInNurbsVolumeGeometry< TWorkingSpaceDimension, TVolumeContainerPointType >, and Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >.

◆ GlobalSpaceDerivatives() [2/2]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::GlobalSpaceDerivatives ( std::vector< CoordinatesArrayType > &  rGlobalSpaceDerivatives,
IndexType  IntegrationPointIndex,
const SizeType  DerivativeOrder 
) const
inlinevirtual

This method maps from dimension space to working space and computes the number of derivatives at the dimension parameter.

Parameters
IntegrationPointIndexthe coordinates of a certain integration point.
rDerivativeOrderof computed derivatives
Returns
std::vector<array_1d<double, 3>> with the coordinates in working space The list is structured as following: [0] - global coordinates [1 - loc_space_dim] - base vectors [...] - higher order vectors (2D: du^2, dudv, dv^2)

◆ Has()

template<class TPointType >
template<class TDataType >
bool Kratos::Geometry< TPointType >::Has ( const Variable< TDataType > &  rThisVariable) const
inline

Check if the Data exists with Has(..) methods:

◆ HasGeometryPart()

template<class TPointType >
virtual bool Kratos::Geometry< TPointType >::HasGeometryPart ( const IndexType  Index) const
inlinevirtual

◆ HasIntegrationMethod()

template<class TPointType >
bool Kratos::Geometry< TPointType >::HasIntegrationMethod ( IntegrationMethod  ThisMethod) const
inline

This method confirm you if this geometry has a specific integration method or not. This method will be usefull to control the geometry before intagrating using a specific method. In Geometry class this method controls if the integration points vector respecting to this method is empty or not.

Returns
bool true if this integration method exist and false if this method is not imeplemented for this geometry.

◆ HasIntersection() [1/2]

template<class TPointType >
virtual bool Kratos::Geometry< TPointType >::HasIntersection ( const GeometryType ThisGeometry) const
inlinevirtual

Test the intersection with another geometry

Test if this geometry intersects with other geometry

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

Reimplemented in Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Line3D2< Kratos::Node >, and Kratos::Line2D2< Kratos::Node >.

◆ HasIntersection() [2/2]

template<class TPointType >
virtual bool Kratos::Geometry< TPointType >::HasIntersection ( const Point rLowPoint,
const Point rHighPoint 
) const
inlinevirtual

◆ HasSameGeometryType() [1/2]

template<class TPointType >
static bool Kratos::Geometry< TPointType >::HasSameGeometryType ( const GeometryType rLHS,
const GeometryType rRHS 
)
inlinestatic

Checks if two GeometryType have the same geometry type.

Returns
True if the geometries are the same type, false otherwise

◆ HasSameGeometryType() [2/2]

template<class TPointType >
static bool Kratos::Geometry< TPointType >::HasSameGeometryType ( const GeometryType rLHS,
const GeometryType rRHS 
)
inlinestatic

Checks if two GeometryType have the same geometry type (pointer version)

Returns
True if the geometries are the same type, false otherwise

◆ HasSameType() [1/2]

template<class TPointType >
static bool Kratos::Geometry< TPointType >::HasSameType ( const GeometryType rLHS,
const GeometryType rRHS 
)
inlinestatic

Checks if two GeometryType have the same type.

Returns
True if the objects are the same type, false otherwise

◆ HasSameType() [2/2]

template<class TPointType >
static bool Kratos::Geometry< TPointType >::HasSameType ( const GeometryType rLHS,
const GeometryType rRHS 
)
inlinestatic

Checks if two GeometryType have the same type (pointer version)

Returns
True if the objects are the same type, false otherwise

◆ Id()

template<class TPointType >
IndexType const& Kratos::Geometry< TPointType >::Id ( ) const
inline

Id of this Geometry.

◆ Info()

template<class TPointType >
virtual std::string Kratos::Geometry< TPointType >::Info ( ) const
inlinevirtual

Return geometry information as a string.

Reimplemented in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::SurfaceInNurbsVolumeGeometry< TWorkingSpaceDimension, TVolumeContainerPointType >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::QuadraturePointSurfaceInVolumeGeometry< TPointType >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::QuadraturePointCurveOnSurfaceGeometry< TPointType >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::PointOnGeometry< TContainerPointType, TWorkingSpaceDimension, TLocalSpaceDimensionOfBackground >, Kratos::Point3D< TPointType >, Kratos::Point3D< Kratos::Node >, Kratos::Point2D< TPointType >, Kratos::Point2D< Kratos::Node >, Kratos::NurbsVolumeGeometry< TContainerPointType >, Kratos::NurbsSurfaceGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, Kratos::CouplingGeometry< TPointType >, Kratos::BrepSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurve< TContainerPointType, TContainerPointEmbeddedType >, and Kratos::Line3DN< TPointType >.

◆ Inradius()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::Inradius ( ) const
inlinevirtual

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

Returns
Inradius of the geometry.
See also
Circumradius()

Reimplemented in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Tetrahedra3D4< TPointType >, and Kratos::Tetrahedra3D4< Kratos::Node >.

◆ InradiusToCircumradiusQuality()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::InradiusToCircumradiusQuality ( ) const
inlineprotectedvirtual

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

\( \frac{r}{\rho} \)

Returns
The inradius to circumradius quality metric.

Reimplemented in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Tetrahedra3D4< TPointType >, and Kratos::Tetrahedra3D4< Kratos::Node >.

◆ InradiusToLongestEdgeQuality()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::InradiusToLongestEdgeQuality ( ) const
inlineprotectedvirtual

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

\( \frac{r}{L} \)

Returns
The inradius to longest edge quality metric.

Reimplemented in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Tetrahedra3D4< TPointType >, and Kratos::Tetrahedra3D4< Kratos::Node >.

◆ IntegrationPoints() [1/2]

template<class TPointType >
const IntegrationPointsArrayType& Kratos::Geometry< TPointType >::IntegrationPoints ( ) const
inline

Integtation points for default integration method. This method just call IntegrationPoints(enum IntegrationMethod ThisMethod) with default integration method.

Returns
const IntegrationPointsArrayType which is Vector of integration points for default integrating method.

◆ IntegrationPoints() [2/2]

template<class TPointType >
const IntegrationPointsArrayType& Kratos::Geometry< TPointType >::IntegrationPoints ( IntegrationMethod  ThisMethod) const
inline

Integtation points for given integration method. This method use integration points data base to obtain integration points Vector respected to given method.

Returns
const IntegrationPointsArrayType which is Vector of integration points for default integrating method.

◆ IntegrationPointsNumber() [1/2]

template<class TPointType >
SizeType Kratos::Geometry< TPointType >::IntegrationPointsNumber ( ) const
inline

Number of integtation points for default integration method. This method just call IntegrationPointsNumber(enum IntegrationMethod ThisMethod) with default integration method.

Returns
SizeType which is the number of integration points for default integrating method.

◆ IntegrationPointsNumber() [2/2]

template<class TPointType >
SizeType Kratos::Geometry< TPointType >::IntegrationPointsNumber ( IntegrationMethod  ThisMethod) const
inline

Number of integtation points for given integration method. This method use integration points data base to obtain size of the integration points Vector respected to given method.

Returns
SizeType which is the number of integration points for given integrating method.

◆ InverseOfJacobian() [1/5]

template<class TPointType >
JacobiansType& Kratos::Geometry< TPointType >::InverseOfJacobian ( JacobiansType rResult) const
inline

Inverse of jacobians for default integration method. This method just call InverseOfJacobian(enum IntegrationMethod ThisMethod) with default integration method.

Returns
Inverse of jacobian matrices \( J_i^{-1} \) where \( i=1,2,...,n \) is the integration point index of default integration method.
See also
Jacobian
DeterminantOfJacobian

◆ InverseOfJacobian() [2/5]

template<class TPointType >
virtual JacobiansType& Kratos::Geometry< TPointType >::InverseOfJacobian ( JacobiansType rResult,
IntegrationMethod  ThisMethod 
) const
inlinevirtual

Inverse of jacobians for given integration method. This method calculate inverse of jacobians matrices in all integrations points of given integration method.

Parameters
ThisMethodintegration method which inverse of jacobians has to be calculated in its integration points.
Returns
Inverse of jacobian matrices \( J^{-1}_i \) where \( i=1,2,...,n \) is the integration point index of given integration method.
See also
Jacobian
DeterminantOfJacobian

Reimplemented in Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, and Kratos::Line3DN< TPointType >.

◆ InverseOfJacobian() [3/5]

template<class TPointType >
virtual Matrix& Kratos::Geometry< TPointType >::InverseOfJacobian ( Matrix rResult,
const CoordinatesArrayType rCoordinates 
) const
inlinevirtual

Inverse of jacobian in given point. This method calculate inverse of jacobian matrix in given point.

Parameters
rPointpoint which inverse of jacobians has to be calculated in it.
Returns
Inverse of jacobian matrix \( J^{-1} \) in given point.
See also
DeterminantOfJacobian
InverseOfJacobian

Reimplemented in Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Line3DN< TPointType >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, and Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >.

◆ InverseOfJacobian() [4/5]

template<class TPointType >
Matrix& Kratos::Geometry< TPointType >::InverseOfJacobian ( Matrix rResult,
IndexType  IntegrationPointIndex 
) const
inline

Inverse of jacobian in specific integration point of default integration method. This method just call InverseOfJacobian(IndexType IntegrationPointIndex, enum IntegrationMethod ThisMethod) with default integration method.

Parameters
IntegrationPointIndexindex of integration point which inverse of jacobians has to be calculated in it.
Returns
Inverse of jacobian matrix \( J^{-1}_i \) where \( i \) is the given integration point index of default integration method.
See also
Jacobian
DeterminantOfJacobian

◆ InverseOfJacobian() [5/5]

template<class TPointType >
virtual Matrix& Kratos::Geometry< TPointType >::InverseOfJacobian ( Matrix rResult,
IndexType  IntegrationPointIndex,
IntegrationMethod  ThisMethod 
) const
inlinevirtual

Inverse of jacobian in specific integration point of given integration method. This method calculate Inverse of jacobian matrix in given integration point of given integration method.

Parameters
IntegrationPointIndexindex of integration point which inverse of jacobians has to be calculated in it.
ThisMethodintegration method which inverse of jacobians has to be calculated in its integration points.
Returns
Inverse of jacobian matrix \( J^{-1}_i \) where \( i \) is the given integration point index of given integration method.
See also
Jacobian
DeterminantOfJacobian

Reimplemented in Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, and Kratos::Line3DN< TPointType >.

◆ IsIdGeneratedFromString()

template<class TPointType >
bool Kratos::Geometry< TPointType >::IsIdGeneratedFromString ( )
inline

Returns if id was generated from a geometry name.

◆ IsIdSelfAssigned()

template<class TPointType >
bool Kratos::Geometry< TPointType >::IsIdSelfAssigned ( )
inline

Returns if id was generated by itself.

◆ IsInside()

template<class TPointType >
virtual bool Kratos::Geometry< TPointType >::IsInside ( const CoordinatesArrayType rPointGlobalCoordinates,
CoordinatesArrayType rResult,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlinevirtual

Checks if given point in global space coordinates is inside the geometry boundaries. This function computes the local coordinates and checks then if this point lays within the boundaries.

Parameters
rPointGlobalCoordinatesthe global coordinates of the external point.
rResultthe local coordinates of the point.
Tolerancethe tolerance to the boundary.
Returns
true if the point is inside, false otherwise

Reimplemented in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, and Kratos::Line3DN< TPointType >.

◆ IsInsideLocalSpace()

template<class TPointType >
virtual int Kratos::Geometry< TPointType >::IsInsideLocalSpace ( const CoordinatesArrayType rPointLocalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlinevirtual

Checks if given point in local space coordinates of this geometry is inside the geometry boundaries.

Parameters
rPointLocalCoordinatesthe point on the geometry, which shall be checked if it lays within the boundaries.
Tolerancethe tolerance to the boundary.
Returns
-1 -> failed 0 -> outside 1 -> inside 2 -> on the boundary

Reimplemented in Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, and Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >.

◆ IsSame() [1/2]

template<class TPointType >
static bool Kratos::Geometry< TPointType >::IsSame ( const GeometryType rLHS,
const GeometryType rRHS 
)
inlinestatic

Checks if two GeometryType are the same.

Returns
True if the object is the same, false otherwise

◆ IsSame() [2/2]

template<class TPointType >
static bool Kratos::Geometry< TPointType >::IsSame ( const GeometryType rLHS,
const GeometryType rRHS 
)
inlinestatic

Checks if two GeometryType are the same (pointer version)

Returns
True if the object is the same, false otherwise

◆ IsSymmetric()

template<class TPointType >
virtual bool Kratos::Geometry< TPointType >::IsSymmetric ( ) const
inlinevirtual

This method is to know if this geometry is symmetric or not.

Todo:
Making some method related to symmetry axis and more...
Returns
bool true if this geometry is symmetric and false if it's not.

◆ Jacobian() [1/8]

template<class TPointType >
JacobiansType& Kratos::Geometry< TPointType >::Jacobian ( JacobiansType rResult) const
inline

Jacobians for default integration method. This method just call Jacobian(enum IntegrationMethod ThisMethod) with default integration method.

Returns
JacobiansType a Vector of jacobian matrices \( J_i \) where \( i=1,2,...,n \) is the integration point index of default integration method.
See also
DeterminantOfJacobian
InverseOfJacobian

◆ Jacobian() [2/8]

template<class TPointType >
virtual JacobiansType& Kratos::Geometry< TPointType >::Jacobian ( JacobiansType rResult,
IntegrationMethod  ThisMethod 
) const
inlinevirtual

◆ Jacobian() [3/8]

template<class TPointType >
virtual JacobiansType& Kratos::Geometry< TPointType >::Jacobian ( JacobiansType rResult,
IntegrationMethod  ThisMethod,
Matrix DeltaPosition 
) const
inlinevirtual

Jacobians for given method. This method calculate 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 in Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, and Kratos::Line3DN< TPointType >.

◆ Jacobian() [4/8]

template<class TPointType >
virtual Matrix& Kratos::Geometry< TPointType >::Jacobian ( Matrix rResult,
const CoordinatesArrayType rCoordinates 
) const
inlinevirtual

Jacobian in given point. This method calculate jacobian matrix in given point.

Parameters
rCoordinatespoint 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 in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Line3DN< TPointType >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::NurbsVolumeGeometry< TContainerPointType >, and Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >.

◆ Jacobian() [5/8]

template<class TPointType >
virtual Matrix& Kratos::Geometry< TPointType >::Jacobian ( Matrix rResult,
const CoordinatesArrayType rCoordinates,
Matrix rDeltaPosition 
) const
inlinevirtual

Jacobian in given point. This method calculate jacobian matrix in given point.

Parameters
rCoordinatespoint which jacobians has to be calculated in it.
rDeltaPositionMatrix with the nodes position increment which describes the configuration where the jacobian has to be calculated.
Returns
Matrix of double which is jacobian matrix \( J \) in given point.
See also
DeterminantOfJacobian
InverseOfJacobian

◆ Jacobian() [6/8]

template<class TPointType >
Matrix& Kratos::Geometry< TPointType >::Jacobian ( Matrix rResult,
IndexType  IntegrationPointIndex 
) const
inline

Jacobian in specific integration point of default integration method. This method just call Jacobian(IndexType IntegrationPointIndex, enum IntegrationMethod ThisMethod) with default integration method.

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

◆ Jacobian() [7/8]

template<class TPointType >
virtual Matrix& Kratos::Geometry< TPointType >::Jacobian ( Matrix rResult,
IndexType  IntegrationPointIndex,
IntegrationMethod  ThisMethod 
) const
inlinevirtual

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 in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Line3DN< TPointType >, and Kratos::QuadraturePointPartitionedGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >.

◆ Jacobian() [8/8]

template<class TPointType >
virtual Matrix& Kratos::Geometry< TPointType >::Jacobian ( Matrix rResult,
IndexType  IntegrationPointIndex,
IntegrationMethod  ThisMethod,
const Matrix rDeltaPosition 
) const
inlinevirtual

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.
rDeltaPositionMatrix with the nodes position increment which describes the configuration where the jacobian has to be calculated.
Returns
Matrix<double> Jacobian matrix \( J_i \) where \( i \) is the given integration point index of given integration method.
See also
DeterminantOfJacobian
InverseOfJacobian

Reimplemented in Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::PrismInterface3D6< TPointType >, and Kratos::HexahedraInterface3D8< TPointType >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

Pointer definition of Geometry.

◆ KRATOS_DEPRECATED_MESSAGE() [1/2]

template<class TPointType >
Kratos::Geometry< TPointType >::KRATOS_DEPRECATED_MESSAGE ( "This is legacy version (use GenerateEdges instead)"  )
inline

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.
Deprecated:
This is legacy version, move to GenerateFaces
See also
EdgesNumber()
Edge()

◆ KRATOS_DEPRECATED_MESSAGE() [2/2]

template<class TPointType >
Kratos::Geometry< TPointType >::KRATOS_DEPRECATED_MESSAGE ( "This is legacy version (use GenerateFaces instead)"  )
inline

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.
Deprecated:
This is legacy version, move to GenerateFaces
See also
EdgesNumber
Edges
FacesNumber

◆ Length()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::Length ( ) const
inlinevirtual

This method calculate and return Length or charactereistic length of this geometry depending to 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.

Returns
double value contains length or Characteristic length
See also
Area()
Volume()
DomainSize()

Reimplemented in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::Point3D< TPointType >, Kratos::Point3D< Kratos::Node >, Kratos::Point2D< TPointType >, Kratos::Point2D< Kratos::Node >, Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, and Kratos::Line3DN< TPointType >.

◆ LocalSpaceDimension()

template<class TPointType >
SizeType Kratos::Geometry< TPointType >::LocalSpaceDimension ( ) const
inline

Local space dimension. for example a triangle is a 2 dimensional shape but can have 3 dimensional area coordinates l1, l2, l3.

Returns
SizeType, local space dimension of this geometry.
See also
Dimension()
WorkingSpaceDimension()

◆ LumpingFactors()

template<class TPointType >
virtual Vector& Kratos::Geometry< TPointType >::LumpingFactors ( Vector rResult,
const LumpingMethods  LumpingMethod = LumpingMethods::ROW_SUM 
) const
inlinevirtual

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 in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, and Kratos::Line3DN< TPointType >.

◆ max_size()

template<class TPointType >
SizeType Kratos::Geometry< TPointType >::max_size ( ) const
inline

◆ MaxDihedralAngle()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::MaxDihedralAngle ( ) const
inlineprotectedvirtual

Calculates the max dihedral angle quality metric. Calculates the max dihedral angle quality metric. The max dihedral angle is max angle between two faces of the element In radians

Returns
[description]

Reimplemented in Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Hexahedra3D8< TPointType >, and Kratos::Hexahedra3D8< Kratos::Node >.

◆ MaxEdgeLength()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::MaxEdgeLength ( ) const
inlinevirtual

◆ MinDihedralAngle()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::MinDihedralAngle ( ) const
inlineprotectedvirtual

Calculates the min dihedral angle quality metric. Calculates the min dihedral angle quality metric. The min dihedral angle is min angle between two faces of the element In radians

Returns
[description]

Reimplemented in Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Hexahedra3D8< TPointType >, and Kratos::Hexahedra3D8< Kratos::Node >.

◆ MinEdgeLength()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::MinEdgeLength ( ) const
inlinevirtual

◆ MinSolidAngle()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::MinSolidAngle ( ) const
inlineprotectedvirtual

Calculates the min solid angle quality metric. Calculates the min solid angle quality metric. The min solid angle [stereoradians] is the lowest solid angle "seen" from any of the 4 nodes of the geometry. Valid only for 3d elems! In stereo radians

Returns
[description]

Reimplemented in Kratos::Tetrahedra3D4< TPointType >, and Kratos::Tetrahedra3D4< Kratos::Node >.

◆ Name()

template<class TPointType >
virtual std::string Kratos::Geometry< TPointType >::Name ( ) const
inlinevirtual

Returns name.

◆ NodesInFaces()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::NodesInFaces ( DenseMatrix< unsigned int > &  rNodesInFaces) const
inlinevirtual

◆ Normal() [1/3]

template<class TPointType >
virtual array_1d<double, 3> Kratos::Geometry< TPointType >::Normal ( const CoordinatesArrayType rPointLocalCoordinates) const
inlinevirtual

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 in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D2< TPointType >, and Kratos::Line2D2< Kratos::Node >.

◆ Normal() [2/3]

template<class TPointType >
virtual array_1d<double, 3> Kratos::Geometry< TPointType >::Normal ( IndexType  IntegrationPointIndex) const
inlinevirtual

It returns the vector, which is normal to its corresponding geometry in the given integration point for the default integration method.

Parameters
IntegrationPointIndexindex in internal integration point list
Returns
The normal in the given integration point

◆ Normal() [3/3]

template<class TPointType >
virtual array_1d<double, 3> Kratos::Geometry< TPointType >::Normal ( IndexType  IntegrationPointIndex,
IntegrationMethod  ThisMethod 
) const
inlinevirtual

It returns the vector, which is normal to its corresponding geometry in the given integration point.

Parameters
IntegrationPointIndexindex in internal integration point list
ThisMethodthe integration point is dependent on the used integration method
Returns
The normal in the given integration point

Reimplemented in Kratos::QuadraturePointSurfaceInVolumeGeometry< TPointType >, and Kratos::QuadraturePointCurveOnSurfaceGeometry< TPointType >.

◆ NumberNodesInFaces()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::NumberNodesInFaces ( DenseVector< unsigned int > &  rNumberNodesInFaces) const
inlinevirtual

◆ NumberOfGeometryParts()

template<class TPointType >
virtual SizeType Kratos::Geometry< TPointType >::NumberOfGeometryParts ( ) const
inlinevirtual
Returns
the number of geometry parts that this geometry contains.

Reimplemented in Kratos::CouplingGeometry< TPointType >.

◆ operator PointsArrayType &()

template<class TPointType >
Kratos::Geometry< TPointType >::operator PointsArrayType & ( )
inline

◆ operator()() [1/2]

template<class TPointType >
PointPointerType& Kratos::Geometry< TPointType >::operator() ( const SizeType i)
inline

◆ operator()() [2/2]

template<class TPointType >
ConstPointPointerType& Kratos::Geometry< TPointType >::operator() ( const SizeType i) const
inline

◆ operator=() [1/2]

template<class TPointType >
Geometry& Kratos::Geometry< TPointType >::operator= ( const Geometry< 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 >
Geometry& Kratos::Geometry< TPointType >::operator= ( Geometry< 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

◆ operator[]() [1/2]

template<class TPointType >
TPointType& Kratos::Geometry< TPointType >::operator[] ( const SizeType i)
inline

◆ operator[]() [2/2]

template<class TPointType >
TPointType const& Kratos::Geometry< TPointType >::operator[] ( const SizeType i) const
inline

◆ pGetGeometryPart() [1/2]

template<class TPointType >
virtual GeometryType::Pointer Kratos::Geometry< TPointType >::pGetGeometryPart ( const IndexType  Index)
inlinevirtual

◆ pGetGeometryPart() [2/2]

template<class TPointType >
virtual const GeometryType::Pointer Kratos::Geometry< TPointType >::pGetGeometryPart ( const IndexType  Index) const
inlinevirtual

◆ pGetPoint() [1/2]

template<class TPointType >
TPointType::Pointer Kratos::Geometry< TPointType >::pGetPoint ( const int  Index)
inline

An access method to the i'th points stored in this geometry.

Returns
A counted pointer to i'th point of geometry.

◆ pGetPoint() [2/2]

template<class TPointType >
const TPointType::Pointer Kratos::Geometry< TPointType >::pGetPoint ( const int  Index) const
inline

A constant access method to the i'th points stored in this geometry.

Returns
A constant counted pointer to i'th point of geometry.

◆ PointLocalCoordinates()

template<class TPointType >
virtual CoordinatesArrayType& Kratos::Geometry< TPointType >::PointLocalCoordinates ( CoordinatesArrayType rResult,
const CoordinatesArrayType rPoint 
) const
inlinevirtual

◆ Points() [1/2]

template<class TPointType >
PointsArrayType& Kratos::Geometry< TPointType >::Points ( )
inline

An access method to the Vector of the points stored in this geometry.

Returns
A reference to PointsArrayType contains pointers to the points.

◆ Points() [2/2]

template<class TPointType >
const PointsArrayType& Kratos::Geometry< TPointType >::Points ( ) const
inline

A constant access method to the Vector of the points stored in this geometry.

Returns
A constant reference to PointsArrayType contains pointers to the points.

◆ PointsLocalCoordinates()

template<class TPointType >
virtual Matrix& Kratos::Geometry< TPointType >::PointsLocalCoordinates ( Matrix rResult) const
inlinevirtual

Returns a matrix of the local coordinates of all points

Parameters
rResulta Matrix that will be overwritten by the results
Returns
the coordinates of all points of the current geometry

Reimplemented in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, and Kratos::Line3DN< TPointType >.

◆ PointsNumber()

template<class TPointType >
SizeType Kratos::Geometry< TPointType >::PointsNumber ( ) const
inline

@detail Returns the number of the points/ nodes belonging to this geometry.

Returns
Number of points/ nodes.

◆ PointsNumberInDirection()

template<class TPointType >
virtual SizeType Kratos::Geometry< TPointType >::PointsNumberInDirection ( IndexType  LocalDirectionIndex) const
inlinevirtual

◆ PolynomialDegree()

template<class TPointType >
virtual SizeType Kratos::Geometry< TPointType >::PolynomialDegree ( IndexType  LocalDirectionIndex) const
inlinevirtual

◆ PrintData()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::PrintData ( std::ostream &  rOStream) const
inlinevirtual

Print object's data.

Reimplemented in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::SurfaceInNurbsVolumeGeometry< TWorkingSpaceDimension, TVolumeContainerPointType >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::QuadraturePointSurfaceInVolumeGeometry< TPointType >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::QuadraturePointCurveOnSurfaceGeometry< TPointType >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::PointOnGeometry< TContainerPointType, TWorkingSpaceDimension, TLocalSpaceDimensionOfBackground >, Kratos::Point3D< TPointType >, Kratos::Point3D< Kratos::Node >, Kratos::Point2D< TPointType >, Kratos::Point2D< Kratos::Node >, Kratos::NurbsVolumeGeometry< TContainerPointType >, Kratos::NurbsSurfaceGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, Kratos::CouplingGeometry< TPointType >, Kratos::BrepSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurve< TContainerPointType, TContainerPointEmbeddedType >, and Kratos::Line3DN< TPointType >.

◆ PrintInfo()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::PrintInfo ( std::ostream &  rOStream) const
inlinevirtual

Print information about this object.

Reimplemented in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::SurfaceInNurbsVolumeGeometry< TWorkingSpaceDimension, TVolumeContainerPointType >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::QuadraturePointSurfaceInVolumeGeometry< TPointType >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::QuadraturePointCurveOnSurfaceGeometry< TPointType >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::PointOnGeometry< TContainerPointType, TWorkingSpaceDimension, TLocalSpaceDimensionOfBackground >, Kratos::Point3D< TPointType >, Kratos::Point3D< Kratos::Node >, Kratos::Point2D< TPointType >, Kratos::Point2D< Kratos::Node >, Kratos::NurbsVolumeGeometry< TContainerPointType >, Kratos::NurbsSurfaceGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, Kratos::CouplingGeometry< TPointType >, Kratos::BrepSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurve< TContainerPointType, TContainerPointEmbeddedType >, and Kratos::Line3DN< TPointType >.

◆ PrintName()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::PrintName ( std::ostream &  rOstream) const
inlinevirtual

Print name.

◆ ProjectionPoint()

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

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 in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Line2D2< TPointType >, and Kratos::Line2D2< Kratos::Node >.

◆ ProjectionPointGlobalToLocalSpace()

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

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 in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::NurbsVolumeGeometry< TContainerPointType >, Kratos::NurbsSurfaceGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::BrepSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, and Kratos::BrepCurve< TContainerPointType, TContainerPointEmbeddedType >.

◆ ProjectionPointLocalToLocalSpace()

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

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 in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Line2D2< TPointType >, and Kratos::Line2D2< Kratos::Node >.

◆ ptr_begin() [1/2]

template<class TPointType >
ptr_iterator Kratos::Geometry< TPointType >::ptr_begin ( )
inline

◆ ptr_begin() [2/2]

template<class TPointType >
ptr_const_iterator Kratos::Geometry< TPointType >::ptr_begin ( ) const
inline

◆ ptr_end() [1/2]

template<class TPointType >
ptr_iterator Kratos::Geometry< TPointType >::ptr_end ( )
inline

◆ ptr_end() [2/2]

template<class TPointType >
ptr_const_iterator Kratos::Geometry< TPointType >::ptr_end ( ) const
inline

◆ push_back()

template<class TPointType >
void Kratos::Geometry< TPointType >::push_back ( PointPointerType  x)
inline

◆ Quality()

template<class TPointType >
double Kratos::Geometry< TPointType >::Quality ( const QualityCriteria  qualityCriteria) const
inline

Calculates the quality of the geometry according to a given criteria.

Calculates the quality of the geometry according to a given criteria. In General The quality of the result is normalized being 1.0 for best quality, 0.0 for degenerated elements and -1.0 for inverted elements.

Different crtieria can be used to stablish the quality of the geometry.

Returns
double value contains quality of the geometry
See also
QualityCriteria
QualityAspectRatio
QualityAverageEdgeLenght

◆ RegularityQuality()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::RegularityQuality ( ) const
inlineprotectedvirtual

Calculates the Regularity quality metric. Calculates the Regularity quality metric. This metric is bounded by the interval (-1,1) being: 1 -> Optimal value 0 -> Worst value -1 -> Negative volume

\( \frac{4r}{H} \)

Returns
regularity quality.

Reimplemented in Kratos::Tetrahedra3D4< TPointType >, and Kratos::Tetrahedra3D4< Kratos::Node >.

◆ RemoveGeometryPart() [1/2]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::RemoveGeometryPart ( const IndexType  Index)
inlinevirtual

Removes a geometry part.

Parameters
Indexof the geometry part.

Reimplemented in Kratos::CouplingGeometry< TPointType >.

◆ RemoveGeometryPart() [2/2]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::RemoveGeometryPart ( GeometryType::Pointer  pGeometry)
inlinevirtual

Removes a geometry part.

Parameters
pGeometryThe new geometry to remove

Reimplemented in Kratos::CouplingGeometry< TPointType >.

◆ reserve()

template<class TPointType >
void Kratos::Geometry< TPointType >::reserve ( int  dim)
inline

◆ SetData()

template<class TPointType >
void Kratos::Geometry< TPointType >::SetData ( DataValueContainer const &  rThisData)
inline

◆ SetGeometryData()

template<class TPointType >
void Kratos::Geometry< TPointType >::SetGeometryData ( GeometryData const *  pGeometryData)
inlineprotected

updates the pointer to GeometryData of the respective geometry.

Parameters
pGeometryDatapointer to const GeometryData.

◆ SetGeometryParent()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::SetGeometryParent ( GeometryType pGeometryParent)
inlinevirtual

◆ SetGeometryPart()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::SetGeometryPart ( const IndexType  Index,
GeometryType::Pointer  pGeometry 
)
inlinevirtual

Allows to exchange certain geometries.

Parameters
Indexof the geometry part. 0->Master; 1->Slave
pGeometryThe new geometry to add

Reimplemented in Kratos::CouplingGeometry< TPointType >.

◆ SetGeometryShapeFunctionContainer()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::SetGeometryShapeFunctionContainer ( const GeometryShapeFunctionContainer< GeometryData::IntegrationMethod > &  rGeometryShapeFunctionContainer)
inlinevirtual

◆ SetId() [1/2]

template<class TPointType >
void Kratos::Geometry< TPointType >::SetId ( const IndexType  Id)
inline

Sets Id of this Geometry.

◆ SetId() [2/2]

template<class TPointType >
void Kratos::Geometry< TPointType >::SetId ( const std::string &  rName)
inline

Sets Id with the use of the name of this geometry.

◆ SetValue()

template<class TPointType >
template<class TVariableType >
void Kratos::Geometry< TPointType >::SetValue ( const TVariableType &  rThisVariable,
typename TVariableType::Type const &  rValue 
)
inline

Set Data with SetValue and the Variable to set:

◆ ShapeFunctionDerivatives() [1/2]

template<class TPointType >
const Matrix& Kratos::Geometry< TPointType >::ShapeFunctionDerivatives ( IndexType  DerivativeOrderIndex,
IndexType  IntegrationPointIndex 
) const
inline

◆ ShapeFunctionDerivatives() [2/2]

template<class TPointType >
const Matrix& Kratos::Geometry< TPointType >::ShapeFunctionDerivatives ( IndexType  DerivativeOrderIndex,
IndexType  IntegrationPointIndex,
IntegrationMethod  ThisMethod 
) const
inline

◆ ShapeFunctionLocalGradient() [1/3]

template<class TPointType >
const Matrix& Kratos::Geometry< TPointType >::ShapeFunctionLocalGradient ( IndexType  IntegrationPointIndex) const
inline

This method gives gradient of given shape function evaluated in given integration point of default integration method. It just call ShapeFunctionLocalGradient(IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex, enum IntegrationMethod ThisMethod) with default integration method. There is no calculation and it just give it from shape functions values container if they are existing. Otherwise it gives you error which this value is not exist.

Parameters
IntegrationPointIndexindex of integration point which shape function gradient evaluated in it.
ShapeFunctionIndexindex of node which correspounding shape function gradient evaluated in given integration point.
Returns
Gradient of given shape function in given integration point of default integration method.
See also
ShapeFunctionsValues
ShapeFunctionValue
ShapeFunctionsLocalGradients

◆ ShapeFunctionLocalGradient() [2/3]

template<class TPointType >
const Matrix& Kratos::Geometry< TPointType >::ShapeFunctionLocalGradient ( IndexType  IntegrationPointIndex,
IndexType  ShapeFunctionIndex,
IntegrationMethod  ThisMethod 
) const
inline

◆ ShapeFunctionLocalGradient() [3/3]

template<class TPointType >
const Matrix& Kratos::Geometry< TPointType >::ShapeFunctionLocalGradient ( IndexType  IntegrationPointIndex,
IntegrationMethod  ThisMethod 
) const
inline

This method gives gradient of given shape function evaluated in given integration point of given integration method. There is no calculation and it just give it from shape functions values container if they are existing. Otherwise it gives you error which this value is not exist.

Parameters
IntegrationPointIndexindex of integration point which shape function gradient evaluated in it.
ShapeFunctionIndexindex of node which correspounding shape function gradient evaluated in given integration point.
ThisMethodintegration method which shape function gradient evaluated in its integration points.
Returns
Gradient of given shape function in given integration point of given integration method.
See also
ShapeFunctionsValues
ShapeFunctionValue
ShapeFunctionsLocalGradients

◆ ShapeFunctionsIntegrationPointsGradients() [1/4]

template<class TPointType >
void Kratos::Geometry< TPointType >::ShapeFunctionsIntegrationPointsGradients ( ShapeFunctionsGradientsType rResult) const
inline

◆ ShapeFunctionsIntegrationPointsGradients() [2/4]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::ShapeFunctionsIntegrationPointsGradients ( ShapeFunctionsGradientsType rResult,
IntegrationMethod  ThisMethod 
) const
inlinevirtual

◆ ShapeFunctionsIntegrationPointsGradients() [3/4]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::ShapeFunctionsIntegrationPointsGradients ( ShapeFunctionsGradientsType rResult,
Vector rDeterminantsOfJacobian,
IntegrationMethod  ThisMethod 
) const
inlinevirtual

◆ ShapeFunctionsIntegrationPointsGradients() [4/4]

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::ShapeFunctionsIntegrationPointsGradients ( ShapeFunctionsGradientsType rResult,
Vector rDeterminantsOfJacobian,
IntegrationMethod  ThisMethod,
Matrix ShapeFunctionsIntegrationPointsValues 
) const
inlinevirtual

◆ ShapeFunctionsLocalGradients() [1/3]

template<class TPointType >
const ShapeFunctionsGradientsType& Kratos::Geometry< TPointType >::ShapeFunctionsLocalGradients ( ) const
inline

This method gives all shape functions gradients evaluated in all integration points of default integration method. It just call ShapeFunctionsLocalGradients(enum IntegrationMethod ThisMethod) with default integration method. There is no calculation and it just give it from shape functions values container.

Note
There is no control if there is any gradient calculated or not!
Returns
shape functions' gradients \( F_{ijk} \) where i is the integration point index and j is the shape function index and k is local coordinate index. In other word component \( f_{ijk} \) is k'th component of gradient of the shape function corresponding to node j evaluated in integration point i of default integration method.
See also
ShapeFunctionsValues
ShapeFunctionValue
ShapeFunctionLocalGradient

◆ ShapeFunctionsLocalGradients() [2/3]

template<class TPointType >
const ShapeFunctionsGradientsType& Kratos::Geometry< TPointType >::ShapeFunctionsLocalGradients ( IntegrationMethod  ThisMethod) const
inline

This method gives all shape functions gradients evaluated in all integration points of given integration method. There is no calculation and it just give it from shape functions values container.

Note
There is no control if there is any gradient calculated or not!
Parameters
ThisMethodintegration method which shape functions gradients evaluated in its integration points.
Returns
shape functions' gradients \( F_{ijk} \) where i is the integration point index and j is the shape function index and k is local coordinate index. In other word component \( f_{ijk} \) is k'th component of gradient of the shape function corresponding to node j evaluated in integration point i of given integration method.
See also
ShapeFunctionsValues
ShapeFunctionValue
ShapeFunctionLocalGradient

◆ ShapeFunctionsLocalGradients() [3/3]

template<class TPointType >
virtual Matrix& Kratos::Geometry< TPointType >::ShapeFunctionsLocalGradients ( Matrix rResult,
const CoordinatesArrayType rPoint 
) const
inlinevirtual

This method gives gradient of all shape functions evaluated in given point. There is no calculation and it just give it from shape functions values container if they are existing. Otherwise it gives you error which this value is not exist.

Parameters
rResultthe given Container that will be overwritten by the solution
rPointthe given local coordinates the gradients will be evaluated for
Returns
a matrix of gradients for each shape function

Reimplemented in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Line3DN< TPointType >, Kratos::PointOnGeometry< TContainerPointType, TWorkingSpaceDimension, TLocalSpaceDimensionOfBackground >, Kratos::NurbsVolumeGeometry< TContainerPointType >, Kratos::NurbsSurfaceGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::BrepSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurve< TContainerPointType, TContainerPointEmbeddedType >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, and Kratos::Hexahedra3D20< Kratos::Node >.

◆ ShapeFunctionsSecondDerivatives()

template<class TPointType >
virtual ShapeFunctionsSecondDerivativesType& Kratos::Geometry< TPointType >::ShapeFunctionsSecondDerivatives ( ShapeFunctionsSecondDerivativesType rResult,
const CoordinatesArrayType rPoint 
) const
inlinevirtual

◆ ShapeFunctionsThirdDerivatives()

template<class TPointType >
virtual ShapeFunctionsThirdDerivativesType& Kratos::Geometry< TPointType >::ShapeFunctionsThirdDerivatives ( ShapeFunctionsThirdDerivativesType rResult,
const CoordinatesArrayType rPoint 
) const
inlinevirtual

◆ ShapeFunctionsValues() [1/3]

template<class TPointType >
const Matrix& Kratos::Geometry< TPointType >::ShapeFunctionsValues ( ) const
inline

This method gives all shape functions values evaluated in all integration points of default integration method. It just call ShapeFunctionsValues(enum IntegrationMethod ThisMethod) with default integration method.There is no calculation and it just give it from shape functions values container.

Note
There is no control if the return matrix is empty or not!
Returns
Matrix of values of shape functions \( F_{ij} \) where i is the integration point index and j is the shape function index. In other word component \( f_{ij} \) is value of the shape function corresponding to node j evaluated in integration point i of default integration method.
See also
ShapeFunctionValue
ShapeFunctionsLocalGradients
ShapeFunctionLocalGradient

◆ ShapeFunctionsValues() [2/3]

template<class TPointType >
const Matrix& Kratos::Geometry< TPointType >::ShapeFunctionsValues ( IntegrationMethod  ThisMethod) const
inline

This method gives all shape functions values evaluated in all integration points of given integration method. There is no calculation and it just give it from shape functions values container.

Note
There is no control if the return matrix is empty or not!
Parameters
ThisMethodintegration method which shape functions evaluated in its integration points.
Returns
Matrix of values of shape functions \( F_{ij} \) where i is the integration point index and j is the shape function index. In other word component \( f_{ij} \) is value of the shape function corresponding to node j evaluated in integration point i of given integration method.
See also
ShapeFunctionValue
ShapeFunctionsLocalGradients
ShapeFunctionLocalGradient

◆ ShapeFunctionsValues() [3/3]

template<class TPointType >
virtual Vector& Kratos::Geometry< TPointType >::ShapeFunctionsValues ( Vector rResult,
const CoordinatesArrayType rCoordinates 
) const
inlinevirtual

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 in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TLocalSpaceDimension, TDimension >, Kratos::QuadraturePointGeometry< TPointType, TWorkingSpaceDimension, TWorkingSpaceDimension, TWorkingSpaceDimension >, Kratos::QuadraturePointGeometry< Kratos::Node, 3 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2 >, Kratos::QuadraturePointGeometry< TPointType, 3, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 2 >, Kratos::QuadraturePointGeometry< Kratos::Node, 1 >, Kratos::QuadraturePointGeometry< TPointType, 3, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 2, 1 >, Kratos::QuadraturePointGeometry< Kratos::Node, 3, 1 >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::PointOnGeometry< TContainerPointType, TWorkingSpaceDimension, TLocalSpaceDimensionOfBackground >, Kratos::NurbsVolumeGeometry< TContainerPointType >, Kratos::NurbsSurfaceGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::NurbsCurveGeometry< TWorkingSpaceDimension, TContainerPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D5< TPointType >, Kratos::Line2D4< TPointType >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, Kratos::BrepSurface< TContainerPointType, TContainerPointEmbeddedType >, Kratos::BrepCurveOnSurface< TContainerPointType, TContainerPointEmbeddedType >, and Kratos::BrepCurve< TContainerPointType, TContainerPointEmbeddedType >.

◆ ShapeFunctionValue() [1/3]

template<class TPointType >
double Kratos::Geometry< TPointType >::ShapeFunctionValue ( IndexType  IntegrationPointIndex,
IndexType  ShapeFunctionIndex 
) const
inline

This method gives value of given shape function evaluated in given integration point of default integration method. It just call ShapeFunctionValue(IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex, enum IntegrationMethod ThisMethod) with default integration method. There is no calculation and it just give it from shape functions values container if they are existing. Otherwise it gives you error which this value is not exist.

Parameters
IntegrationPointIndexindex of integration point which shape functions evaluated in it.
ShapeFunctionIndexindex of node which correspounding shape function evaluated in given integration point.
Returns
Value of given shape function in given integration point of default integration method.
See also
ShapeFunctionsValues
ShapeFunctionsLocalGradients
ShapeFunctionLocalGradient

◆ ShapeFunctionValue() [2/3]

template<class TPointType >
double Kratos::Geometry< TPointType >::ShapeFunctionValue ( IndexType  IntegrationPointIndex,
IndexType  ShapeFunctionIndex,
IntegrationMethod  ThisMethod 
) const
inline

This method gives value of given shape function evaluated in given integration point of given integration method. There is no calculation and it just give it from shape functions values container if they are existing. Otherwise it gives you error which this value is not exist.

Parameters
IntegrationPointIndexindex of integration point which shape functions evaluated in it.
ShapeFunctionIndexindex of node which correspounding shape function evaluated in given integration point.
ThisMethodintegration method which shape function evaluated in its integration point.
Returns
Value of given shape function in given integration point of given integration method.
See also
ShapeFunctionsValues
ShapeFunctionsLocalGradients
ShapeFunctionLocalGradient

◆ ShapeFunctionValue() [3/3]

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::ShapeFunctionValue ( IndexType  ShapeFunctionIndex,
const CoordinatesArrayType rCoordinates 
) const
inlinevirtual

This method gives value of given shape function evaluated in given point.

Parameters
rPointPoint of evaluation of the shape function. This point must be in local coordinate.
ShapeFunctionIndexindex of node which correspounding shape function evaluated in given integration point.
Returns
Value of given shape function in given point.
See also
ShapeFunctionsValues
ShapeFunctionsLocalGradients
ShapeFunctionLocalGradient

Reimplemented in Kratos::Triangle3D6< TPointType >, Kratos::Triangle3D6< Kratos::Node >, Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D6< TPointType >, Kratos::Triangle2D6< Kratos::Node >, Kratos::Triangle2D3< TPointType >, Kratos::Triangle2D3< Kratos::Node >, Kratos::Triangle2D15< TPointType >, Kratos::Triangle2D10< TPointType >, Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Tetrahedra3D10< TPointType >, Kratos::Tetrahedra3D10< Kratos::Node >, Kratos::Sphere3D1< TPointType >, Kratos::Sphere3D1< Kratos::Node >, Kratos::QuadrilateralInterface3D4< TPointType >, Kratos::QuadrilateralInterface2D4< TPointType >, Kratos::Quadrilateral3D9< TPointType >, Kratos::Quadrilateral3D9< Kratos::Node >, Kratos::Quadrilateral3D8< TPointType >, Kratos::Quadrilateral3D8< Kratos::Node >, Kratos::Quadrilateral3D4< TPointType >, Kratos::Quadrilateral3D4< Kratos::Node >, Kratos::Quadrilateral2D9< TPointType >, Kratos::Quadrilateral2D9< Kratos::Node >, Kratos::Quadrilateral2D8< TPointType >, Kratos::Quadrilateral2D8< Kratos::Node >, Kratos::Quadrilateral2D4< TPointType >, Kratos::Quadrilateral2D4< Kratos::Node >, Kratos::Pyramid3D5< TPointType >, Kratos::Pyramid3D5< Kratos::Node >, Kratos::Pyramid3D13< TPointType >, Kratos::Pyramid3D13< Kratos::Node >, Kratos::PrismInterface3D6< TPointType >, Kratos::Prism3D6< TPointType >, Kratos::Prism3D6< Kratos::Node >, Kratos::Prism3D15< TPointType >, Kratos::Prism3D15< Kratos::Node >, Kratos::LineGaussLobatto3D2< TPointType >, Kratos::Line3D3< TPointType >, Kratos::Line3D3< Kratos::Node >, Kratos::Line3D2< TPointType >, Kratos::Line3D2< Kratos::Node >, Kratos::Line2D3< TPointType >, Kratos::Line2D3< Kratos::Node >, Kratos::Line2D2< TPointType >, Kratos::Line2D2< Kratos::Node >, Kratos::HexahedraInterface3D8< TPointType >, Kratos::Hexahedra3D8< TPointType >, Kratos::Hexahedra3D8< Kratos::Node >, Kratos::Hexahedra3D27< TPointType >, Kratos::Hexahedra3D27< Kratos::Node >, Kratos::Hexahedra3D20< TPointType >, Kratos::Hexahedra3D20< Kratos::Node >, Kratos::Line3DN< TPointType >, Kratos::Line2D5< TPointType >, and Kratos::Line2D4< TPointType >.

◆ ShortestAltitudeToEdgeLengthRatio()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::ShortestAltitudeToEdgeLengthRatio ( ) const
inlineprotectedvirtual

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

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

Returns
The shortest altitude to edge length quality metric.

Reimplemented in Kratos::Triangle3D3< TPointType >, Kratos::Triangle3D3< Kratos::Node >, Kratos::Triangle2D3< TPointType >, and Kratos::Triangle2D3< Kratos::Node >.

◆ ShortestToLongestEdgeQuality()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::ShortestToLongestEdgeQuality ( ) const
inlineprotectedvirtual

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

\( \frac{l}{L} \)

Returns
[description]

Reimplemented in Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Hexahedra3D8< TPointType >, and Kratos::Hexahedra3D8< Kratos::Node >.

◆ size()

template<class TPointType >
SizeType Kratos::Geometry< TPointType >::size ( ) const
inline

◆ SpansLocalSpace()

template<class TPointType >
virtual void Kratos::Geometry< TPointType >::SpansLocalSpace ( std::vector< double > &  rSpans,
IndexType  LocalDirectionIndex = 0 
) const
inlinevirtual

◆ swap()

template<class TPointType >
void Kratos::Geometry< TPointType >::swap ( GeometryType rOther)
inline

◆ UnitNormal() [1/3]

template<class TPointType >
virtual array_1d<double, 3> Kratos::Geometry< TPointType >::UnitNormal ( const CoordinatesArrayType rPointLocalCoordinates) const
inlinevirtual

It computes the unit normal of the geometry in the given local point.

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

◆ UnitNormal() [2/3]

template<class TPointType >
virtual array_1d<double, 3> Kratos::Geometry< TPointType >::UnitNormal ( IndexType  IntegrationPointIndex) const
inlinevirtual

It returns the normalized normal vector in the given integration point.

Parameters
IntegrationPointIndexindex in internal integration point list
ThisMethodthe integration point is dependent on the used integration method
Returns
The normal in the given integration point

◆ UnitNormal() [3/3]

template<class TPointType >
virtual array_1d<double, 3> Kratos::Geometry< TPointType >::UnitNormal ( IndexType  IntegrationPointIndex,
IntegrationMethod  ThisMethod 
) const
inlinevirtual

It returns the normalized normal vector in the given integration point.

Parameters
IntegrationPointIndexindex in internal integration point list
ThisMethodthe integration point is dependent on the used integration method
Returns
The normal in the given integration point

◆ Volume()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::Volume ( ) const
inlinevirtual

◆ VolumeToAverageEdgeLength()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::VolumeToAverageEdgeLength ( ) const
inlineprotectedvirtual

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

\( \frac{V}{\frac{1}{6}\sum{l_i}} \)

Returns
[description]

Reimplemented in Kratos::Tetrahedra3D4< TPointType >, and Kratos::Tetrahedra3D4< Kratos::Node >.

◆ VolumeToEdgeLengthQuality()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::VolumeToEdgeLengthQuality ( ) const
inlineprotectedvirtual

Calculates the Volume to edge length quaility metric. Calculates the Volume to edge length quaility metric. This metric is bounded by the interval (-1,1) being: 1 -> Optimal value 0 -> Worst value -1 -> Negative volume

\( \frac{V^{2/3}}{\sum{l_{i}^{2}}} \)

Returns
Volume to edge length quality.

Reimplemented in Kratos::Tetrahedra3D4< TPointType >, and Kratos::Tetrahedra3D4< Kratos::Node >.

◆ VolumeToRMSEdgeLength()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::VolumeToRMSEdgeLength ( ) const
inlineprotectedvirtual

Calculates the volume to average edge length quality metric. Calculates the volume to average edge length quality metric. The average edge lenght is calculated using the RMS. This metric is bounded by the interval (-1,1) being: 1 -> Optimal value 0 -> Worst value -1 -> Negative volume

\( \frac{V}{\sqrt{\frac{1}{6}\sum{A_{i}^{2}}}} \)

Returns
[description]

Reimplemented in Kratos::Tetrahedra3D4< TPointType >, Kratos::Tetrahedra3D4< Kratos::Node >, Kratos::Hexahedra3D8< TPointType >, and Kratos::Hexahedra3D8< Kratos::Node >.

◆ VolumeToSurfaceAreaQuality()

template<class TPointType >
virtual double Kratos::Geometry< TPointType >::VolumeToSurfaceAreaQuality ( ) const
inlineprotectedvirtual

Calculates the volume to surface area quality metric. Calculates the volume to surface area quality metric. This metric is bounded by the interval (-1,1) being: 1 -> Optimal value 0 -> Worst value -1 -> Negative volume

\( \frac{V^4}{(\sum{A_{i}^{2}})^{3}} \)

Returns
volume to surface quality.

Reimplemented in Kratos::Tetrahedra3D4< TPointType >, and Kratos::Tetrahedra3D4< Kratos::Node >.

◆ WorkingSpaceDimension()

template<class TPointType >
SizeType Kratos::Geometry< TPointType >::WorkingSpaceDimension ( ) const
inline

Working space dimension. for example a triangle is a 2 dimensional shape but can be used in 3 dimensional space.

Returns
SizeType, working space dimension of this geometry.
See also
Dimension()
LocalSpaceDimension()

Friends And Related Function Documentation

◆ Geometry

template<class TPointType >
template<class TOtherPointType >
friend class Geometry
friend

◆ Serializer

template<class TPointType >
friend class Serializer
friend

Member Data Documentation

◆ BACKGROUND_GEOMETRY_INDEX

template<class TPointType >
constexpr IndexType Kratos::Geometry< TPointType >::BACKGROUND_GEOMETRY_INDEX = std::numeric_limits<IndexType>::max()
staticconstexpr

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