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::ContactUtilities Class Reference

This class includes some utilities used for contact computations. More...

#include <contact_utilities.h>

Collaboration diagram for Kratos::ContactUtilities:

Public Member Functions

Life Cycle
 ContactUtilities ()=default
 Constructor. More...
 
virtual ~ContactUtilities ()=default
 Destructor. More...
 

Static Public Member Functions

Operations
static double CalculateRelativeSizeMesh (ModelPart &rModelPart)
 This function computes the relative size of the mesh. More...
 
static double CalculateMaxNodalH (ModelPart &rModelPart)
 This method computes the maximal nodal H. More...
 
static double CalculateMeanNodalH (ModelPart &rModelPart)
 This method computes the mean nodal H. More...
 
static double CalculateMinimalNodalH (ModelPart &rModelPart)
 This method computes the minimal nodal H. More...
 
template<class TPointType >
static void ScaleNode (TPointType &rPointToScale, const array_1d< double, 3 > &rNormal, const double LengthSearch)
 This function scales the points according to a factor (to increase the bounding box) More...
 
static double DistancePoints (const GeometryType::CoordinatesArrayType &rPointOrigin, const GeometryType::CoordinatesArrayType &rPointDestiny)
 Calculates the distance between nodes. More...
 
static void ComputeStepJump (ModelPart &rModelPart, const double DeltaTime, const bool HalfJump=true)
 It calculates the center updated in u_n+1 or u_n+1/2. More...
 
static bool CheckActivity (ModelPart &rModelPart, const bool ThrowError=true)
 It checks the activity of the current contact simulation. More...
 
static bool CheckModelPartHasRotationDoF (ModelPart &rModelPart)
 This method checks that the modelpart has a rotation DoF. More...
 
static void CleanContactModelParts (ModelPart &rModelPart)
 This method removes the model parts with computing conditions. More...
 
static void ComputeExplicitContributionConditions (ModelPart &rModelPart)
 It computes the explicit contributions of the conditions. More...
 
static void ActivateConditionWithActiveNodes (ModelPart &rModelPart)
 It activates the conditions with active nodes. More...
 
static array_1d< double, 3 > GetHalfJumpCenter (GeometryType &rThisGeometry)
 It calculates the center updated in u_n+1/2. More...
 
template<std::size_t TDim, std::size_t TNumNodes>
static BoundedMatrix< double, TNumNodes, TDim > ComputeTangentMatrixSlip (const GeometryType &rGeometry, const std::size_t StepSlip=1)
 It calculates the matrix containing the tangent vector of the r_gt (for frictional contact) More...
 

Type Definitions

using CoordinatesArrayType = Point::CoordinatesArrayType
 
using GeometryType = Geometry< Node >
 Definition of geometries. More...
 
using NodesArrayType = ModelPart::NodesContainerType
 The containers of the components of the model parts. More...
 
using ConditionsArrayType = ModelPart::ConditionsContainerType
 
using IndexType = std::size_t
 Index type definition. More...
 
using SizeType = std::size_t
 Size type definition. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (ContactUtilities)
 Pointer definition of ExactMortarIntegrationUtility. More...
 

Detailed Description

This class includes some utilities used for contact computations.

Author
Vicente Mataix Ferrandiz

Member Typedef Documentation

◆ ConditionsArrayType

◆ CoordinatesArrayType

◆ GeometryType

Definition of geometries.

◆ IndexType

Index type definition.

◆ NodesArrayType

The containers of the components of the model parts.

◆ SizeType

Size type definition.

Constructor & Destructor Documentation

◆ ContactUtilities()

Kratos::ContactUtilities::ContactUtilities ( )
default

Constructor.

This is the default constructor

◆ ~ContactUtilities()

virtual Kratos::ContactUtilities::~ContactUtilities ( )
virtualdefault

Destructor.

Member Function Documentation

◆ ActivateConditionWithActiveNodes()

void Kratos::ContactUtilities::ActivateConditionWithActiveNodes ( ModelPart rModelPart)
static

It activates the conditions with active nodes.

Parameters
rModelPartThe modelpart to check

◆ CalculateMaxNodalH()

double Kratos::ContactUtilities::CalculateMaxNodalH ( ModelPart rModelPart)
static

