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.
Static Public Member Functions | List of all members
Kratos::GeometryUtils Class Reference

This function provides basic routines for working with simplicial meshes. More...

#include <geometry_utilities.h>

Collaboration diagram for Kratos::GeometryUtils:

Public Types

Type Definitions
using SizeType = std::size_t
 The size type definition. More...
 
using IndexType = std::size_t
 The index type definition. More...
 
using GeometryType = Geometry< Node >
 Definition of the geometry. More...
 

Static Public Member Functions

template<>
void EvaluateHistoricalVariableValueAtGaussPoint (double &rOutput, const GeometryType &rGeometry, const Variable< double > &rVariable, const Vector &rGaussPointShapeFunctionValues, const int Step)
 
Operations
static std::string GetGeometryName (const GeometryData::KratosGeometryType TypeOfGeometry)
 This function returns a string equivalent for the geometry type. More...
 
template<class TGeometryType >
static TGeometryType::CoordinatesArrayType & PointLocalCoordinatesPlanarFaceTetrahedra (const TGeometryType &rGeometry, typename TGeometryType::CoordinatesArrayType &rResult, const typename TGeometryType::CoordinatesArrayType &rPoint)
 Returns the local coordinates of a given arbitrary point for a given linear tetrahedra. More...
 
static void CalculateGeometryData (const GeometryType &rGeometry, BoundedMatrix< double, 4, 3 > &rDN_DX, array_1d< double, 4 > &rN, double &rVolume)
 This function is designed to compute the shape function derivatives, shape functions and volume in 3D. More...
 
static double CalculateVolume3D (const GeometryType &rGeometry)
 This function computes the element's volume (with sign) More...
 
static void CalculateGeometryData (const GeometryType &rGeometry, BoundedMatrix< double, 3, 2 > &DN_DX, array_1d< double, 3 > &N, double &rArea)
 This function is designed to compute the shape function derivatives, shape functions and area of a triangle. More...
 
static double CalculateVolume2D (const GeometryType &rGeometry)
 This function computes the element's volume (with sign) More...
 
static void SideLenghts2D (const GeometryType &rGeometry, double &hmin, double &hmax)
 This function compute the maximum and minimum edge lenghts. More...
 
static void CalculateGeometryData (const GeometryType &rGeometry, BoundedMatrix< double, 2, 1 > &rDN_DX, array_1d< double, 2 > &rN, double &rLength)
 This function is designed to compute the shape function derivatives, shape functions and length. More...
 
template<std::size_t TSize>
static void CalculateTetrahedraDistances (const GeometryType &rGeometry, array_1d< double, TSize > &rDistances)
 Calculate the exact distances to the interface TRIANGLE defined by a set of initial distances. More...
 
template<std::size_t TSize>
static void CalculateTriangleDistances (const GeometryType &rGeometry, array_1d< double, TSize > &rDistances)
 Calculate the exact distances to the interface SEGMENT defined by a set of initial distances. More...
 
template<std::size_t TSize>
static void CalculateExactDistancesToPlane (const GeometryType &rThisGeometry, array_1d< double, TSize > &rDistances)
 Calculate the exact distances to the plane interface defined by a set of initial distances. More...
 
template<std::size_t TSize1, std::size_t TSize2>
static int CalculateTetrahedraIntersectionPoints (const GeometryType &rGeometry, array_1d< double, TSize1 > &rDistances, array_1d< Point, TSize2 > &rIntersectionPoints)
 This function calculates the coordinates of the intersecion points between edges of tetrahedra and a isosurface given by the distances in its corners. More...
 
static double PointDistanceToLineSegment3D (const Point &rLinePoint1, const Point &rLinePoint2, const Point &rToPoint)
 This function calculates the distance of a 3D point to a 3D line segment. More...
 
static double PointDistanceToTriangle3D (const Point &rTrianglePoint1, const Point &rTrianglePoint2, const Point &rTrianglePoint3, const Point &rPoint)
 This function calculates the distance of a 3D point to a 3D triangle. More...
 
static double PointDistanceToTriangle3D (const Point &rTrianglePoint1, const Point &rTrianglePoint2, const Point &rTrianglePoint3, const Point &rTrianglePoint4, const Point &rTrianglePoint5, const Point &rTrianglePoint6, const Point &rPoint)
 This function calculates the distance of a 3D point to a 3D quadratic triangle. More...
 
