From 2d68cd83b6018c99fce4d619e9eecd76abe956dc Mon Sep 17 00:00:00 2001
From: Norihiro Watanabe <norihiro.watanabe@ufz.de>
Date: Fri, 23 Sep 2016 14:22:13 +0200
Subject: [PATCH] add MaterialLib/FractureModels and its base class

---
 MaterialLib/CMakeLists.txt                    |  1 +
 .../FractureModels/FractureModelBase.h        | 40 +++++++++++++++++++
 2 files changed, 41 insertions(+)
 create mode 100644 MaterialLib/FractureModels/FractureModelBase.h

diff --git a/MaterialLib/CMakeLists.txt b/MaterialLib/CMakeLists.txt
index 2120e13374d..55fc32038ba 100644
--- a/MaterialLib/CMakeLists.txt
+++ b/MaterialLib/CMakeLists.txt
@@ -2,6 +2,7 @@
 get_source_files(SOURCES)
 append_source_files(SOURCES Adsorption)
 append_source_files(SOURCES SolidModels)
+append_source_files(SOURCES FractureModels)
 
 append_source_files(SOURCES Fluid)
 append_source_files(SOURCES Fluid/Density)
diff --git a/MaterialLib/FractureModels/FractureModelBase.h b/MaterialLib/FractureModels/FractureModelBase.h
new file mode 100644
index 00000000000..fd0a1778f53
--- /dev/null
+++ b/MaterialLib/FractureModels/FractureModelBase.h
@@ -0,0 +1,40 @@
+/**
+ * \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
+ *
+ */
+
+#pragma once
+
+#include <Eigen/Eigen>
+
+#include "ProcessLib/Parameter/Parameter.h"
+
+namespace MaterialLib
+{
+namespace Fracture
+{
+
+template <int DisplacementDim>
+class FractureModelBase
+{
+public:
+    virtual ~FractureModelBase() {}
+
+    virtual void computeConstitutiveRelation(
+            double const t,
+            ProcessLib::SpatialPosition const& x,
+            Eigen::Ref<Eigen::VectorXd const> w_prev,
+            Eigen::Ref<Eigen::VectorXd const> w,
+            Eigen::Ref<Eigen::VectorXd const> sigma_prev,
+            Eigen::Ref<Eigen::VectorXd> sigma,
+            Eigen::Ref<Eigen::MatrixXd> C)  = 0;
+
+};
+
+}  // namespace Fracture
+}  // namespace MaterialLib
+
-- 
GitLab