From acc88aef8ba0a942a835d2a57214c19c08063d64 Mon Sep 17 00:00:00 2001
From: Wenqing Wang <wenqing.wang@ufz.de>
Date: Tue, 1 Nov 2016 16:30:30 +0100
Subject: [PATCH] [Unsat] Added classes for capillary pressure model

---
 .../CapillaryPressureSaturation.h             | 43 +++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 MaterialLib/PorousMedium/UnsaturatedProperty/CapillaryPressure/CapillaryPressureSaturation.h

diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/CapillaryPressure/CapillaryPressureSaturation.h b/MaterialLib/PorousMedium/UnsaturatedProperty/CapillaryPressure/CapillaryPressureSaturation.h
new file mode 100644
index 00000000000..1b4ee00e1dd
--- /dev/null
+++ b/MaterialLib/PorousMedium/UnsaturatedProperty/CapillaryPressure/CapillaryPressureSaturation.h
@@ -0,0 +1,43 @@
+/**
+ * \copyright
+ * Copyright (c) 2012-2016, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ * \file:   CapillaryPressureSaturation.h
+ *
+ */
+
+#ifndef OGS_CAPILLARY_PRESSURE_SATURATION_H
+#define OGS_CAPILLARY_PRESSURE_SATURATION_H
+
+#include <string>
+
+namespace MaterialLib
+{
+namespace PorousMedium
+{
+/// Base class of capillary pressure models
+class CapillaryPressureSaturation
+{
+public:
+    virtual ~CapillaryPressureSaturation() = default;
+
+    /// Get model name.
+    virtual std::string getName() const = 0;
+
+    /// Get capillary pressure.
+    virtual double getCapillaryPressure(const double saturation) const = 0;
+
+    /// Get capillary pressure.
+    virtual double getSturation(const double capillary_ressure) const = 0;
+
+    /// Get the derivative of the capillary pressure with respect to saturation
+    virtual double getdPcdS(const double saturation) const = 0;
+};
+
+}  // end namespace
+}  // end namespace
+
+#endif /* OGS_CAPILLARY_PRESSURE_SATURATION_H */
-- 
GitLab