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::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster > Class Template Reference

This process has as objective to create the contact conditions. More...

#include <base_contact_search_process.h>

Inheritance diagram for Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >:
Collaboration diagram for Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >:

Public Types

Enum's
enum class  SearchTreeType {
  KdtreeInRadius = 0 , KdtreeInBox = 1 , KdtreeInRadiusWithOBB = 2 , KdtreeInBoxWithOBB = 3 ,
  OctreeWithOBB = 4 , Kdop = 5
}
 An enumeration of the different types of search trees that can be used in the contact search process. More...
 
enum class  CheckResult { Fail = 0 , AlreadyInTheMap = 1 , OK = 2 }
 An enumeration of the possible results of a check during the contact search process. More...
 
enum class  CheckGap { NoCheck = 0 , DirectCheck = 1 , MappingCheck = 2 }
 An enumeration of the different types of gap checks that can be performed during the contact search process. More...
 
enum class  TypeSolution {
  NormalContactStress = 0 , ScalarLagrangeMultiplier = 1 , VectorLagrangeMultiplier = 2 , FrictionlessPenaltyMethod = 3 ,
  FrictionalPenaltyMethod = 4 , OtherFrictionless = 5 , OtherFrictional = 6
}
 An enumeration of the different types of solutions that can be used in the contact search process. More...
 
- Public Types inherited from Kratos::Flags
enum  FlagsList {
  Flag0 = BlockType(1) , Flag1 = BlockType(1) << 1 , Flag2 = BlockType(1) << 2 , Flag3 = BlockType(1) << 3 ,
  Flag4 = BlockType(1) << 4 , Flag5 = BlockType(1) << 5 , Flag6 = BlockType(1) << 6 , Flag7 = BlockType(1) << 7 ,
  Flag8 = BlockType(1) << 8 , Flag9 = BlockType(1) << 9 , Flag10 = BlockType(1) << 10 , Flag11 = BlockType(1) << 11 ,
  Flag12 = BlockType(1) << 12 , Flag13 = BlockType(1) << 13 , Flag14 = BlockType(1) << 14 , Flag15 = BlockType(1) << 15 ,
  Flag16 = BlockType(1) << 16 , Flag17 = BlockType(1) << 17 , Flag18 = BlockType(1) << 18 , Flag19 = BlockType(1) << 19 ,
  Flag20 = BlockType(1) << 20 , Flag21 = BlockType(1) << 21 , Flag22 = BlockType(1) << 22 , Flag23 = BlockType(1) << 23 ,
  Flag24 = BlockType(1) << 24 , Flag25 = BlockType(1) << 25 , Flag26 = BlockType(1) << 26 , Flag27 = BlockType(1) << 27 ,
  Flag28 = BlockType(1) << 28 , Flag29 = BlockType(1) << 29 , Flag30 = BlockType(1) << 30
}
 
typedef int64_t BlockType
 
typedef int64_t FlagType
 
typedef std::size_t IndexType
 

Public Member Functions

Life Cycle
 BaseContactSearchProcess (ModelPart &rMainModelPart, Parameters ThisParameters=Parameters(R"({})"), Properties::Pointer pPairedProperties=nullptr)
 The constructor of the search utility uses the following inputs: More...
 
 ~BaseContactSearchProcess () override=default
 Destructor. More...
 
Operators
void operator() ()
 
Operations
void Execute () override
 Execute method is used to execute the Process algorithms. More...
 
void ExecuteInitialize () override
 This function is designed for being called at the beginning of the computations right after reading the model and the groups. More...
 
void ExecuteInitializeSolutionStep () override
 This function will be executed at every time step BEFORE performing the solve phase. More...
 
void ExecuteFinalizeSolutionStep () override
 This function will be executed at every time step AFTER performing the solve phase. More...
 
void InitializeMortarConditions ()
 This function initializes the ALM frictionless mortar conditions already created. More...
 
virtual void ClearMortarConditions ()
 This function clears the mortar conditions already created. More...
 
virtual void CheckContactModelParts ()
 This method checks that the contact model part is unique (so the model parts contain unique contact pairs) More...
 
