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_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) SaturatedLaw
39  : public RetentionLaw
40 {
41 public:
42 
45 
47 
49  using SizeType = std::size_t;
50 
53 
54  RetentionLaw::Pointer Clone() const override;
55 
56  void InitializeMaterial(const Properties& rMaterialProperties,
57  const GeometryType& rElementGeometry,
58  const Vector& rShapeFunctionsValues) override;
59 
60  void Initialize(Parameters &rParameters) override;
61 
62  void InitializeSolutionStep(Parameters &rParameters) override;
63 
64  double CalculateSaturation(Parameters &rParameters) override;
65 
66  double CalculateEffectiveSaturation(Parameters &rParameters) override;
67 
68  double CalculateDerivativeOfSaturation(Parameters &rParameters) override;
69 
70  double CalculateRelativePermeability(Parameters &rParameters) override;
71 
72  double CalculateBishopCoefficient(Parameters &rParameters) override;
73 
74  void Finalize(Parameters &rParameters) override;
75 
76  void FinalizeSolutionStep(Parameters &rParameters) override;
77 
85  double& CalculateValue(RetentionLaw::Parameters& rParameterValues,
86  const Variable<double>& rThisVariable,
87  double& rValue) override;
88 
89 
98  int Check(const Properties& rMaterialProperties,
99  const ProcessInfo& rCurrentProcessInfo) override;
100 
101 private:
102  friend class Serializer;
103 
104  void save(Serializer& rSerializer) const override
105  {
107  }
108 
109  void load(Serializer& rSerializer) override
110  {
112  }
113 
114 }; // Class SaturatedLaw
115 } // 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 a saturated Soil Water Characteristic Curve (retention curve)
Definition: saturated_law.h:40
KRATOS_CLASS_POINTER_DEFINITION(SaturatedLaw)
Counted pointer of SaturatedLaw.
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