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.
Public Types | Public Member Functions | Friends | List of all members
Kratos::VanGenuchtenLaw Class Reference

This class defines The Van-Genuchten Soil Water Characteristic Curve (retention curve) More...

#include <van_genuchten_law.h>

Inheritance diagram for Kratos::VanGenuchtenLaw:
Collaboration diagram for Kratos::VanGenuchtenLaw:

Public Types

using BaseType = RetentionLaw
 The base class RetentionLaw type definition. More...
 
using GeometryType = Geometry< Node >
 
using SizeType = std::size_t
 The size type definition. More...
 
- Public Types inherited from Kratos::RetentionLaw
using ProcessInfoType = ProcessInfo
 
using SizeType = std::size_t
 
using GeometryType = Geometry< Node >
 

Public Member Functions

 KRATOS_CLASS_POINTER_DEFINITION (VanGenuchtenLaw)
 Counted pointer of VanGenuchtenLaw. More...
 
RetentionLaw::Pointer Clone () const override
 Clone function (has to be implemented by any derived class) More...
 
void InitializeMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues) override
 
void Initialize (Parameters &rParameters) override
 
void InitializeSolutionStep (Parameters &rParameters) override
 
double CalculateSaturation (Parameters &rParameters) override
 
double CalculateEffectiveSaturation (Parameters &rParameters) override
 
double CalculateDerivativeOfSaturation (Parameters &rParameters) override
 
double CalculateRelativePermeability (Parameters &rParameters) override
 
double CalculateBishopCoefficient (Parameters &rParameters) override
 
void Finalize (Parameters &rParameters) override
 
void FinalizeSolutionStep (Parameters &rParameters) override
 
doubleCalculateValue (RetentionLaw::Parameters &rParameterValues, const Variable< double > &rThisVariable, double &rValue) override
 It calculates the value of a specified variable (double case) More...
 
int Check (const Properties &rMaterialProperties, const ProcessInfo &rCurrentProcessInfo) override
 This function provides the place to perform checks on the completeness of the input. More...
 
- Public Member Functions inherited from Kratos::RetentionLaw
 KRATOS_CLASS_POINTER_DEFINITION (RetentionLaw)
 
 RetentionLaw ()=default
 
virtual ~RetentionLaw ()=default
 
virtual void ResetMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues)
 
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...
 

Friends

class Serializer
 

Additional Inherited Members

- Static Public Member Functions inherited from Kratos::RetentionLaw
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...
 

Detailed Description

This class defines The Van-Genuchten Soil Water Characteristic Curve (retention curve)

This class derives from the base retention law

Author
Vahid Galavi

Member Typedef Documentation

◆ BaseType

The base class RetentionLaw type definition.

◆ GeometryType

◆ SizeType

using Kratos::VanGenuchtenLaw::SizeType = std::size_t

The size type definition.

Member Function Documentation

◆ CalculateBishopCoefficient()

double Kratos::VanGenuchtenLaw::CalculateBishopCoefficient ( Parameters rParameters)
overridevirtual

Implements Kratos::RetentionLaw.

◆ CalculateDerivativeOfSaturation()

double Kratos::VanGenuchtenLaw::CalculateDerivativeOfSaturation ( Parameters rParameters)
overridevirtual

Implements Kratos::RetentionLaw.

◆ CalculateEffectiveSaturation()

double Kratos::VanGenuchtenLaw::CalculateEffectiveSaturation ( Parameters rParameters)
overridevirtual

Implements Kratos::RetentionLaw.

◆ CalculateRelativePermeability()

double Kratos::VanGenuchtenLaw::CalculateRelativePermeability ( Parameters rParameters)
overridevirtual

Implements Kratos::RetentionLaw.

◆ CalculateSaturation()

double Kratos::VanGenuchtenLaw::CalculateSaturation ( Parameters rParameters)
overridevirtual

Implements Kratos::RetentionLaw.

◆ CalculateValue()

double & Kratos::VanGenuchtenLaw::CalculateValue ( RetentionLaw::Parameters rParameterValues,
const Variable< double > &  rThisVariable,
double rValue 
)
overridevirtual

It calculates the value of a specified variable (double case)

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

Implements Kratos::RetentionLaw.

◆ Check()

int Kratos::VanGenuchtenLaw::Check ( const Properties rMaterialProperties,
const ProcessInfo rCurrentProcessInfo 
)
overridevirtual

This function provides the place to perform checks on the completeness of the input.

It is designed to be called only once (or anyway, not often) typically at the beginning of the calculations, so to verify that nothing is missing from the input or that no common error is found.

Parameters
rMaterialPropertiesThe properties of the material
rElementGeometryThe geometry of the element
rCurrentProcessInfoThe current process info instance
Returns
0 if OK, 1 otherwise

Implements Kratos::RetentionLaw.

◆ Clone()

RetentionLaw::Pointer Kratos::VanGenuchtenLaw::Clone ( ) const
overridevirtual

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;

Implements Kratos::RetentionLaw.

◆ Finalize()

void Kratos::VanGenuchtenLaw::Finalize ( Parameters rParameters)
overridevirtual

Finalize the material response in terms of Cauchy stresses

See also
Parameters

Reimplemented from Kratos::RetentionLaw.

◆ FinalizeSolutionStep()

void Kratos::VanGenuchtenLaw::FinalizeSolutionStep ( Parameters rParameters)
overridevirtual

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

Reimplemented from Kratos::RetentionLaw.

◆ Initialize()

void Kratos::VanGenuchtenLaw::Initialize ( Parameters rParameters)
overridevirtual

Reimplemented from Kratos::RetentionLaw.

◆ InitializeMaterial()

void Kratos::VanGenuchtenLaw::InitializeMaterial ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const Vector rShapeFunctionsValues 
)
overridevirtual

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 from Kratos::RetentionLaw.

◆ InitializeSolutionStep()

void Kratos::VanGenuchtenLaw::InitializeSolutionStep ( Parameters rParameters)
overridevirtual

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

Reimplemented from Kratos::RetentionLaw.

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::VanGenuchtenLaw::KRATOS_CLASS_POINTER_DEFINITION ( VanGenuchtenLaw  )

Counted pointer of VanGenuchtenLaw.

Friends And Related Function Documentation

◆ Serializer

friend class Serializer
friend

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