This method computes the maximal nodal H.

Parameters
rModelPartThe modelpart to compute

◆ CalculateMeanNodalH()

double Kratos::ContactUtilities::CalculateMeanNodalH ( ModelPart rModelPart)
static

This method computes the mean nodal H.

Parameters
rModelPartThe modelpart to compute

◆ CalculateMinimalNodalH()

double Kratos::ContactUtilities::CalculateMinimalNodalH ( ModelPart rModelPart)
static

This method computes the minimal nodal H.

Parameters
rModelPartThe modelpart to compute

◆ CalculateRelativeSizeMesh()

double Kratos::ContactUtilities::CalculateRelativeSizeMesh ( ModelPart rModelPart)
static

This function computes the relative size of the mesh.

Parameters
rModelPartThe modelpart to compute

◆ CheckActivity()

bool Kratos::ContactUtilities::CheckActivity ( ModelPart rModelPart,
const bool  ThrowError = true 
)
static

It checks the activity of the current contact simulation.

Parameters
rModelPartThe modelpart to check the activity
ThrowErrorIf an error is thrown

◆ CheckModelPartHasRotationDoF()

bool Kratos::ContactUtilities::CheckModelPartHasRotationDoF ( ModelPart rModelPart)
static

This method checks that the modelpart has a rotation DoF.

Used in the convergence criteria

Parameters
rModelPartThe modelpart to clean up

◆ CleanContactModelParts()

void Kratos::ContactUtilities::CleanContactModelParts ( ModelPart rModelPart)
static

This method removes the model parts with computing conditions.

So for example we can remove potential errors in remeshing processes

Parameters
rModelPartThe modelpart to clean up

◆ ComputeExplicitContributionConditions()

void Kratos::ContactUtilities::ComputeExplicitContributionConditions ( ModelPart rModelPart)
static

It computes the explicit contributions of the conditions.

Parameters
rModelPartThe modelpart to update

◆ ComputeStepJump()

void Kratos::ContactUtilities::ComputeStepJump ( ModelPart rModelPart,
const double  DeltaTime,
const bool  HalfJump = true 
)
static

It calculates the center updated in u_n+1 or u_n+1/2.

Parameters
rModelPartThe modelpart to update
DeltaTimeThe increment of time considered
HalfJumpIf the jumpt is just half dt

◆ ComputeTangentMatrixSlip()

template<std::size_t TDim, std::size_t TNumNodes>
static BoundedMatrix<double, TNumNodes, TDim> Kratos::ContactUtilities::ComputeTangentMatrixSlip ( const GeometryType rGeometry,
const std::size_t  StepSlip = 1 
)
inlinestatic

It calculates the matrix containing the tangent vector of the r_gt (for frictional contact)

Parameters
rGeometryThe geometry to calculate
StepSlipThe considered step slip
Returns
tangent_matrix The matrix containing the tangent vectors of the r_gt

◆ DistancePoints()

double Kratos::ContactUtilities::DistancePoints ( const GeometryType::CoordinatesArrayType rPointOrigin,
const GeometryType::CoordinatesArrayType rPointDestiny 
)
static

Calculates the distance between nodes.

Parameters
rPointOriginThe first node
rPointDestinyThe second node

◆ GetHalfJumpCenter()

array_1d< double, 3 > Kratos::ContactUtilities::GetHalfJumpCenter ( GeometryType rThisGeometry)
static

It calculates the center updated in u_n+1/2.

Parameters
rThisGeometryThe geometry to calculate
Returns
point: The center in u_n+1/2 (Newmark)

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::ContactUtilities::KRATOS_CLASS_POINTER_DEFINITION ( ContactUtilities  )

Pointer definition of ExactMortarIntegrationUtility.

◆ ScaleNode()

template<class TPointType >
static void Kratos::ContactUtilities::ScaleNode ( TPointType &  rPointToScale,
const array_1d< double, 3 > &  rNormal,
const double  LengthSearch 
)
inlinestatic

This function scales the points according to a factor (to increase the bounding box)

Parameters
rPointToScaleThe point to scale
rNormalThe normal of the point
LengthSearchThe factor considered to "grow" the node

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