static double PointDistanceToQuadrilateral3D (const Point &rQuadrilateralPoint1, const Point &rQuadrilateralPoint2, const Point &rQuadrilateralPoint3, const Point &rQuadrilateralPoint4, const Point &rPoint)
 This function calculates the distance of a 3D point to a 3D quadrilateral. More...
 
template<class TMatrix1 , class TMatrix2 , class TMatrix3 >
static void ShapeFunctionsGradients (TMatrix1 const &rDN_De, TMatrix2 const &rInvJ, TMatrix3 &rDN_DX)
 Calculate the gradients of shape functions. More...
 
template<class TMatrix1 , class TMatrix2 , class TMatrix3 >
static void DeformationGradient (TMatrix1 const &rJ, TMatrix2 const &rInvJ0, TMatrix3 &rF)
 Calculate the deformation gradient. More...
 
static void JacobianOnInitialConfiguration (GeometryType const &rGeom, GeometryType::CoordinatesArrayType const &rCoords, Matrix &rJ0)
 Calculate the Jacobian on the initial configuration. More...
 
template<class TMatrix >
static void DirectJacobianOnCurrentConfiguration (GeometryType const &rGeometry, GeometryType::CoordinatesArrayType const &rCoords, TMatrix &rJ)
 Calculate the Jacobian on the initial configuration. More...
 
template<class TMatrix >
static void DirectJacobianOnInitialConfiguration (GeometryType const &rGeometry, TMatrix &rJ0, const IndexType PointNumber, const GeometryType::IntegrationMethod &rIntegrationMethod)
 Calculate the Jacobian on the initial configuration. More...
 
template<class TDataType >
static void EvaluateHistoricalVariableValueAtGaussPoint (TDataType &rOutput, const GeometryType &rGeometry, const Variable< TDataType > &rVariable, const Vector &rGaussPointShapeFunctionValues, const int Step=0)
 Evaluates variable value at gauss point. More...
 
static void EvaluateHistoricalVariableGradientAtGaussPoint (array_1d< double, 3 > &rOutput, const GeometryType &rGeometry, const Variable< double > &rVariable, const Matrix &rGaussPointShapeFunctionDerivativeValues, const int Step=0)
 Evaluates gradient of scalar at gauss point. More...
 
static void EvaluateHistoricalVariableGradientAtGaussPoint (BoundedMatrix< double, 3, 3 > &rOutput, const GeometryType &rGeometry, const Variable< array_1d< double, 3 >> &rVariable, const Matrix &rGaussPointShapeFunctionDerivativeValues, const int Step=0)
 Evaluates gradient of a 3d vector at gauss point. More...
 
static void ShapeFunctionsSecondDerivativesTransformOnAllIntegrationPoints (DenseVector< DenseVector< Matrix >> &rResult, const GeometryType &rGeometry, const GeometryType::IntegrationMethod &rIntegrationMethod)
 This method gives the transform of shape functions second derivatives from isoparametric to natural coordinates evaluated in all integration points. More...
 
static void ShapeFunctionsSecondDerivativesTransformOnIntegrationPoint (const Matrix &DN_DX, const GeometryType &rGeometry, const GeometryType::CoordinatesArrayType &rLocalIntegrationPointCoordinates, DenseVector< Matrix > &rResult)
 This method gives the transform of shape functions second derivatives from isoparametric to natural coordinates evaluated on an integration point. More...
 
static bool ProjectedIsInside (const GeometryType &rGeometry, const GeometryType::CoordinatesArrayType &rPointGlobalCoordinates, GeometryType::CoordinatesArrayType &rResult, const double Tolerance=std::numeric_limits< double >::epsilon())
 Checks if given point in global space coordinates is inside the geometry boundaries. More...
 
template<class TGeometryType >
static double CalculateDistanceFrom3DGeometry (const TGeometryType &rGeometry, const typename TGeometryType::CoordinatesArrayType &rPointGlobalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon())
 Computes the distance between an point in global coordinates and the closest point of this geometry. More...
 

Detailed Description

This function provides basic routines for working with simplicial meshes.

It is faster than using Geometry as it is more specialized

Author
Riccardo Rossi

Member Typedef Documentation

◆ GeometryType

Definition of the geometry.

◆ IndexType