void CreatePointListMortar ()
 This function creates a lists points ready for the Mortar method. More...
 
void UpdatePointListMortar ()
 This function updates a lists points ready for the Mortar method. More...
 
void UpdateMortarConditions ()
 This function has as pourpose to find potential contact conditions and fill the mortar conditions with the necessary pointers. More...
 
void CheckMortarConditions ()
 It checks the current mortar conditions. More...
 
void InvertSearch ()
 It sets if the search is inverted. More...
 
virtual void ResetContactOperators ()
 This resets the contact operators. More...
 
const Parameters GetDefaultParameters () const override
 This method provides the defaults parameters to avoid conflicts between the different constructors. More...
 
Input and output
std::string Info () const override
 Returns a string with information about the contact search process. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Prints information about the contact search process to an output stream. More...
 
- Public Member Functions inherited from Kratos::Process
 KRATOS_CLASS_POINTER_DEFINITION (Process)
 Pointer definition of Process. More...
 
 Process ()
 Default constructor. More...
 
 Process (const Flags options)
 
 ~Process () override
 Destructor. More...
 
void operator() ()
 This operator is provided to call the process as a function and simply calls the Execute method. More...
 
virtual Process::Pointer Create (Model &rModel, Parameters ThisParameters)
 This method creates an pointer of the process. More...
 
virtual void ExecuteBeforeSolutionLoop ()
 This function is designed for being execute once before the solution loop but after all of the solvers where built. More...
 
virtual void ExecuteBeforeOutputStep ()
 This function will be executed at every time step BEFORE writing the output. More...
 
virtual void ExecuteAfterOutputStep ()
 This function will be executed at every time step AFTER writing the output. More...
 
virtual void ExecuteFinalize ()
 This function is designed for being called at the end of the computations. More...
 
virtual int Check ()
 This function is designed for being called after ExecuteInitialize ONCE to verify that the input is correct. More...
 
virtual void Clear ()
 This method clears the assignation of the conditions. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::Flags
Flagsoperator= (Flags const &rOther)
 Assignment operator. More...
 
 operator bool () const
 
Flags operator~ () const
 
bool operator! () const
 
void AssignFlags (Flags const &rOther)
 
void Set (const Flags ThisFlag)
 
void Set (const Flags ThisFlag, bool Value)
 
void Reset (const Flags ThisFlag)
 
void Flip (const Flags ThisFlag)
 
void SetPosition (IndexType Position, bool Value=true)
 
bool GetPosition (IndexType Position) const
 
void FlipPosition (IndexType Position)
 
void ClearPosition (IndexType Position)
 
void Clear ()
 
Flags AsFalse () const
 
bool Is (Flags const &rOther) const
 
bool IsDefined (Flags const &rOther) const
 
bool IsNot (Flags const &rOther) const
 
bool IsNotDefined (Flags const &rOther) const
 
 KRATOS_CLASS_POINTER_DEFINITION (Flags)
 Pointer definition of Flags. More...
 
const Flagsoperator|= (const Flags &Other)
 
const Flagsoperator&= (const Flags &Other)
 
 Flags ()
 Default constructor. More...
 
 Flags (Flags const &rOther)
 Copy constructor. More...
 
virtual ~Flags ()
 Destructor. More...
 

Protected Member Functions

Protected Operations
virtual void CleanModelPart (ModelPart &rModelPart)
 This method cleans the model part. More...
 
virtual void CheckPairing (ModelPart &rComputingModelPart, IndexType &rConditionId)
 This method checks the pairing. More...
 
virtual void ComputeActiveInactiveNodes ()
 This method computes which nodes are active or inactive after after mapping the coordinates. More...
 
virtual void SetActiveNode (Node &rNode, const double CommonEpsilon, const double ScaleFactor=1.0)
 This method sets as active a node and it sets to an explicit approximation its LM. More...
 
virtual void SetInactiveNode (Node &rNode)
 This method sets as inactive a node and it sets to zero its LM. More...
 
