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 class defines the Coulomb frictional laws. More...
#include <coulomb_frictional_law.h>
Public Member Functions | |
Life Cycle | |
CoulombFrictionalLaw () | |
Default constructor. More... | |
CoulombFrictionalLaw (const CoulombFrictionalLaw &rhs) | |
Copy constructor (not really required) More... | |
~CoulombFrictionalLaw () | |
Destructor. More... | |
Operations | |
double | GetThresholdValue (const Node &rNode, const PairedCondition &rCondition, const ProcessInfo &rCurrentProcessInfo) override |
This method computes the threshold value considered for computing friction. More... | |
double | GetDerivativeThresholdValue (const Node &rNode, const PairedCondition &rCondition, const ProcessInfo &rCurrentProcessInfo, const DerivativeDataType &rDerivativeData, const MortarConditionMatrices &rMortarConditionMatrices, const IndexType IndexDerivative, const IndexType IndexNode) override |
This method computes the threshold derivative value considered for computing friction. More... | |
Input and output | |
std::string | Info () const override |
Turn back information as a string. More... | |
void | PrintInfo (std::ostream &rOStream) const override |
Print information about this object. More... | |
void | PrintData (std::ostream &rOStream) const override |
Print object's data. More... | |
Public Member Functions inherited from Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodes > | |
FrictionalLawWithDerivative () | |
Default constructor. More... | |
FrictionalLawWithDerivative (const FrictionalLawWithDerivative &rhs) | |
Copy constructor (not really required) More... | |
~FrictionalLawWithDerivative () | |
Destructor. More... | |
std::string | Info () const override |
Turn back information as a string. More... | |
void | PrintInfo (std::ostream &rOStream) const override |
Print information about this object. More... | |
void | PrintData (std::ostream &rOStream) const override |
Print object's data. More... | |
KRATOS_CLASS_POINTER_DEFINITION (FrictionalLawWithDerivative) | |
Counted pointer of FrictionalLawWithDerivative. More... | |
Public Member Functions inherited from Kratos::FrictionalLaw | |
FrictionalLaw () | |
Default constructor. More... | |
FrictionalLaw (const FrictionalLaw &rhs) | |
Copy constructor (not really required) More... | |
virtual | ~FrictionalLaw () |
Destructor. More... | |
virtual double | GetFrictionCoefficient (const Node &rNode, const PairedCondition &rCondition, const ProcessInfo &rCurrentProcessInfo) |
This method returns the friction coefficient. More... | |
KRATOS_CLASS_POINTER_DEFINITION (FrictionalLaw) | |
Counted pointer of FrictionalLaw. More... | |
Type Definitions | |
using | BaseType = FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster > |
Base class definition. More... | |
using | DerivativeDataType = typename BaseType::DerivativeDataType |
Definition of the derivative data. More... | |
using | MortarConditionMatrices = typename BaseType::MortarConditionMatrices |
The definition of the mortar operators. More... | |
using | IndexType = std::size_t |
Index type definition. More... | |
using | SizeType = std::size_t |
Size type definition. More... | |
static constexpr double | ZeroTolerance = std::numeric_limits<double>::epsilon() |
Zero tolerance. More... | |
KRATOS_CLASS_POINTER_DEFINITION (CoulombFrictionalLaw) | |
Counted pointer of CoulombFrictionalLaw. More... | |
Serialization | |
class | Serializer |
Additional Inherited Members | |
Public Types inherited from Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodes > | |
using | BaseType = FrictionalLaw |
Define the base class. More... | |
using | IndexType = std::size_t |
Index type definition. More... | |
using | SizeType = std::size_t |
Size type definition. More... | |
using | DerivativeDataType = DerivativeDataFrictional< TDim, TNumNodes, TNumNodesMaster > |
Definition of the derivative data. More... | |
using | MortarConditionMatrices = MortarOperatorWithDerivatives< TDim, TNumNodes, true, TNumNodesMaster > |
The definition of the mortar operators. More... | |
Public Types inherited from Kratos::FrictionalLaw | |
using | IndexType = std::size_t |
Index type definition. More... | |
using | SizeType = std::size_t |
Size type definition. More... | |
Static Public Attributes inherited from Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodes > | |
static constexpr double | ZeroTolerance |
Zero tolerance. More... | |
Static Public Attributes inherited from Kratos::FrictionalLaw | |
static constexpr double | ZeroTolerance = std::numeric_limits<double>::epsilon() |
Zero tolerance. More... | |
This class defines the Coulomb frictional laws.
This class defines the most typical friction model
TDim | The dimension of work |
TNumNodes | The number of nodes of the slave |
TFrictional | If we are solving a frictional or frictionless problem |
TNormalVariation | If we are consider normal variation |
TNumNodesMaster | The number of nodes of the master |
using Kratos::CoulombFrictionalLaw< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::BaseType = FrictionalLawWithDerivative<TDim,TNumNodes,TNormalVariation, TNumNodesMaster> |
Base class definition.
using Kratos::CoulombFrictionalLaw< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::DerivativeDataType = typename BaseType::DerivativeDataType |
Definition of the derivative data.
using Kratos::CoulombFrictionalLaw< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::IndexType = std::size_t |
Index type definition.
using Kratos::CoulombFrictionalLaw< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::MortarConditionMatrices = typename BaseType::MortarConditionMatrices |
The definition of the mortar operators.
using Kratos::CoulombFrictionalLaw< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::SizeType = std::size_t |
Size type definition.
|
inline |
Default constructor.
|
inline |
Copy constructor (not really required)
|
inline |
Destructor.
|
overridevirtual |
This method computes the threshold derivative value considered for computing friction.
rNode | The node where the threshold derivative value is obtained |
rCondition | The condition where the friction is computed |
rCurrentProcessInfo | The current instance of the process info |
rDerivativeData | The reference to the derivative database |
rMortarConditionMatrices | The container of the mortar operators |
IndexDerivative | The derivative index |
IndexNode | The corresponding node index on the condition geometry |
Reimplemented from Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodes >.
|
overridevirtual |
This method computes the threshold value considered for computing friction.
rNode | The node where the threshold value is obtained |
rCondition | The condition where the friction is computed |
rCurrentProcessInfo | The current instance of the process info |
Reimplemented from Kratos::FrictionalLaw.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::FrictionalLaw.
Kratos::CoulombFrictionalLaw< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::KRATOS_CLASS_POINTER_DEFINITION | ( | CoulombFrictionalLaw< TDim, TNumNodes, TNormalVariation, TNumNodesMaster > | ) |
Counted pointer of CoulombFrictionalLaw.
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::FrictionalLaw.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::FrictionalLaw.
|
friend |
|
staticconstexpr |
Zero tolerance.