using Kratos::GeometryUtils::IndexType = std::size_t

The index type definition.

◆ SizeType

using Kratos::GeometryUtils::SizeType = std::size_t

The size type definition.

Member Function Documentation

◆ CalculateDistanceFrom3DGeometry()

template<class TGeometryType >
static double Kratos::GeometryUtils::CalculateDistanceFrom3DGeometry ( const TGeometryType &  rGeometry,
const typename TGeometryType::CoordinatesArrayType &  rPointGlobalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
)
inlinestatic

Computes the distance between an point in global coordinates and the closest point of this geometry.

Parameters
rGeometrythe geometry to compute the distance to.
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.

◆ CalculateExactDistancesToPlane()

template<std::size_t TSize>
static void Kratos::GeometryUtils::CalculateExactDistancesToPlane ( const GeometryType rThisGeometry,
array_1d< double, TSize > &  rDistances 
)
inlinestatic

Calculate the exact distances to the plane interface defined by a set of initial distances.

Same argument is used to give the calculated exact distances back

Parameters
rThisGeometryGeometry can be either a triangle or a tetrahedra
rDistancesThe distances which define the isosurface as input.

◆ CalculateGeometryData() [1/3]

static void Kratos::GeometryUtils::CalculateGeometryData ( const GeometryType rGeometry,
BoundedMatrix< double, 2, 1 > &  rDN_DX,
array_1d< double, 2 > &  rN,
double rLength 
)
inlinestatic

This function is designed to compute the shape function derivatives, shape functions and length.

Parameters
rGeometryit is the array of nodes. It is expected to be a line
rDN_DXa stack matrix of size 3*2 to store the shape function's derivatives
rNan array_1d to store the shape functions at the barycenter
rLengththe volume of the element

◆ CalculateGeometryData() [2/3]

static void Kratos::GeometryUtils::CalculateGeometryData ( const GeometryType rGeometry,
BoundedMatrix< double, 3, 2 > &  DN_DX,
array_1d< double, 3 > &  N,
double rArea 
)
inlinestatic

This function is designed to compute the shape function derivatives, shape functions and area of a triangle.

Parameters
rGeometryit is the array of nodes. It is expected to be a triangle
DN_DXa stack matrix of size 3*2 to store the shape function's derivatives
Nan array_1d to store the shape functions at the barycenter
Areathe volume of the element

◆ CalculateGeometryData() [3/3]

static void Kratos::GeometryUtils::CalculateGeometryData ( const GeometryType rGeometry,
BoundedMatrix< double, 4, 3 > &  rDN_DX,
array_1d< double, 4 > &  rN,
double rVolume 
)
inlinestatic

This function is designed to compute the shape function derivatives, shape functions and volume in 3D.

Parameters
rGeometryit is the array of nodes. It is expected to be a tetrahedra
rDN_DXa stack matrix of size 4*3 to store the shape function's derivatives
rNan array_1d to store the shape functions at the barycenter
rVolumethe volume of the element

◆ CalculateTetrahedraDistances()

template<std::size_t TSize>
static void Kratos::GeometryUtils::CalculateTetrahedraDistances ( const GeometryType rGeometry,
array_1d< double, TSize > &  rDistances 
)
inlinestatic

Calculate the exact distances to the interface TRIANGLE defined by a set of initial distances.

Parameters
rGeometryThe tetrahedra itself. Note: If the geometry is not a tetrahedra the result is undefined and may cause memory error.
rDistancesThe distances which define the isosurface as input and the same argument is used to give the calculated exact distance

◆ CalculateTetrahedraIntersectionPoints()

template<std::size_t TSize1, std::size_t TSize2>
static int Kratos::GeometryUtils::CalculateTetrahedraIntersectionPoints ( const GeometryType rGeometry,
array_1d< double, TSize1 > &  rDistances,
array_1d< Point, TSize2 > &  rIntersectionPoints 
)
inlinestatic

This function calculates the coordinates of the intersecion points between edges of tetrahedra and a isosurface given by the distances in its corners.

Parameters
rGeometryThe tetrahedra itself. Note: If the geometry is not a tetrahedra the result is undefined and may cause memory error.
rDistancesThe distances of the 4 nodes of the tetrahedra to the iso surface.
rIntersectionPointsThe result intersection points
Returns
Number of intersection points.

