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.
saturated_below_phreatic_level_law.h
Go to the documentation of this file.
1 // KRATOS___
2 // // ) )
3 // // ___ ___
4 // // ____ //___) ) // ) )
5 // // / / // // / /
6 // ((____/ / ((____ ((___/ / MECHANICS
7 //
8 // License: geo_mechanics_application/license.txt
9 //
10 // Main authors: Vahid Galavi
11 //
12 
13 #pragma once
14 
15 // System includes
16 #include <string>
17 #include <iostream>
18 #include "includes/define.h"
19 
20 // External includes
21 
22 // Project includes
23 #include "includes/serializer.h"
25 
26 // Application includes
28 
29 namespace Kratos
30 {
38 class KRATOS_API(GEO_MECHANICS_APPLICATION) SaturatedBelowPhreaticLevelLaw
39  : public RetentionLaw
40 {
41 public:
44 
46 
48  using SizeType = std::size_t;
49 
52 
54 
55  RetentionLaw::Pointer Clone() const override;
56 
58 
60 
61  void InitializeMaterial(const Properties& rMaterialProperties,
62  const GeometryType& rElementGeometry,
63  const Vector& rShapeFunctionsValues) override;
64 
65  void Initialize(Parameters &rParameters) override;
66 
67  void InitializeSolutionStep(Parameters &rParameters) override;
68 
69  double CalculateSaturation(Parameters &rParameters) override;
70 
71  double CalculateEffectiveSaturation(Parameters &rParameters) override;
72 
73  double CalculateDerivativeOfSaturation(Parameters &rParameters) override;
74 
75  double CalculateRelativePermeability(Parameters &rParameters) override;
76 
77  double CalculateBishopCoefficient(Parameters &rParameters) override;
78 
79  void Finalize(Parameters &rParameters) override;
80 
81  void FinalizeSolutionStep(Parameters &rParameters) override;
82 
90  double& CalculateValue(RetentionLaw::Parameters& rParameterValues,
91  const Variable<double>& rThisVariable,
92  double& rValue) override;
93 
94 
103  int Check(const Properties& rMaterialProperties,
104  const ProcessInfo& rCurrentProcessInfo) override;
105 
106 private:
107  friend class Serializer;
108 
109  void save(Serializer& rSerializer) const override
110  {
112  }
113 
114  void load(Serializer& rSerializer) override
115  {
117  }
118 
119 }; // Class SaturatedBelowPhreaticLevelLaw
120 } // namespace Kratos.
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
Definition: retention_law.h:32
std::size_t SizeType
Definition: retention_law.h:39
This class defines The Van-Genuchten Soil Water Characteristic Curve (retention curve)
Definition: saturated_below_phreatic_level_law.h:40
KRATOS_CLASS_POINTER_DEFINITION(SaturatedBelowPhreaticLevelLaw)
Counted pointer of SaturatedBelowPhreaticLevelLaw.
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
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
def load(f)
Definition: ode_solve.py:307