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.
|
This utility calculates the exact integration necessary for the Mortar Conditions. More...
#include <exact_mortar_segmentation_utility.h>
Public Member Functions | |
bool | GetExactIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, ConditionArrayListType &rConditionsPointsSlave) |
bool | GetExactIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, ConditionArrayListType &rConditionsPointsSlave) |
bool | GetExactIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, ConditionArrayListType &rConditionsPointsSlave) |
bool | GetExactIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, ConditionArrayListType &rConditionsPointsSlave) |
bool | GetExactIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, ConditionArrayListType &rConditionsPointsSlave) |
bool | GetExactIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, ConditionArrayListType &rConditionsPointsSlave) |
bool | GetExactIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, ConditionArrayListType &rConditionsPointsSlave) |
bool | GetExactIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, ConditionArrayListType &rConditionsPointsSlave) |
bool | GetExactIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, ConditionArrayListType &rConditionsPointsSlave) |
bool | GetExactIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, ConditionArrayListType &rConditionsPointsSlave) |
Life Cycle | |
ExactMortarIntegrationUtility (const SizeType IntegrationOrder=0, const double DistanceThreshold=std::numeric_limits< double >::max(), const SizeType EchoLevel=0, const double ZeroToleranceFactor=1.0, const bool ConsiderDelaunator=false) | |
This is the default constructor. More... | |
virtual | ~ExactMortarIntegrationUtility ()=default |
Destructor. More... | |
Operations | |
bool | GetExactIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, ConditionArrayListType &rConditionsPointsSlave) |
This utility computes the exact integration of the mortar condition (just the points, not the whole integration points) More... | |
bool | GetExactIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, IntegrationPointsType &rIntegrationPointsSlave) |
This utility computes the exact integration of the mortar condition. More... | |
bool | GetExactAreaIntegration (const GeometryType &rOriginalSlaveGeometry, const array_1d< double, 3 > &rSlaveNormal, const GeometryType &rOriginalMasterGeometry, const array_1d< double, 3 > &rMasterNormal, double &rArea) |
This utility computes the exact integration of the mortar condition and returns the area. More... | |
void | GetTotalArea (const GeometryType &rOriginalSlaveGeometry, ConditionArrayListType &rConditionsPointsSlave, double &rArea) |
It returns the total area inside the integration area. More... | |
bool | TestGetExactIntegration (Condition::Pointer pSlaveCond, Condition::Pointer pMasterCond, Matrix &rCustomSolution) |
This utility computes the exact integration of the mortar condition. More... | |
double | TestGetExactAreaIntegration (Condition::Pointer pSlaveCond, Condition::Pointer pMasterCond) |
This utility computes the exact integration of the mortar condition and returns the area. More... | |
double | TestGetExactAreaIntegration (ModelPart &rMainModelPart, Condition::Pointer pSlaveCond) |
This utility computes the exact integration of the mortar condition and returns the area. More... | |
void | TestIODebug (ModelPart &rMainModelPart, const std::string IOConsidered="GiD") |
This method is used for debugging purposes. Generates a GiD mesh to check. More... | |
Access | |
SizeType & | GetIntegrationOrder () |
This method gets the current mIntegrationOrder. More... | |
void | SetIntegrationOrder (const SizeType IntegrationOrder) |
This method sets the current mIntegrationOrder. More... | |
double & | GetDistanceThreshold () |
This method gets the current mDistanceThreshold. More... | |
void | SetDistanceThreshold (const double DistanceThreshold) |
This method sets the current mDistanceThreshold. More... | |
SizeType & | GetEchoLevel () |
This method gets the current mEchoLevel. More... | |
void | SetEchoLevel (const SizeType EchoLevel) |
This method sets the current mEchoLevel. More... | |
double & | GetZeroToleranceFactor () |
This method gets the current mZeroToleranceFactor. More... | |
void | SetZeroToleranceFactor (const double ZeroToleranceFactor) |
This method sets the current mZeroToleranceFactor. More... | |
bool & | GetConsiderDelaunator () |
This method gets the current mConsiderDelaunator. More... | |
void | SetConsiderDelaunator (const bool ConsiderDelaunator) |
This method sets the current mConsiderDelaunator. More... | |
Type Definitions | |
typedef std::conditional< TNumNodes==2, PointBelongsLine2D2N, typename std::conditional< TNumNodes==3, typename std::conditional< TNumNodesMaster==3, PointBelongsTriangle3D3N, PointBelongsTriangle3D3NQuadrilateral3D4N >::type, typename std::conditional< TNumNodesMaster==3, PointBelongsQuadrilateral3D4NTriangle3D3N, PointBelongsQuadrilateral3D4N >::type >::type >::type | BelongType |
The type of points belongfs to be considered. More... | |
typedef PointBelong< TNumNodes, TNumNodesMaster > | PointBelongType |
The definition of the point with belonging. More... | |
typedef std::vector< array_1d< PointBelongType, TDim > > | VectorArrayPointsBelong |
An array of points belong. More... | |
typedef std::vector< array_1d< PointType, TDim > > | VectorArrayPoints |
A vector of points. More... | |
typedef std::conditional< TBelong, VectorArrayPointsBelong, VectorArrayPoints >::type | ConditionArrayListType |
The type of array of points to be considered depending if we are interested in derivatives or not. More... | |
typedef std::vector< PointBelongType > | VectorPointsBelong |
A vector of points for derivatives. More... | |
typedef std::vector< PointType > | VectorPoints |
A vector of normal points. More... | |
typedef std::conditional< TBelong, VectorPointsBelong, VectorPoints >::type | PointListType |
The type of vector of points to be considered depending if we are interested in define derivatives or not. More... | |
typedef array_1d< PointBelongType, 3 > | ArrayPointsBelong |
An array of points belong. More... | |
typedef array_1d< PointType, 3 > | ArrayPoints |
An array of normal points. More... | |
typedef std::conditional< TBelong, ArrayPointsBelong, ArrayPoints >::type | ArrayTriangleType |
The type of arrayt of points to be used depending if we are interested in derivatives or not. More... | |
typedef Line2D2< Point > | LineType |
The points line geometry. More... | |
typedef Triangle3D3< Point > | TriangleType |
The points triangle geometry. More... | |
typedef std::conditional< TDim==2, LineType, TriangleType >::type | DecompositionType |
The geometry that will be considered for decomposition. More... | |
typedef std::size_t | IndexType |
The definition of the index type. More... | |
static constexpr double | ZeroTolerance = std::numeric_limits<double>::epsilon() |
Definition of epsilon. More... | |
KRATOS_CLASS_POINTER_DEFINITION (ExactMortarIntegrationUtility) | |
Pointer definition of ExactMortarIntegrationUtility. More... | |
Protected Operations | |
void | GetIntegrationMethod () |
Get the integration method to consider. More... | |
GeometryType::IntegrationPointsArrayType | GetIntegrationTriangle () |
Get the integration method to consider. More... | |
template<SizeType TSizeCheck = TNumNodes> | |
void | PushBackPoints (VectorPoints &rPointList, const array_1d< bool, TSizeCheck > &rAllInside, GeometryPointType &rThisGeometry) |
This function push backs the points that are inside. More... | |
template<SizeType TSizeCheck = TNumNodes> | |
void | PushBackPoints (VectorPointsBelong &rPointList, const array_1d< bool, TSizeCheck > &rAllInside, GeometryPointType &rThisGeometry, const PointBelongs &rThisBelongs) |
This function push backs the points that are inside. More... | |
template<SizeType TSizeCheck = TNumNodes> | |
void | CheckInside (array_1d< bool, TSizeCheck > &rAllInside, GeometryPointType &rGeometry1, GeometryPointType &rGeometry2, const double Tolerance) |
This function checks if the points of Geometry2 are inside Geometry1. More... | |
std::vector< IndexType > | ComputeAnglesIndexes (PointListType &rPointList, const array_1d< double, 3 > &rNormal) const |
This function computes the angles indexes. More... | |
void | ComputeClippingIntersections (PointListType &rPointList, const GeometryPointType &rSlaveGeometry, const GeometryPointType &rMasterGeometry, const PointType &rRefCenter) |
This function computes the angles indexes. More... | |
template<class TGeometryType = GeometryType> | |
bool | TriangleIntersections (ConditionArrayListType &rConditionsPointsSlave, PointListType &rPointList, const TGeometryType &rOriginalSlaveGeometry, const GeometryPointType &rSlaveGeometry, const GeometryPointType &rMasterGeometry, const array_1d< double, 3 > &rSlaveTangentXi, const array_1d< double, 3 > &rSlaveTangentEta, const PointType &rRefCenter, const bool IsAllInside=false) |
This function calculates the triangles intersections (this is a module, that can be used directly in the respective function) More... | |
template<SizeType TSizeCheck = TNumNodes> | |
static bool | CheckAllInside (const array_1d< bool, TSizeCheck > &rAllInside) |
This method checks if the whole array is true. More... | |
static bool | Clipping2D (PointType &rPointIntersection, const PointType &rPointOrig1, const PointType &rPointOrig2, const PointType &rPointDest1, const PointType &rPointDest2) |
This function intersects two lines in a 2D plane. More... | |
static array_1d< double, 3 > | GetNormalVector2D (const array_1d< double, 3 > &rVector) |
This function calculates in 2D the normal vector to a given one. More... | |
static double | AnglePoints (const PointType &rPointOrig1, const PointType &rPointOrig2, const array_1d< double, 3 > &rAxis1, const array_1d< double, 3 > &rAxis2) |
This function calculates in 2D the angle between two points. More... | |
static bool | CheckPoints (const PointType &rPointOrig, const PointType &rPointDest) |
This function checks if two points are the same one. More... | |
static double | FastTriagleCheck2D (const PointType &rPointOrig1, const PointType &rPointOrig2, const PointType &rPointOrig3) |
This functions calculates the determinant of a 2D triangle (using points) to check if invert the order. More... | |
static bool | CheckCenterIsInside (const array_1d< double, 2 > &rAuxiliarCenterLocalCoordinates, const SizeType NumNodes=TNumNodes) |
This method checks if the center of the geometry is inside the slave geometry (to prevent convex geometries) More... | |
This utility calculates the exact integration necessary for the Mortar Conditions.
The utility performs a mortar segmentation in order to obtain the exact integration of the geometry intersected
TDim | The dimension of work |
TNumNodes | The number of nodes of the slave |
TBelong | If we consider belonging of nodes or not. When you do the intersections in order to get the directional derivatives you need to know where the intersections belongs to calculate the derivatives. This says between which nodes the intersection belongs |
TNumNodesMaster | The number of nodes of the master |
typedef array_1d<PointType, 3> Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::ArrayPoints |
An array of normal points.
typedef array_1d<PointBelongType, 3> Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::ArrayPointsBelong |
An array of points belong.
typedef std::conditional<TBelong, ArrayPointsBelong, ArrayPoints>::type Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::ArrayTriangleType |
The type of arrayt of points to be used depending if we are interested in derivatives or not.
typedef std::conditional<TNumNodes == 2, PointBelongsLine2D2N, typename std::conditional<TNumNodes == 3, typename std::conditional<TNumNodesMaster == 3, PointBelongsTriangle3D3N, PointBelongsTriangle3D3NQuadrilateral3D4N>::type, typename std::conditional<TNumNodesMaster == 3, PointBelongsQuadrilateral3D4NTriangle3D3N, PointBelongsQuadrilateral3D4N>::type>::type>::type Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::BelongType |
The type of points belongfs to be considered.
typedef std::conditional<TBelong, VectorArrayPointsBelong,VectorArrayPoints>::type Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::ConditionArrayListType |
The type of array of points to be considered depending if we are interested in derivatives or not.
typedef std::conditional<TDim == 2, LineType, TriangleType>::type Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::DecompositionType |
The geometry that will be considered for decomposition.
typedef std::size_t Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::IndexType |
The definition of the index type.
typedef Line2D2<Point> Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::LineType |
The points line geometry.
typedef PointBelong<TNumNodes, TNumNodesMaster> Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::PointBelongType |
The definition of the point with belonging.
typedef std::conditional<TBelong, VectorPointsBelong, VectorPoints>::type Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::PointListType |
The type of vector of points to be considered depending if we are interested in define derivatives or not.
typedef Triangle3D3<Point> Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::TriangleType |
The points triangle geometry.
typedef std::vector<array_1d<PointType, TDim> > Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::VectorArrayPoints |
A vector of points.
typedef std::vector<array_1d<PointBelongType, TDim> > Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::VectorArrayPointsBelong |
An array of points belong.
typedef std::vector<PointType> Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::VectorPoints |
A vector of normal points.
typedef std::vector<PointBelongType> Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::VectorPointsBelong |
A vector of points for derivatives.
|
inline |
This is the default constructor.
IntegrationOrder | The integration order to consider |
DistanceThreshold | The maximum distance to be considered (if too far the integration will be skiped) |
|
virtualdefault |
Destructor.
|
inlinestaticprotected |
This function calculates in 2D the angle between two points.
rPointOrig1 | The points from the origin geometry |
rPointOrig2 | The points in the destination geometry |
rAxis1 | The axis respect the angle is calculated |
rAxis2 | The normal to the previous axis |
|
inlinestaticprotected |
This method checks if the whole array is true.
rAllInside | The nodes that are inside or not the geometry |
|
inlinestaticprotected |
This method checks if the center of the geometry is inside the slave geometry (to prevent convex geometries)
AuxiliarCenterLocalCoordinates | These are the local coordinates corresponding to the center |
NumNodes | The number of nodes of the geometry |
|
inlineprotected |
This function checks if the points of Geometry2 are inside Geometry1.
rAllInside | The nodes that are inside or not the geometry |
rGeometry1 | The geometry where the points are checked |
rGeometry2 | The geometry to check |
|
inlinestaticprotected |
This function checks if two points are the same one.
rPointOrig | The points from the origin geometry |
rPointDest | The points in the destination geometry |
|
inlinestaticprotected |
This function intersects two lines in a 2D plane.
rPointOrig1 | The first point from the origin geometry |
rPointOrig2 | The second point from the origin geometry |
rPointDest1 | The first point in the destination geometry |
rPointDest2 | The second point in the destination geometry |
rPointIntersection | The intersection point if there is any |
|
inlineprotected |
This function computes the angles indexes.
rPointList | The intersection points |
rNormal | The normal vector |
|
inlineprotected |
This function computes the angles indexes.
rPointList | The intersection points |
rSlaveGeometry | The first (slave) geometry studied (projected) |
rMasterGeometry | The second (master) geometry studied (projected) |
rRefCenter | The reference point to rotate |
|
inlinestaticprotected |
This functions calculates the determinant of a 2D triangle (using points) to check if invert the order.
rPointOrig1 | First point |
rPointOrig2 | Second point |
rPointOrig3 | Third point |
|
inline |
This method gets the current mConsiderDelaunator.
|
inline |
This method gets the current mDistanceThreshold.
|
inline |
This method gets the current mEchoLevel.
bool Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::GetExactAreaIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
double & | rArea | ||
) |
This utility computes the exact integration of the mortar condition and returns the area.
rOriginalSlaveGeometry | The geometry of the slave condition |
rSlaveNormal | The normal of the slave condition |
rOriginalMasterGeometry | The geometry of the master condition |
rMasterNormal | The normal of the master condition |
rArea | The total area integrated |
bool Kratos::ExactMortarIntegrationUtility< 2, 2, false >::GetExactIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
ConditionArrayListType & | rConditionsPointsSlave | ||
) |
bool Kratos::ExactMortarIntegrationUtility< 3, 3, false >::GetExactIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
ConditionArrayListType & | rConditionsPointsSlave | ||
) |
bool Kratos::ExactMortarIntegrationUtility< 3, 4, false >::GetExactIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
ConditionArrayListType & | rConditionsPointsSlave | ||
) |
bool Kratos::ExactMortarIntegrationUtility< 3, 3, false, 4 >::GetExactIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
ConditionArrayListType & | rConditionsPointsSlave | ||
) |
bool Kratos::ExactMortarIntegrationUtility< 3, 4, false, 3 >::GetExactIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
ConditionArrayListType & | rConditionsPointsSlave | ||
) |
bool Kratos::ExactMortarIntegrationUtility< 2, 2, true >::GetExactIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
ConditionArrayListType & | rConditionsPointsSlave | ||
) |
bool Kratos::ExactMortarIntegrationUtility< 3, 3, true >::GetExactIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
ConditionArrayListType & | rConditionsPointsSlave | ||
) |
bool Kratos::ExactMortarIntegrationUtility< 3, 4, true >::GetExactIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
ConditionArrayListType & | rConditionsPointsSlave | ||
) |
bool Kratos::ExactMortarIntegrationUtility< 3, 3, true, 4 >::GetExactIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
ConditionArrayListType & | rConditionsPointsSlave | ||
) |
bool Kratos::ExactMortarIntegrationUtility< 3, 4, true, 3 >::GetExactIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
ConditionArrayListType & | rConditionsPointsSlave | ||
) |
bool Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::GetExactIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
ConditionArrayListType & | rConditionsPointsSlave | ||
) |
This utility computes the exact integration of the mortar condition (just the points, not the whole integration points)
rOriginalSlaveGeometry | The geometry of the slave condition |
rSlaveNormal | The normal of the slave condition |
rOriginalMasterGeometry | The geometry of the master condition |
rMasterNormal | The normal of the master condition |
rConditionsPointsSlave | The points that perform the exact integration |
bool Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::GetExactIntegration | ( | const GeometryType & | rOriginalSlaveGeometry, |
const array_1d< double, 3 > & | rSlaveNormal, | ||
const GeometryType & | rOriginalMasterGeometry, | ||
const array_1d< double, 3 > & | rMasterNormal, | ||
IntegrationPointsType & | rIntegrationPointsSlave | ||
) |
This utility computes the exact integration of the mortar condition.
rOriginalSlaveGeometry | The geometry of the slave condition |
rSlaveNormal | The normal of the slave condition |
rOriginalMasterGeometry | The geometry of the master condition |
rMasterNormal | The normal of the master condition |
rIntegrationPointsSlave | The integrations points that belong to the slave |
|
protected |
Get the integration method to consider.
|
inline |
This method gets the current mIntegrationOrder.
|
protected |
Get the integration method to consider.
|
inlinestaticprotected |
This function calculates in 2D the normal vector to a given one.
rVector | The vector to compute the normal |
void Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::GetTotalArea | ( | const GeometryType & | rOriginalSlaveGeometry, |
ConditionArrayListType & | rConditionsPointsSlave, | ||
double & | rArea | ||
) |
It returns the total area inside the integration area.
rOriginalSlaveGeometry | The geometry of the slave condition |
rConditionsPointsSlave | The points that perform the exact integration |
rArea | The total area integrated |
|
inline |
This method gets the current mZeroToleranceFactor.
Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::KRATOS_CLASS_POINTER_DEFINITION | ( | ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster > | ) |
Pointer definition of ExactMortarIntegrationUtility.
|
inlineprotected |
This function push backs the points that are inside.
rPointList | The intersection points |
rAllInside | The nodes that are already known as inside the other geometry |
rThisGeometry | The geometry considered |
|
inlineprotected |
This function push backs the points that are inside.
rPointList | The intersection points |
rAllInside | The nodes that are already known as inside the other geometry |
rThisGeometry | The geometry considered |
rThisBelongs | This determine where it belongs each intersection |
|
inline |
This method sets the current mConsiderDelaunator.
ConsiderDelaunator | If considering delaunator |
|
inline |
This method sets the current mDistanceThreshold.
DistanceThreshold | The distance threshold considered |
|
inline |
This method sets the current mEchoLevel.
EchoLevel | The echo level considered |
|
inline |
This method sets the current mIntegrationOrder.
IntegrationOrder | The integration order considered |
|
inline |
This method sets the current mZeroToleranceFactor.
ZeroToleranceFactor | The zero tolerance factor considered |
double Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::TestGetExactAreaIntegration | ( | Condition::Pointer | pSlaveCond, |
Condition::Pointer | pMasterCond | ||
) |
This utility computes the exact integration of the mortar condition and returns the area.
pSlaveCond | The slave condition |
pMasterCond | The master condition |
double Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::TestGetExactAreaIntegration | ( | ModelPart & | rMainModelPart, |
Condition::Pointer | pSlaveCond | ||
) |
This utility computes the exact integration of the mortar condition and returns the area.
rMainModelPart | The main model part |
pSlaveCond | The slave condition |
bool Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::TestGetExactIntegration | ( | Condition::Pointer | pSlaveCond, |
Condition::Pointer | pMasterCond, | ||
Matrix & | rCustomSolution | ||
) |
This utility computes the exact integration of the mortar condition.
pSlaveCond | The slave condition |
pMasterCond | The master condition |
rCustomSolution | The matrix containing the integrations points that belong to the slave |
void Kratos::ExactMortarIntegrationUtility< TDim, TNumNodes, TBelong, TNumNodesMaster >::TestIODebug | ( | ModelPart & | rMainModelPart, |
const std::string | IOConsidered = "GiD" |
||
) |
This method is used for debugging purposes. Generates a GiD mesh to check.
rMainModelPart | The main model part |
IOConsidered | The IO considered |
|
inlineprotected |
This function calculates the triangles intersections (this is a module, that can be used directly in the respective function)
rConditionsPointsSlave | The final solution vector, containing all the nodes |
rPointList | The intersection points |
rSlaveGeometry | The first (slave) geometry studied (projected) |
rMasterGeometry | The second (master) geometry studied (projected) |
rSlaveTangentXi | The first vector used as base to rotate |
rSlaveTangentEta | The second vector used as base to rotate |
rRefCenter | The reference point to rotate |
IsAllInside | To simplify and consider the point_list directly |
|
staticconstexpr |
Definition of epsilon.