◆ CalculateTriangleDistances()

template<std::size_t TSize>
static void Kratos::GeometryUtils::CalculateTriangleDistances ( const GeometryType rGeometry,
array_1d< double, TSize > &  rDistances 
)
inlinestatic

Calculate the exact distances to the interface SEGMENT defined by a set of initial distances.

Parameters
rGeometryThe Triangle itself. Note: If the geometry is not a triangle the result is undefined and may cause memory error.
rDistancesThe distances which define the isosurface as input and the same argument is used to give the calculated exact distance

◆ CalculateVolume2D()

static double Kratos::GeometryUtils::CalculateVolume2D ( const GeometryType rGeometry)
inlinestatic

This function computes the element's volume (with sign)

Parameters
rGeometryit is the array of nodes. It expects a triangle
Deprecated:
This method can be replaced by geometry function without loosing performance

◆ CalculateVolume3D()

static double Kratos::GeometryUtils::CalculateVolume3D ( const GeometryType rGeometry)
inlinestatic

This function computes the element's volume (with sign)

Parameters
rGeometryit is the array of nodes. It expects a tetrahedra
Deprecated:
This method can be replaced by geometry function without loosing performance

◆ DeformationGradient()

template<class TMatrix1 , class TMatrix2 , class TMatrix3 >
static void Kratos::GeometryUtils::DeformationGradient ( TMatrix1 const &  rJ,
TMatrix2 const &  rInvJ0,
TMatrix3 &  rF 
)
inlinestatic

Calculate the deformation gradient.

See, e.g., P. Wriggers, Nonlinear Finite Element Methods, Springer, 2008.

Parameters
rJelement Jacobian.
rInvJ0inverse of the element Jacobian of the initial configuration.
rFdeformation gradient.

◆ DirectJacobianOnCurrentConfiguration()

template<class TMatrix >
static void Kratos::GeometryUtils::DirectJacobianOnCurrentConfiguration ( GeometryType const &  rGeometry,
GeometryType::CoordinatesArrayType const &  rCoords,
TMatrix &  rJ 
)
inlinestatic

Calculate the Jacobian on the initial configuration.

Parameters
rGeomelement geometry.
rCoordslocal coordinates of the current integration point.
rJ0Jacobian on the initial configuration.

◆ DirectJacobianOnInitialConfiguration()

template<class TMatrix >
static void Kratos::GeometryUtils::DirectJacobianOnInitialConfiguration ( GeometryType const &  rGeometry,
TMatrix &  rJ0,
const IndexType  PointNumber,
const GeometryType::IntegrationMethod rIntegrationMethod 
)
inlinestatic

Calculate the Jacobian on the initial configuration.

Parameters
rGeomelement geometry
rJ0Jacobian on the initial configuration
PointNumberThe integration point considered
rIntegrationMethodThe integration method considered

◆ EvaluateHistoricalVariableGradientAtGaussPoint() [1/2]

void Kratos::GeometryUtils::EvaluateHistoricalVariableGradientAtGaussPoint ( array_1d< double, 3 > &  rOutput,
const GeometryType rGeometry,
const Variable< double > &  rVariable,
const Matrix rGaussPointShapeFunctionDerivativeValues,
const int  Step = 0 
)
static

Evaluates gradient of scalar at gauss point.

This method evaluates gradient of a scalar variable for given shape function derivative values. For 2D, it returns 3rd component as zero.

Parameters
rOutputOutput 3d variable containing gradients at gauss point
rGeometryGeometry from which gauss point values are interpolated
rVariableVariable for value interpolation
rGaussPointShapeFunctionDerivativeValuesShape function derivatives evaluated at gauss point
StepStep to be used in historical variable value interpolation

◆ EvaluateHistoricalVariableGradientAtGaussPoint() [2/2]

void Kratos::GeometryUtils::EvaluateHistoricalVariableGradientAtGaussPoint ( BoundedMatrix< double, 3, 3 > &  rOutput,
const GeometryType rGeometry,
const Variable< array_1d< double, 3 >> &  rVariable,
const Matrix rGaussPointShapeFunctionDerivativeValues,
const int  Step = 0 
)
static

Evaluates gradient of a 3d vector at gauss point.

