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

This class defines the base class for frictional laws with derivative. More...

#include <frictional_law_with_derivative.h>

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

Public Member Functions

Life Cycle
 FrictionalLawWithDerivative ()
 Default constructor. More...
 
 FrictionalLawWithDerivative (const FrictionalLawWithDerivative &rhs)
 Copy constructor (not really required) More...
 
 ~FrictionalLawWithDerivative ()
 Destructor. More...
 
Operations
virtual double GetDerivativeThresholdValue (const Node &rNode, const PairedCondition &rCondition, const ProcessInfo &rCurrentProcessInfo, const DerivativeDataType &rDerivativeData, const MortarConditionMatrices &rMortarConditionMatrices, const IndexType IndexDerivative, const IndexType IndexNode)
 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::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...
 
virtual double GetThresholdValue (const Node &rNode, const PairedCondition &rCondition, const ProcessInfo &rCurrentProcessInfo)
 This method computes the threshold value considered for computing friction. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (FrictionalLaw)
 Counted pointer of FrictionalLaw. More...
 

Type Definitions

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...
 
static constexpr double ZeroTolerance = std::numeric_limits<double>::epsilon()
 Zero tolerance. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (FrictionalLawWithDerivative)
 Counted pointer of FrictionalLawWithDerivative. More...
 

Serialization

class Serializer
 

Additional Inherited Members

- 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::FrictionalLaw
static constexpr double ZeroTolerance = std::numeric_limits<double>::epsilon()
 Zero tolerance. More...
 

Detailed Description

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
class Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >

This class defines the base class for frictional laws with derivative.

This class does nothing, define derived frictional laws in order to make use of it

Author
Vicente Mataix Ferrandiz
Template Parameters
TDimThe dimension of work
TNumNodesThe number of nodes of the slave
TFrictionalIf we are solving a frictional or frictionless problem
TNormalVariationIf we are consider normal variation
TNumNodesMasterThe number of nodes of the master

Member Typedef Documentation

◆ BaseType

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
using Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::BaseType = FrictionalLaw

Define the base class.

◆ DerivativeDataType

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
using Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::DerivativeDataType = DerivativeDataFrictional<TDim, TNumNodes, TNumNodesMaster>

Definition of the derivative data.

◆ IndexType

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
using Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::IndexType = std::size_t

Index type definition.

◆ MortarConditionMatrices

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
using Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::MortarConditionMatrices = MortarOperatorWithDerivatives<TDim, TNumNodes, true, TNumNodesMaster>

The definition of the mortar operators.

◆ SizeType

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
using Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::SizeType = std::size_t

Size type definition.

Constructor & Destructor Documentation

◆ FrictionalLawWithDerivative() [1/2]

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::FrictionalLawWithDerivative ( )
inline

Default constructor.

◆ FrictionalLawWithDerivative() [2/2]

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::FrictionalLawWithDerivative ( const FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster > &  rhs)
inline

Copy constructor (not really required)

◆ ~FrictionalLawWithDerivative()

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::~FrictionalLawWithDerivative ( )
inline

Destructor.

Member Function Documentation

◆ GetDerivativeThresholdValue()

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster>
double Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::GetDerivativeThresholdValue ( const Node rNode,
const PairedCondition rCondition,
const ProcessInfo rCurrentProcessInfo,
const DerivativeDataType rDerivativeData,
const MortarConditionMatrices rMortarConditionMatrices,
const IndexType  IndexDerivative,
const IndexType  IndexNode 
)
virtual

This method computes the threshold derivative value considered for computing friction.

Parameters
rNodeThe node where the threshold derivative value is obtained
rConditionThe condition where the friction is computed
rCurrentProcessInfoThe current instance of the process info
rDerivativeDataThe reference to the derivative database
rMortarConditionMatricesThe container of the mortar operators
IndexDerivativeThe derivative index
IndexNodeThe corresponding node index on the condition geometry

Reimplemented in Kratos::TrescaFrictionalLaw< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >, and Kratos::CoulombFrictionalLaw< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >.

◆ Info()

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
std::string Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

Reimplemented from Kratos::FrictionalLaw.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::KRATOS_CLASS_POINTER_DEFINITION ( FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >  )

Counted pointer of FrictionalLawWithDerivative.

◆ PrintData()

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
void Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

Print object's data.

Reimplemented from Kratos::FrictionalLaw.

◆ PrintInfo()

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
void Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

Reimplemented from Kratos::FrictionalLaw.

Friends And Related Function Documentation

◆ Serializer

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
friend class Serializer
friend

Member Data Documentation

◆ ZeroTolerance

template<std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
constexpr double Kratos::FrictionalLawWithDerivative< TDim, TNumNodes, TNormalVariation, TNumNodesMaster >::ZeroTolerance = std::numeric_limits<double>::epsilon()
staticconstexpr

Zero tolerance.


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