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.
Classes | List of all members

Short class definition. More...

#include <friction_law.hpp>

Inheritance diagram for Kratos::FrictionLaw:
Collaboration diagram for Kratos::FrictionLaw:

Classes

struct  FrictionLawVariables
 

Public Member Functions

Life Cycle
 FrictionLaw ()
 Default constructor. More...
 
 FrictionLaw (FrictionLaw const &rOther)
 Copy constructor. More...
 
virtual ~FrictionLaw ()
 Destructor. More...
 
virtual FrictionLaw::Pointer Clone () const
 
 FrictionLaw ()
 Default constructor. More...
 
virtual ~FrictionLaw ()
 Destructor. More...
 
Operations
void InitializeSolutionStep ()
 
void FinalizeSolutionStep ()
 
bool EvaluateFrictionLaw (double &rTangentForce, const double &rNormalForce, FrictionLawVariables &rTangentVariables)
 
void EvaluateConstitutiveComponents (double &rNormalModulus, double &rTangentModulus, const double &rTangentForce, const double &rEffectiveNormalForce, FrictionLawVariables &rTangentVariables)
 
double GetPlasticSlip ()
 
virtual int Check ()
 Check on the completeness of the input. More...
 
virtual void Initialize (const GeometryType &rGeometry, const Properties &rProperty, const ProcessInfo &rProcessInfo)
 Initialize the friction law variables. More...
 
virtual double CalculateLHS (const double &rHeight, const array_1d< double, 3 > &rVelocity)
 Calculate the LHS coefficient for the given data. More...
 
virtual array_1d< double, 3 > CalculateRHS (const double &rHeight, const array_1d< double, 3 > &rVelocity)
 Calculate the RHS coefficient for the given data. More...
 
virtual double CalculateLHS (const array_1d< double, 3 > &rInnerLayer)
 Calculate the LHS coefficient for the given data. More...
 
virtual array_1d< double, 3 > CalculateRHS (const array_1d< double, 3 > &rInnerLayer)
 Calculate the RHS coefficient for the given data. More...
 
Input and output
virtual std::string Info () const
 Turn back information as a string. More...
 
virtual void PrintInfo (std::ostream &rOStream) const
 Print information about this object. More...
 
virtual void PrintData (std::ostream &rOStream) const
 Print object's data. More...
 
virtual std::string Info () const
 Turn back information as a string. More...
 
virtual void PrintInfo (std::ostream &rOStream) const
 Print information about this object. More...
 
virtual void PrintData (std::ostream &rOStream) const
 Print object's data. More...
 

Protected Member Functions

Protected Operations
virtual double EvaluateHardening (const double &rNormalStress, const double &rPlasticSlip, FrictionLawVariables &rTangentVariables)
 
virtual double EvaluateContactYield (const double &rTangentStress, const double &rNormalStress, const double &rPlasticSlip, FrictionLawVariables &rTangentVariables)
 
virtual void EvaluateYieldDerivativeRespectStress (double &rdF_dt, double &rdF_dp, const double &rTangentStress, const double &rNormalStress, const double &Gamma, FrictionLawVariables &rTangentVariables)
 

Type Definitions

typedef Node NodeType
 
typedef Geometry< NodeTypeGeometryType
 
 KRATOS_CLASS_POINTER_DEFINITION (FrictionLaw)
 Pointer definition of FrictionLaw. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (FrictionLaw)
 

Serialization

class Serializer
 

Detailed Description

Short class definition.

The base class for the bottom and surface friction laws.

Base class of friction laws.

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

Author
Miguel Maso Sotomayor

Member Typedef Documentation

◆ GeometryType

◆ NodeType

Constructor & Destructor Documentation

◆ FrictionLaw() [1/3]

Kratos::FrictionLaw::FrictionLaw ( )
inline

Default constructor.

◆ FrictionLaw() [2/3]

Kratos::FrictionLaw::FrictionLaw ( FrictionLaw const &  rOther)
inline

Copy constructor.

◆ ~FrictionLaw() [1/2]

virtual Kratos::FrictionLaw::~FrictionLaw ( )
inlinevirtual

Destructor.

◆ FrictionLaw() [3/3]

Kratos::FrictionLaw::FrictionLaw ( )
inline

Default constructor.

◆ ~FrictionLaw() [2/2]

virtual Kratos::FrictionLaw::~FrictionLaw ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ CalculateLHS() [1/2]

virtual double Kratos::FrictionLaw::CalculateLHS ( const array_1d< double, 3 > &  rInnerLayer)
inlinevirtual

Calculate the LHS coefficient for the given data.

Parameters
rInnerLayerThe current layer velocity
Returns
The LHS coefficient

Reimplemented in Kratos::WindWaterFriction.

◆ CalculateLHS() [2/2]

virtual double Kratos::FrictionLaw::CalculateLHS ( const double rHeight,
const array_1d< double, 3 > &  rVelocity 
)
inlinevirtual

Calculate the LHS coefficient for the given data.

Parameters
rHeightThe layer depth
rVectorThe layer velocity
Returns
The LHS coefficient

Reimplemented in Kratos::ManningLaw, and Kratos::ChezyLaw.

◆ CalculateRHS() [1/2]