This method evaluates gradient of a vector variable for given shape function derivative values. [ rOutput(i, j) = \frac{\partial u_i}{\partial x_j} ] Where $u_i$ is the component of 3D rVariable, and $x_j$ is the cartesian coordinate component. In 2D, it returns 3rd row and 3rd column with zeros.

Parameters
rOutputOutput matrix containing gradients at gauss point
rGeometryGeometry from which gauss point values are interpolated
rVariableVariable for value interpolation
rGaussPointShapeFunctionDerivativeValuesShape function derivatives evaluated at gauss point
StepStep to be used in historical variable value interpolation

◆ EvaluateHistoricalVariableValueAtGaussPoint() [1/2]

template<>
void Kratos::GeometryUtils::EvaluateHistoricalVariableValueAtGaussPoint ( double rOutput,
const GeometryType rGeometry,
const Variable< double > &  rVariable,
const Vector rGaussPointShapeFunctionValues,
const int  Step 
)
static

◆ EvaluateHistoricalVariableValueAtGaussPoint() [2/2]

template<class TDataType >
void Kratos::GeometryUtils::EvaluateHistoricalVariableValueAtGaussPoint ( TDataType &  rOutput,
const GeometryType rGeometry,
const Variable< TDataType > &  rVariable,
const Vector rGaussPointShapeFunctionValues,
const int  Step = 0 
)
static

Evaluates variable value at gauss point.

This method evaluates variable value at gauss point given by gauss point shape function values.

Template Parameters
TDataTypeData type
Parameters
rOutputOutput which holds evaluated value
rGeometryGeometry from which gauss point values are interpolated
rVariableVariable for value interpolation
rGaussPointShapeFunctionValuesShape function values evaluated at gauss point
StepStep to be used in historical variable value interpolation

◆ GetGeometryName()

std::string Kratos::GeometryUtils::GetGeometryName ( const GeometryData::KratosGeometryType  TypeOfGeometry)
static

This function returns a string equivalent for the geometry type.

Parameters
TypeOfGeometryThe geometry type

◆ JacobianOnInitialConfiguration()

static void Kratos::GeometryUtils::JacobianOnInitialConfiguration ( GeometryType const &  rGeom,
GeometryType::CoordinatesArrayType const &  rCoords,
Matrix rJ0 
)
inlinestatic

Calculate the Jacobian on the initial configuration.

Parameters
rGeomelement geometry.
rCoordslocal coordinates of the current integration point.
rJ0Jacobian on the initial configuration.

◆ PointDistanceToLineSegment3D()

double Kratos::GeometryUtils::PointDistanceToLineSegment3D ( const Point rLinePoint1,
const Point rLinePoint2,
const Point rToPoint 
)
static

This function calculates the distance of a 3D point to a 3D line segment.

Parameters
rLinePoint1First point of the line segment
rLinePoint2End point of the line segment
rToPointThe point which distance is required
Returns
The distance between the point and the line

◆ PointDistanceToQuadrilateral3D()

double Kratos::GeometryUtils::PointDistanceToQuadrilateral3D ( const Point rQuadrilateralPoint1,
const Point rQuadrilateralPoint2,
const Point rQuadrilateralPoint3,
const Point rQuadrilateralPoint4,
const Point rPoint 
)
static

This function calculates the distance of a 3D point to a 3D quadrilateral.

The implementation is done by decomposing the quadrilateral into 2 triangles and calling PointDistanceToTriangle3D

Parameters
rQuadrilateralPoint1First point of quadrilateral
rQuadrilateralPoint2Second point of quadrilateral
rQuadrilateralPoint3Third point of quadrilateral
rQuadrilateralPoint4Third point of quadrilateral
rPointThe point which distance is required
Returns
The distance between the point and the quadrilateral

◆ PointDistanceToTriangle3D() [1/2]

double Kratos::GeometryUtils::PointDistanceToTriangle3D ( const Point rTrianglePoint1,
const Point rTrianglePoint2,
const Point rTrianglePoint3,
const Point rPoint 
)
static

This function calculates the distance of a 3D point to a 3D triangle.

The implementation is done using following reference: http://www.geometrictools.com/Documentation/DistancePoint3Triangle3.pdf

Parameters
rTrianglePoint1First point of triangle
rTrianglePoint2Second point of triangle
rTrianglePoint3Third point of triangle
rPointThe point which distance is required
Returns
The distance between the point and the triangle

◆ PointDistanceToTriangle3D() [2/2]