virtual Condition::Pointer AddPairing (ModelPart &rComputingModelPart, IndexType &rConditionId, GeometricalObject::Pointer pObjectSlave, const array_1d< double, 3 > &rSlaveNormal, GeometricalObject::Pointer pObjectMaster, const array_1d< double, 3 > &rMasterNormal, IndexMap::Pointer pIndexesPairs, Properties::Pointer pProperties)
 This method add a new pair to the computing model part. More...
 
CheckGap ConvertCheckGap (const std::string &str)
 This converts the framework string to an enum. More...
 
Protected Access
bool IsPureSlip ()
 This returns if we consider pure slip. More...
 
bool IsNotPureSlip ()
 This returns if we do not consider pure slip. More...
 
bool IsMultipleSearchs ()
 This returns if we consider multiple searchs. More...
 
bool IsNotMultipleSearchs ()
 This returns if we do not consider multiple searchs. More...
 
bool IsInvertedSearch ()
 This returns if we consider inverted search. More...
 
bool IsNotInvertedSearch ()
 This returns if we do not consider inverted search. More...
 

Protected Attributes

Protected member Variables
ModelPartmrMainModelPart
 
Parameters mThisParameters
 The main model part. More...
 
CheckGap mCheckGap
 The configuration parameters. More...
 
TypeSolution mTypeSolution
 If the gap is checked during the search. More...
 
PairedCondition const * mpReferenceCondition = nullptr
 The solution type. More...
 
PointVector mPointListDestination
 The prototype reference condition to be created. More...
 
Properties::Pointer mpPairedProperties = nullptr
 A list that contents the all the points (from nodes) from the modelpart. More...
 

Type Definitions

using NodesArrayType = ModelPart::NodesContainerType
 Containers definition. More...
 
using ConditionsArrayType = ModelPart::ConditionsContainerType
 
using GeometryType = Geometry< Node >
 Geometry type definition. More...
 
using IndexType = std::size_t
 Definition of the indextype. More...
 
using PointType = PointObject< Condition >
 Type definitions for the tree. More...
 
using PointTypePointer = typename PointType::Pointer
 Point type definition. More...
 
using PointVector = std::vector< PointTypePointer >
 Point type pointer definition. More...
 
using BucketType = Bucket< 3, PointType, PointVector >
 Point vector definition. More...
 
using KDTree = Tree< KDTreePartition< BucketType > >
 Bucket type definition. More...
 
using NormalGapProcessType = NormalGapProcess< TDim, TNumNodes, TNumNodesMaster >
 KDTree type definition. More...
 
static constexpr double GapThreshold = 2.0e-3
 Normal gap process type definition. More...
 
static constexpr double ZeroTolerance = std::numeric_limits<double>::epsilon()
 The definition of zero tolerance. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (BaseContactSearchProcess)
 Pointer definition of BaseContactSearchProcess. More...
 
 KRATOS_DEFINE_LOCAL_FLAG (INVERTED_SEARCH)
 Local Flags. More...
 
 KRATOS_DEFINE_LOCAL_FLAG (CREATE_AUXILIAR_CONDITIONS)
 
 KRATOS_DEFINE_LOCAL_FLAG (MULTIPLE_SEARCHS)
 
 KRATOS_DEFINE_LOCAL_FLAG (PREDEFINE_MASTER_SLAVE)
 
 KRATOS_DEFINE_LOCAL_FLAG (PURE_SLIP)
 

Additional Inherited Members

- Static Public Member Functions inherited from Kratos::Flags
static const Flags AllDefined ()
 
static const Flags AllTrue ()
 
static Flags Create (IndexType ThisPosition, bool Value=true)
 

Detailed Description

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
class Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >

This process has as objective to create the contact conditions.

The conditions that can be created are Mortar conditions (or segment to segment) conditions: The created conditions will be between two segments The utility employs the projection.h from MeshingApplication, which works internally using a kd-tree

Author
Vicente Mataix Ferrandiz
Template Parameters
TDimThe dimension of work
TNumNodesThe number of nodes of the slave
TNumNodesMasterThe number of nodes of the master

Member Typedef Documentation

◆ BucketType

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
using Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::BucketType = Bucket<3, PointType, PointVector>

Point vector definition.

KDtree definitions

