From 6e057788669b97f2f4b6f754a92e43ac0cddfd20 Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <dmitri.naumov@ufz.de>
Date: Wed, 7 Sep 2016 19:42:53 +0200
Subject: [PATCH] [PL] Add ViscoElasticBurgers model to SD Process.

---
 .../constitutive_relation/Lubby2/c_Lubby2.md  |  4 ++--
 Documentation/bibliography.bib                | 24 +++++++++++++++++++
 .../CreateSmallDeformationProcess.cpp         |  6 +++++
 .../CreateSmallDeformationProcess.h           |  1 +
 .../SmallDeformation/SmallDeformationFEM.h    |  1 +
 5 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/Documentation/ProjectFile/process/SMALL_DEFORMATION/constitutive_relation/Lubby2/c_Lubby2.md b/Documentation/ProjectFile/process/SMALL_DEFORMATION/constitutive_relation/Lubby2/c_Lubby2.md
index 5fe80606293..f013b5c5627 100644
--- a/Documentation/ProjectFile/process/SMALL_DEFORMATION/constitutive_relation/Lubby2/c_Lubby2.md
+++ b/Documentation/ProjectFile/process/SMALL_DEFORMATION/constitutive_relation/Lubby2/c_Lubby2.md
@@ -1,3 +1,3 @@
-Visco elastic material model based on Burgers' rheological model. Viscosities
+Visco elastic material model based on Burgers rheological model. Viscosities
 and Kelvin shear modulus are stress dependent according to LUBBY2
-model. Heusermann 1983.
+model. See \cite Heusermann1983 and \cite Heusermann2003 for details.
diff --git a/Documentation/bibliography.bib b/Documentation/bibliography.bib
index 4586dafebb2..a25118eb8f7 100644
--- a/Documentation/bibliography.bib
+++ b/Documentation/bibliography.bib
@@ -54,3 +54,27 @@
   Month = may,
   Url = {http://arxiv.org/abs/1605.09606}
 }
+
+@Book{Heusermann1983,
+  Title                    = {{Entwicklung mathematisch-mechanischer Modelle zur Beschreibung des Stoffverhaltens von Salzgestein in Abh{\"a}ngigkeit von der Zeit und der Temperatur auf der Grundlage von Laborversuchen mit begleitenden kontinuumsmechanischen Berechnungen nach der Methode der finiten Elemente}},
+  Author                   = {Heusermann, Stefan and Lux, Karl-Heinz and Rokahr, Reinhard},
+  Publisher                = {Fachinformationszentrum Energie, Physik, Mathematik Karlsruhe},
+  Year                     = {1983}
+}
+
+@Article{Heusermann2003,
+  Title                    = {Nonlinear finite-element analysis of solution mined storage caverns in rock salt using the {LUBBY2} constitutive model },
+  Author                   = {Stefan Heusermann and Olaf Rolfs and Uwe Schmidt},
+  Journal                  = {Computers \& Structures },
+  Year                     = {2003},
+  Note                     = {K.J Bathe 60th Anniversary Issue },
+  Number                   = {8–11},
+  Pages                    = {629 - 638},
+  Volume                   = {81},
+  Doi                      = {http://dx.doi.org/10.1016/S0045-7949(02)00415-7},
+  ISSN                     = {0045-7949},
+  Keywords                 = {Rock salt},
+  Owner                    = {nagelt},
+  Timestamp                = {2015.06.01},
+  Url                      = {http://www.sciencedirect.com/science/article/pii/S0045794902004157}
+}
diff --git a/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.cpp b/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.cpp
index 23dcd597ce3..ac6079963c9 100644
--- a/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.cpp
+++ b/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.cpp
@@ -12,6 +12,7 @@
 #include <cassert>
 
 #include "MaterialLib/SolidModels/CreateLinearElasticIsotropic.h"
+#include "MaterialLib/SolidModels/CreateLubby2.h"
 #include "ProcessLib/Utils/ParseSecondaryVariables.h"
 
 #include "SmallDeformationProcess.h"
@@ -77,6 +78,11 @@ createSmallDeformationProcess(
             MaterialLib::Solids::createLinearElasticIsotropic<DisplacementDim>(
                 parameters, constitutive_relation_config);
     }
+    else if (type == "Lubby2")
+    {
+        material = MaterialLib::Solids::createLubby2<DisplacementDim>(
+            parameters, constitutive_relation_config);
+    }
     else
     {
         OGS_FATAL(
diff --git a/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.h b/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.h
index 1fcaa931067..8ca35799625 100644
--- a/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.h
+++ b/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.h
@@ -10,6 +10,7 @@
 #ifndef PROCESS_LIB_CREATESMALLDEFORMATIONPROCESS_H_
 #define PROCESS_LIB_CREATESMALLDEFORMATIONPROCESS_H_
 
+#include "MaterialLib/SolidModels/CreateLubby2.h"
 #include "ProcessLib/Process.h"
 
 namespace ProcessLib
diff --git a/ProcessLib/SmallDeformation/SmallDeformationFEM.h b/ProcessLib/SmallDeformation/SmallDeformationFEM.h
index 3faa08db87e..eed4503422d 100644
--- a/ProcessLib/SmallDeformation/SmallDeformationFEM.h
+++ b/ProcessLib/SmallDeformation/SmallDeformationFEM.h
@@ -14,6 +14,7 @@
 #include <vector>
 
 #include "MaterialLib/SolidModels/LinearElasticIsotropic.h"
+#include "MaterialLib/SolidModels/Lubby2.h"
 #include "MathLib/LinAlg/Eigen/EigenMapTools.h"
 #include "NumLib/Extrapolation/ExtrapolatableElement.h"
 #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h"
-- 
GitLab