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 | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
Kratos::RetentionLaw Class Referenceabstract

#include <retention_law.h>

Inheritance diagram for Kratos::RetentionLaw:
Collaboration diagram for Kratos::RetentionLaw:

Classes

class  Parameters
 

Public Types

using ProcessInfoType = ProcessInfo
 
using SizeType = std::size_t
 
using GeometryType = Geometry< Node >
 

Public Member Functions

 KRATOS_CLASS_POINTER_DEFINITION (RetentionLaw)
 
 RetentionLaw ()=default
 
virtual ~RetentionLaw ()=default
 
virtual RetentionLaw::Pointer Clone () const =0
 Clone function (has to be implemented by any derived class) More...
 
virtual doubleCalculateValue (Parameters &rParameters, const Variable< double > &rThisVariable, double &rValue)=0
 Calculates the value of a specified variable (double) More...
 
virtual double CalculateSaturation (Parameters &rParameters)=0
 
virtual double CalculateEffectiveSaturation (Parameters &rParameters)=0
 
virtual double CalculateDerivativeOfSaturation (Parameters &rParameters)=0
 
virtual double CalculateRelativePermeability (Parameters &rParameters)=0
 
virtual double CalculateBishopCoefficient (Parameters &rParameters)=0
 
virtual void InitializeMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues)
 
virtual void Initialize (Parameters &rParameters)
 
virtual void InitializeSolutionStep (Parameters &rParameters)
 
virtual void FinalizeSolutionStep (Parameters &rParameters)
 
virtual void Finalize (Parameters &rParameters)
 
virtual void ResetMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues)
 
virtual int Check (const Properties &rMaterialProperties, const ProcessInfo &rCurrentProcessInfo)=0
 
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...
 

Static Public Member Functions

static bool HasSameType (const RetentionLaw &rLHS, const RetentionLaw &rRHS)
 This method is used to check that two Retention Laws are the same type (references) More...
 
static bool HasSameType (const RetentionLaw *rLHS, const RetentionLaw *rRHS)
 This method is used to check that tow Retention Laws are the same type (pointers) More...
 

Friends

class Serializer
 

Detailed Description

Base class of retention laws.

Member Typedef Documentation

◆ GeometryType

◆ ProcessInfoType

Type definitions NOTE: geometries are assumed to be of type Node for all problems

◆ SizeType

using Kratos::RetentionLaw::SizeType = std::size_t

Constructor & Destructor Documentation

◆ RetentionLaw()

Kratos::RetentionLaw::RetentionLaw ( )
default

◆ ~RetentionLaw()

virtual Kratos::RetentionLaw::~RetentionLaw ( )
virtualdefault

Member Function Documentation

◆ CalculateBishopCoefficient()

virtual double Kratos::RetentionLaw::CalculateBishopCoefficient ( Parameters rParameters)
pure virtual

◆ CalculateDerivativeOfSaturation()

virtual double Kratos::RetentionLaw::CalculateDerivativeOfSaturation ( Parameters rParameters)
pure virtual

◆ CalculateEffectiveSaturation()

virtual double Kratos::RetentionLaw::CalculateEffectiveSaturation ( Parameters rParameters)
pure virtual

◆ CalculateRelativePermeability()

virtual double Kratos::RetentionLaw::CalculateRelativePermeability ( Parameters rParameters)
pure virtual

◆ CalculateSaturation()

virtual double Kratos::RetentionLaw::CalculateSaturation ( Parameters rParameters)
pure virtual

◆ CalculateValue()

virtual double& Kratos::RetentionLaw::CalculateValue ( Parameters rParameters,
const Variable< double > &  rThisVariable,
double rValue 
)
pure virtual

Calculates the value of a specified variable (double)

Parameters
rParameterValuesthe needed parameters for the CL calculation
rThisVariablethe variable to be returned
rValuea reference to the returned value
rValueoutput: the value of the specified variable

Implemented in Kratos::VanGenuchtenLaw, Kratos::SaturatedLaw, and Kratos::SaturatedBelowPhreaticLevelLaw.

◆ Check()

virtual int Kratos::RetentionLaw::Check ( const Properties rMaterialProperties,
const ProcessInfo rCurrentProcessInfo 
)
pure virtual