◆ ConditionsArrayType

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
using Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::ConditionsArrayType = ModelPart::ConditionsContainerType

◆ GeometryType

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
using Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::GeometryType = Geometry<Node>

Geometry type definition.

◆ IndexType

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
using Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::IndexType = std::size_t

Definition of the indextype.

◆ KDTree

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
using Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::KDTree = Tree<KDTreePartition<BucketType> >

Bucket type definition.

◆ NodesArrayType

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
using Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::NodesArrayType = ModelPart::NodesContainerType

Containers definition.

◆ NormalGapProcessType

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
using Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::NormalGapProcessType = NormalGapProcess<TDim, TNumNodes, TNumNodesMaster>

KDTree type definition.

The type of mapper considered

◆ PointType

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
using Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::PointType = PointObject<Condition>

Type definitions for the tree.

◆ PointTypePointer

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
using Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::PointTypePointer = typename PointType::Pointer

Point type definition.

◆ PointVector

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
using Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::PointVector = std::vector<PointTypePointer>

Point type pointer definition.

Member Enumeration Documentation

◆ CheckGap

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
enum Kratos::BaseContactSearchProcess::CheckGap
strong

An enumeration of the different types of gap checks that can be performed during the contact search process.

Enumerator
NoCheck 

No gap check is performed.

DirectCheck 

A direct gap check is performed.

MappingCheck 

A mapping gap check is performed.

◆ CheckResult

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
enum Kratos::BaseContactSearchProcess::CheckResult
strong

An enumeration of the possible results of a check during the contact search process.

Enumerator
Fail 

The check failed.

AlreadyInTheMap 

The check succeeded, and the element is already in the map.

OK 

The check succeeded, and the element was added to the map.

◆ SearchTreeType

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
enum Kratos::BaseContactSearchProcess::SearchTreeType
strong

An enumeration of the different types of search trees that can be used in the contact search process.

Enumerator
KdtreeInRadius 

A kd-tree search within a given radius.

KdtreeInBox 

A kd-tree search within a given box.

KdtreeInRadiusWithOBB 

A kd-tree search within a given radius, using oriented bounding boxes (OBBs).

KdtreeInBoxWithOBB 

A kd-tree search within a given box, using OBBs.

OctreeWithOBB 

An octree search using OBBs.

Kdop 

A kd-tree search using discrete oriented polytopes (DOPs).

◆ TypeSolution

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
enum Kratos::BaseContactSearchProcess::TypeSolution
strong

An enumeration of the different types of solutions that can be used in the contact search process.

Enumerator
NormalContactStress 

A normal contact stress solution.

ScalarLagrangeMultiplier 

A scalar Lagrange multiplier solution.

VectorLagrangeMultiplier 

A vector Lagrange multiplier solution.

FrictionlessPenaltyMethod 

A frictionless penalty method solution.

FrictionalPenaltyMethod 

A frictional penalty method solution.

OtherFrictionless 

Another frictionless solution.

OtherFrictional 

Another frictional solution.

Constructor & Destructor Documentation

◆ BaseContactSearchProcess()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::BaseContactSearchProcess ( ModelPart rMainModelPart,
Parameters  ThisParameters = Parameters(R"({})"),
Properties::Pointer  pPairedProperties = nullptr 
)

The constructor of the search utility uses the following inputs:

Parameters
rMainModelPartThe model part to be considered
ThisParametersThe configuration parameters, it includes:
  • The allocation considered in the search
  • The factor considered to check if active or not
  • The integration order considered
  • The size of the bucket
  • The proportion increased of the Radius/Bounding-box volume for the search
  • TypeSearch: 0 means search in radius, 1 means search in box
pPairedPropertiesProperties of the pair
Todo:
Add more types of bounding boxes, as kdops, look bounding_volume_tree.h
Note
Use an InterfacePreprocess object to create such a model part from a regular one:
  1. InterfaceMapper = InterfacePreprocess()
  2. InterfacePart = InterfaceMapper.GenerateInterfacePart(Complete_Model_Part)

◆ ~BaseContactSearchProcess()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::~BaseContactSearchProcess ( )
overridedefault

Destructor.

