69 : mrCurrentProcessInfo(rCurrentProcessInfo),
70 mrMaterialProperties(rMaterialProperties){};
76 mFluidPressure = FluidPressure;
82 <<
"Fluid pressure is not yet set in the retention "
83 "law when trying to retrieve it, aborting.\n";
84 return mFluidPressure.value();
89 return mrCurrentProcessInfo;
94 return mrMaterialProperties;
98 std::optional<double> mFluidPressure;
115 virtual RetentionLaw::Pointer
Clone()
const = 0;
146 virtual void InitializeMaterial(
const Properties& rMaterialProperties,
148 const Vector& rShapeFunctionsValues);
150 virtual void Initialize(
Parameters& rParameters);
162 virtual void FinalizeSolutionStep(
Parameters& rParameters);
168 virtual void Finalize(
Parameters& rParameters);
178 virtual void ResetMaterial(
const Properties& rMaterialProperties,
180 const Vector& rShapeFunctionsValues);
201 return (
typeid(rLHS) ==
typeid(rRHS));
215 virtual std::string
Info()
const
217 return "RetentionLaw";
229 rOStream <<
"RetentionLaw has no data";
235 virtual void save(
Serializer& rSerializer)
const;
248 rOStream <<
" : " << std::endl;
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Geometry base class.
Definition: geometry.h:71
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
Definition: retention_law.h:47
const ProcessInfo & GetProcessInfo() const
Definition: retention_law.h:87
double GetFluidPressure() const
Definition: retention_law.h:79
Parameters(const Properties &rMaterialProperties, const ProcessInfo &rCurrentProcessInfo)
Definition: retention_law.h:67
const Properties & GetMaterialProperties() const
Definition: retention_law.h:92
void SetFluidPressure(double FluidPressure)
Definition: retention_law.h:74
Definition: retention_law.h:32
virtual double CalculateSaturation(Parameters &rParameters)=0
virtual ~RetentionLaw()=default
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: retention_law.h:227
virtual double & CalculateValue(Parameters &rParameters, const Variable< double > &rThisVariable, double &rValue)=0
Calculates the value of a specified variable (double)
KRATOS_CLASS_POINTER_DEFINITION(RetentionLaw)
virtual double CalculateDerivativeOfSaturation(Parameters &rParameters)=0
static bool HasSameType(const RetentionLaw &rLHS, const RetentionLaw &rRHS)
This method is used to check that two Retention Laws are the same type (references)
Definition: retention_law.h:199
virtual RetentionLaw::Pointer Clone() const =0
Clone function (has to be implemented by any derived class)
virtual double CalculateRelativePermeability(Parameters &rParameters)=0
virtual void PrintInfo(std::ostream &rOStream) const
Print information about this object.
Definition: retention_law.h:221
std::size_t SizeType
Definition: retention_law.h:39
virtual std::string Info() const
Turn back information as a string.
Definition: retention_law.h:215
static bool HasSameType(const RetentionLaw *rLHS, const RetentionLaw *rRHS)
This method is used to check that tow Retention Laws are the same type (pointers)
Definition: retention_law.h:209
virtual double CalculateEffectiveSaturation(Parameters &rParameters)=0
virtual double CalculateBishopCoefficient(Parameters &rParameters)=0
virtual int Check(const Properties &rMaterialProperties, const ProcessInfo &rCurrentProcessInfo)=0
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
#define KRATOS_ERROR_IF_NOT(conditional)
Definition: exception.h:163
void InitializeSolutionStep(ConstructionUtility &rThisUtil, std::string ThermalSubModelPartName, std::string MechanicalSubModelPartName, std::string HeatFluxSubModelPartName, std::string HydraulicPressureSubModelPartName, bool thermal_conditions, bool mechanical_conditions, int phase)
Definition: add_custom_utilities_to_python.cpp:45
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
def load(f)
Definition: ode_solve.py:307
#define KRATOS_CLASS_POINTER_DEFINITION(a)
Definition: smart_pointers.h:69