This function is designed to be called once to perform all the checks needed on the input provided. Checks can be "expensive" as the function is designed to catch user's errors.

Parameters
rMaterialProperties
rElementGeometry
rCurrentProcessInfo
Returns

Implemented in Kratos::VanGenuchtenLaw, Kratos::SaturatedLaw, and Kratos::SaturatedBelowPhreaticLevelLaw.

◆ Clone()

virtual RetentionLaw::Pointer Kratos::RetentionLaw::Clone ( ) const
pure virtual

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

Returns
a pointer to a new instance of this retention law
Note
implementation scheme: RetentionLaw::Pointer p_clone(new RetentionLaw()); return p_clone;

Implemented in Kratos::VanGenuchtenLaw, Kratos::SaturatedLaw, and Kratos::SaturatedBelowPhreaticLevelLaw.

◆ Finalize()

void Kratos::RetentionLaw::Finalize ( Parameters rParameters)
virtual

Finalize the material response in terms of Cauchy stresses

See also
Parameters

Reimplemented in Kratos::VanGenuchtenLaw, Kratos::SaturatedLaw, and Kratos::SaturatedBelowPhreaticLevelLaw.

◆ FinalizeSolutionStep()

void Kratos::RetentionLaw::FinalizeSolutionStep ( Parameters rParameters)
virtual

to be called at the end of each solution step (e.g. from Element::FinalizeSolutionStep)

Reimplemented in Kratos::VanGenuchtenLaw, Kratos::SaturatedLaw, and Kratos::SaturatedBelowPhreaticLevelLaw.

◆ HasSameType() [1/2]

static bool Kratos::RetentionLaw::HasSameType ( const RetentionLaw rLHS,
const RetentionLaw rRHS 
)
inlinestatic

This method is used to check that two Retention Laws are the same type (references)

Parameters
rLHSThe first argument
rRHSThe second argument

◆ HasSameType() [2/2]

static bool Kratos::RetentionLaw::HasSameType ( const RetentionLaw rLHS,
const RetentionLaw rRHS 
)
inlinestatic

This method is used to check that tow Retention Laws are the same type (pointers)

Parameters
rLHSThe first argument
rRHSThe second argument

◆ Info()

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

Turn back information as a string.

◆ Initialize()

void Kratos::RetentionLaw::Initialize ( Parameters rParameters)
virtual

◆ InitializeMaterial()

void Kratos::RetentionLaw::InitializeMaterial ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const Vector rShapeFunctionsValues 
)
virtual

This is to be called at the very beginning of the calculation (e.g. from InitializeElement) in order to initialize all relevant attributes of the retention law

Parameters
rMaterialPropertiesthe Properties instance of the current element
rElementGeometrythe geometry of the current element
rCurrentProcessInfoprocess info

Reimplemented in Kratos::VanGenuchtenLaw, Kratos::SaturatedLaw, and Kratos::SaturatedBelowPhreaticLevelLaw.

◆ InitializeSolutionStep()

void Kratos::RetentionLaw::InitializeSolutionStep ( Parameters rParameters)
virtual

to be called at the beginning of each solution step (e.g. from Element::InitializeSolutionStep)

Reimplemented in Kratos::VanGenuchtenLaw, Kratos::SaturatedLaw, and Kratos::SaturatedBelowPhreaticLevelLaw.

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::RetentionLaw::KRATOS_CLASS_POINTER_DEFINITION ( RetentionLaw  )

Counted pointer of RetentionLaw

◆ PrintData()

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

Print object's data.

◆ PrintInfo()

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

Print information about this object.

◆ ResetMaterial()

void Kratos::RetentionLaw::ResetMaterial ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const Vector rShapeFunctionsValues 
)
virtual

This can be used in order to reset all internal variables of the retention law (e.g. if a model should be reset to its reference state)

Parameters
rMaterialPropertiesthe Properties instance of the current element
rElementGeometrythe geometry of the current element
rShapeFunctionsValuesthe shape functions values in the current integration point
thecurrent ProcessInfo instance

Friends And Related Function Documentation

◆ Serializer

friend class Serializer
friend

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