Member Function Documentation

◆ AddPairing()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
Condition::Pointer Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::AddPairing ( ModelPart rComputingModelPart,
IndexType rConditionId,
GeometricalObject::Pointer  pObjectSlave,
const array_1d< double, 3 > &  rSlaveNormal,
GeometricalObject::Pointer  pObjectMaster,
const array_1d< double, 3 > &  rMasterNormal,
IndexMap::Pointer  pIndexesPairs,
Properties::Pointer  pProperties 
)
protectedvirtual

This method add a new pair to the computing model part.

Parameters
rComputingModelPartThe modelpart used in the assemble of the system
rConditionIdThe ID of the new condition to be created
pObjectSlaveThe pointer to the slave condition
rSlaveNormalThe normal of the slave condition
pObjectMasterThe pointer to the master condition
rMasterNormalThe normal of the master condition
pIndexesPairsThe map of indexes considered
pPropertiesThe pointer to the Properties of the condition
Returns
The new created condition

◆ CheckContactModelParts()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::CheckContactModelParts
virtual

This method checks that the contact model part is unique (so the model parts contain unique contact pairs)

Reimplemented in Kratos::MPCContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >.

◆ CheckMortarConditions()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::CheckMortarConditions

It checks the current mortar conditions.

◆ CheckPairing()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::CheckPairing ( ModelPart rComputingModelPart,
IndexType rConditionId 
)
protectedvirtual

This method checks the pairing.

Parameters
rComputingModelPartThe modelpart used in the assemble of the system
rConditionIdThe ID of the new condition to be created

Reimplemented in Kratos::AdvancedContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >.

◆ CleanModelPart()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::CleanModelPart ( ModelPart rModelPart)
protectedvirtual

This method cleans the model part.

Parameters
rModelPartThe model part of interest

Reimplemented in Kratos::MPCContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >.

◆ ClearMortarConditions()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::ClearMortarConditions
virtual

This function clears the mortar conditions already created.

◆ ComputeActiveInactiveNodes()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::ComputeActiveInactiveNodes
protectedvirtual

This method computes which nodes are active or inactive after after mapping the coordinates.

Reimplemented in Kratos::AdvancedContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >.

◆ ConvertCheckGap()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::CheckGap Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::ConvertCheckGap ( const std::string &  str)
protected

This converts the framework string to an enum.

Parameters
strThe string
Returns
CheckGap: The equivalent enum

◆ CreatePointListMortar()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::CreatePointListMortar

This function creates a lists points ready for the Mortar method.

◆ Execute()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::Execute
overridevirtual

Execute method is used to execute the Process algorithms.

Reimplemented from Kratos::Process.

◆ ExecuteFinalizeSolutionStep()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::ExecuteFinalizeSolutionStep
overridevirtual

This function will be executed at every time step AFTER performing the solve phase.

Reimplemented from Kratos::Process.

◆ ExecuteInitialize()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::ExecuteInitialize
overridevirtual

This function is designed for being called at the beginning of the computations right after reading the model and the groups.

Reimplemented from Kratos::Process.

◆ ExecuteInitializeSolutionStep()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::ExecuteInitializeSolutionStep
overridevirtual

This function will be executed at every time step BEFORE performing the solve phase.

Reimplemented from Kratos::Process.

◆ GetDefaultParameters()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
const Parameters Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::GetDefaultParameters
overridevirtual

This method provides the defaults parameters to avoid conflicts between the different constructors.

Reimplemented from Kratos::Process.

◆ Info()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
std::string Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::Info ( ) const
inlineoverridevirtual

Returns a string with information about the contact search process.

Returns
A string with information about the contact search process.

Reimplemented from Kratos::Process.

◆ InitializeMortarConditions()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::InitializeMortarConditions

This function initializes the ALM frictionless mortar conditions already created.

◆ InvertSearch()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::InvertSearch

It sets if the search is inverted.

◆ IsInvertedSearch()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
bool Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::IsInvertedSearch
protected

This returns if we consider inverted search.

Returns
True if we consider inverted search

◆ IsMultipleSearchs()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
bool Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::IsMultipleSearchs
protected