double Kratos::GeometryUtils::PointDistanceToTriangle3D ( const Point rTrianglePoint1,
const Point rTrianglePoint2,
const Point rTrianglePoint3,
const Point rTrianglePoint4,
const Point rTrianglePoint5,
const Point rTrianglePoint6,
const Point rPoint 
)
static

This function calculates the distance of a 3D point to a 3D quadratic triangle.

The implementation is done by decomposing the quadratic triangle into 3 triangles and calling PointDistanceToTriangle3D

Parameters
rTrianglePoint1First point of triangle
rTrianglePoint2Second point of triangle
rTrianglePoint3Third point of triangle
rTrianglePoint4Fourth point of triangle
rTrianglePoint5Fifth point of triangle
rTrianglePoint6Sixth point of triangle
rPointThe point which distance is required
Returns
The distance between the point and the triangle

◆ PointLocalCoordinatesPlanarFaceTetrahedra()

template<class TGeometryType >
static TGeometryType::CoordinatesArrayType& Kratos::GeometryUtils::PointLocalCoordinatesPlanarFaceTetrahedra ( const TGeometryType &  rGeometry,
typename TGeometryType::CoordinatesArrayType &  rResult,
const typename TGeometryType::CoordinatesArrayType &  rPoint 
)
inlinestatic

Returns the local coordinates of a given arbitrary point for a given linear tetrahedra.

Based on https://www.colorado.edu/engineering/CAS/courses.d/AFEM.d/AFEM.Ch09.d/AFEM.Ch09.pdf. Section 9.1.6

Parameters
rGeometryThe geometry to be considered
rResultThe vector containing the local coordinates of the point
rPointThe point in global coordinates
Returns
The vector containing the local coordinates of the point

◆ ProjectedIsInside()

bool Kratos::GeometryUtils::ProjectedIsInside ( const GeometryType rGeometry,
const GeometryType::CoordinatesArrayType rPointGlobalCoordinates,
GeometryType::CoordinatesArrayType rResult,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
)
static

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 after projecting the points.

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

◆ ShapeFunctionsGradients()

template<class TMatrix1 , class TMatrix2 , class TMatrix3 >
static void Kratos::GeometryUtils::ShapeFunctionsGradients ( TMatrix1 const &  rDN_De,
TMatrix2 const &  rInvJ,
TMatrix3 &  rDN_DX 
)
inlinestatic

Calculate the gradients of shape functions.

Parameters
rDN_Delocal gradient of shape functions.
rInvJinverse of the element Jacobian.
rDN_DXgradient of shape functions.

◆ ShapeFunctionsSecondDerivativesTransformOnAllIntegrationPoints()

void Kratos::GeometryUtils::ShapeFunctionsSecondDerivativesTransformOnAllIntegrationPoints ( DenseVector< DenseVector< Matrix >> &  rResult,
const GeometryType rGeometry,
const GeometryType::IntegrationMethod rIntegrationMethod 
)
static

This method gives the transform of shape functions second derivatives from isoparametric to natural coordinates evaluated in all integration points.

Parameters
rResultthe transform of the second derivative of the shape function on the integration point

◆ ShapeFunctionsSecondDerivativesTransformOnIntegrationPoint()

void Kratos::GeometryUtils::ShapeFunctionsSecondDerivativesTransformOnIntegrationPoint ( const Matrix DN_DX,
const GeometryType rGeometry,
const GeometryType::CoordinatesArrayType rLocalIntegrationPointCoordinates,
DenseVector< Matrix > &  rResult 
)
static

This method gives the transform of shape functions second derivatives from isoparametric to natural coordinates evaluated on an integration point.

The method used can be found here. https://scicomp.stackexchange.com/questions/25196/implementing-higher-order-derivatives-for-finite-element

Parameters
rLocalIntegrationPointCoordinatesthe local coordinates of the integration point
rResultthe transform of the second derivative of the shape function on the integration point

◆ SideLenghts2D()

static void Kratos::GeometryUtils::SideLenghts2D ( const GeometryType rGeometry,
double hmin,
double hmax 
)
inlinestatic

This function compute the maximum and minimum edge lenghts.

It assumes that it is a triangle

Parameters
rGeometryit is the array of nodes. It expects a triangle
hminThe minimum length
hmaxThe maximum length

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