virtual array_1d<double,3> Kratos::FrictionLaw::CalculateRHS ( const array_1d< double, 3 > &  rInnerLayer)
inlinevirtual

Calculate the RHS coefficient for the given data.

Parameters
rInnerLayerThe current layer velocity
Returns
The components of the RHS coefficients

Reimplemented in Kratos::WindWaterFriction.

◆ CalculateRHS() [2/2]

virtual array_1d<double,3> Kratos::FrictionLaw::CalculateRHS ( const double rHeight,
const array_1d< double, 3 > &  rVelocity 
)
inlinevirtual

Calculate the RHS coefficient for the given data.

Parameters
rHeightThe layer depth
rVectorThe layer velocity
Returns
The components of the RHS coefficients

Reimplemented in Kratos::ManningLaw, and Kratos::ChezyLaw.

◆ Check()

virtual int Kratos::FrictionLaw::Check ( )
inlinevirtual

Check on the completeness of the input.

◆ Clone()

virtual FrictionLaw::Pointer Kratos::FrictionLaw::Clone ( ) const
inlinevirtual

Clone function (has to be implemented by any derived class)

Returns
a pointer to a new instance of this friction law

Reimplemented in Kratos::HardeningCoulombFrictionLaw, and Kratos::CoulombAdhesionFrictionLaw.

◆ EvaluateConstitutiveComponents()

void Kratos::FrictionLaw::EvaluateConstitutiveComponents ( double rNormalModulus,
double rTangentModulus,
const double rTangentForce,
const double rNormalForce,
FrictionLawVariables rTangentVariables 
)

Methods

◆ EvaluateContactYield()

virtual double Kratos::FrictionLaw::EvaluateContactYield ( const double rTangentStress,
const double rNormalStress,
const double rPlasticSlip,
FrictionLawVariables rTangentVariables 
)
inlineprotectedvirtual

◆ EvaluateFrictionLaw()

bool Kratos::FrictionLaw::EvaluateFrictionLaw ( double rTangentForce,
const double rNormalForce,
FrictionLawVariables rTangentVariables 
)

Methods

◆ EvaluateHardening()

virtual double Kratos::FrictionLaw::EvaluateHardening ( const double rNormalStress,
const double rPlasticSlip,
FrictionLawVariables rTangentVariables 
)
inlineprotectedvirtual

◆ EvaluateYieldDerivativeRespectStress()

virtual void Kratos::FrictionLaw::EvaluateYieldDerivativeRespectStress ( double rdF_dt,
double rdF_dp,
const double rTangentStress,
const double rNormalStress,
const double Gamma,
FrictionLawVariables rTangentVariables 
)
inlineprotectedvirtual

◆ FinalizeSolutionStep()

void Kratos::FrictionLaw::FinalizeSolutionStep ( )

◆ GetPlasticSlip()

double Kratos::FrictionLaw::GetPlasticSlip ( )
inline

◆ Info() [1/2]

virtual std::string Kratos::FrictionLaw::Info ( ) const
inlinevirtual

◆ Info() [2/2]

virtual std::string Kratos::FrictionLaw::Info ( ) const
inlinevirtual

◆ Initialize()

virtual void Kratos::FrictionLaw::Initialize ( const GeometryType rGeometry,
const Properties rProperty,
const ProcessInfo rProcessInfo 
)
inlinevirtual

Initialize the friction law variables.

Reimplemented in Kratos::WindWaterFriction, Kratos::NodalManningLaw, Kratos::ManningLaw, and Kratos::ChezyLaw.

◆ InitializeSolutionStep()

void Kratos::FrictionLaw::InitializeSolutionStep ( )

◆ KRATOS_CLASS_POINTER_DEFINITION() [1/2]

Kratos::FrictionLaw::KRATOS_CLASS_POINTER_DEFINITION ( FrictionLaw  )

Pointer definition of FrictionLaw.

◆ KRATOS_CLASS_POINTER_DEFINITION() [2/2]

Kratos::FrictionLaw::KRATOS_CLASS_POINTER_DEFINITION ( FrictionLaw  )

◆ PrintData() [1/2]

virtual void Kratos::FrictionLaw::PrintData ( std::ostream &  rOStream) const
inlinevirtual

Print object's data.

Reimplemented in Kratos::HardeningCoulombFrictionLaw, and Kratos::CoulombAdhesionFrictionLaw.

◆ PrintData() [2/2]

virtual void Kratos::FrictionLaw::PrintData ( std::ostream &  rOStream) const
inlinevirtual

Print object's data.

Reimplemented in Kratos::HardeningCoulombFrictionLaw, and Kratos::CoulombAdhesionFrictionLaw.

◆ PrintInfo() [1/2]

virtual void Kratos::FrictionLaw::PrintInfo ( std::ostream &  rOStream) const
inlinevirtual

Print information about this object.

Reimplemented in Kratos::HardeningCoulombFrictionLaw, and Kratos::CoulombAdhesionFrictionLaw.

◆ PrintInfo() [2/2]

virtual void Kratos::FrictionLaw::PrintInfo ( std::ostream &  rOStream) const
inlinevirtual

Print information about this object.

Reimplemented in Kratos::HardeningCoulombFrictionLaw, and Kratos::CoulombAdhesionFrictionLaw.

Friends And Related Function Documentation

◆ Serializer

friend class Serializer
friend

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