This returns if we consider multiple searchs.

Returns
True if we consider multiple searchs

◆ IsNotInvertedSearch()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
bool Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::IsNotInvertedSearch
protected

This returns if we do not consider inverted search.

Returns
True if we do not consider inverted search

◆ IsNotMultipleSearchs()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
bool Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::IsNotMultipleSearchs
protected

This returns if we do not consider multiple searchs.

Returns
True if we do not consider multiple searchs

◆ IsNotPureSlip()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
bool Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::IsNotPureSlip
protected

This returns if we do not consider pure slip.

Returns
True if we do not consider pure slip

◆ IsPureSlip()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
bool Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::IsPureSlip
protected

This returns if we consider pure slip.

Returns
True if we consider pure slip

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::KRATOS_CLASS_POINTER_DEFINITION ( BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >  )

Pointer definition of BaseContactSearchProcess.

◆ KRATOS_DEFINE_LOCAL_FLAG() [1/5]

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::KRATOS_DEFINE_LOCAL_FLAG ( CREATE_AUXILIAR_CONDITIONS  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [2/5]

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::KRATOS_DEFINE_LOCAL_FLAG ( INVERTED_SEARCH  )

Local Flags.

◆ KRATOS_DEFINE_LOCAL_FLAG() [3/5]

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::KRATOS_DEFINE_LOCAL_FLAG ( MULTIPLE_SEARCHS  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [4/5]

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::KRATOS_DEFINE_LOCAL_FLAG ( PREDEFINE_MASTER_SLAVE  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [5/5]

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::KRATOS_DEFINE_LOCAL_FLAG ( PURE_SLIP  )

◆ operator()()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::operator() ( )
inline

◆ PrintInfo()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Prints information about the contact search process to an output stream.

Parameters
rOStreamThe output stream to print to.

Reimplemented from Kratos::Process.

◆ ResetContactOperators()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::ResetContactOperators
virtual

This resets the contact operators.

Reimplemented in Kratos::MPCContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >.

◆ SetActiveNode()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::SetActiveNode ( Node rNode,
const double  CommonEpsilon,
const double  ScaleFactor = 1.0 
)
protectedvirtual

This method sets as active a node and it sets to an explicit approximation its LM.

Parameters
rNodeThe node reference to set
CommonEpsilonThe penalty value
ScaleFactorThe scale factor

Reimplemented in Kratos::SimpleContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >.

◆ SetInactiveNode()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::SetInactiveNode ( Node rNode)
protectedvirtual

This method sets as inactive a node and it sets to zero its LM.

Parameters
ItNodeThe node reference to set

◆ UpdateMortarConditions()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::UpdateMortarConditions

This function has as pourpose to find potential contact conditions and fill the mortar conditions with the necessary pointers.

◆ UpdatePointListMortar()

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
void Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::UpdatePointListMortar

This function updates a lists points ready for the Mortar method.

Member Data Documentation

◆ GapThreshold

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
constexpr double Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::GapThreshold = 2.0e-3
staticconstexpr

Normal gap process type definition.

The definition of zero tolerance

◆ mCheckGap

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
CheckGap Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::mCheckGap
protected

The configuration parameters.

◆ mPointListDestination

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
PointVector Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::mPointListDestination
protected

The prototype reference condition to be created.

◆ mpPairedProperties

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
Properties::Pointer Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::mpPairedProperties = nullptr
protected

A list that contents the all the points (from nodes) from the modelpart.

◆ mpReferenceCondition

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
PairedCondition const* Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::mpReferenceCondition = nullptr
protected

The solution type.

◆ mrMainModelPart

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
ModelPart& Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::mrMainModelPart
protected

◆ mThisParameters

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
Parameters Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::mThisParameters
protected

The main model part.

◆ mTypeSolution

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
TypeSolution Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::mTypeSolution
protected

If the gap is checked during the search.

◆ ZeroTolerance

template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
constexpr double Kratos::BaseContactSearchProcess< TDim, TNumNodes, TNumNodesMaster >::ZeroTolerance = std::numeric_limits<double>::epsilon()
staticconstexpr

The definition of zero tolerance.


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