From 9beabb1735dac3d7c1b9bc72179cc258d6e36f84 Mon Sep 17 00:00:00 2001
From: Bernd Flemisch <bernd@iws.uni-stuttgart.de>
Date: Mon, 2 Sep 2013 08:35:15 +0000
Subject: [PATCH] use the mew effective diffusivity model also for el1p2c

git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk@11329 2fb0f335-1f38-0410-981e-8018bf24f1b0
---
 dumux/geomechanics/el1p2c/el1p2cfluxvariables.hh  | 15 ++++++++++++---
 .../geomechanics/el1p2c/el1p2cpropertydefaults.hh |  9 +++++++++
 dumux/implicit/1p2c/1p2cfluxvariables.hh          |  2 +-
 3 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/dumux/geomechanics/el1p2c/el1p2cfluxvariables.hh b/dumux/geomechanics/el1p2c/el1p2cfluxvariables.hh
index b3107b2566..3d9268c447 100644
--- a/dumux/geomechanics/el1p2c/el1p2cfluxvariables.hh
+++ b/dumux/geomechanics/el1p2c/el1p2cfluxvariables.hh
@@ -59,6 +59,7 @@ namespace Dumux
             typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
             typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
             typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
+            typedef typename GET_PROP_TYPE(TypeTag, EffectiveDiffusivityModel) EffectiveDiffusivityModel;
 
             typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
             typedef typename GridView::template Codim<0>::Entity Element;
@@ -257,9 +258,17 @@ namespace Dumux
                 const VolumeVariables &volVarsI = elemVolVars[face().i];
                 const VolumeVariables &volVarsJ = elemVolVars[face().j];
 
-                // Effective diffusion coefficient in the porous medium
-                diffCoeffPM_ = effPorosity_ * harmonicMean(volVarsI.tortuosity() * volVarsI.diffCoeff(),
-                                                            volVarsJ.tortuosity() * volVarsJ.diffCoeff());
+                const Scalar diffCoeffI =
+                    EffectiveDiffusivityModel::effectiveDiffusivity(volVarsI.porosity(),
+                                                                    /*sat=*/1.0,
+                                                                    volVarsI.diffCoeff());
+
+                const Scalar diffCoeffJ =
+                    EffectiveDiffusivityModel::effectiveDiffusivity(volVarsJ.porosity(),
+                                                                    /*sat=*/1.0,
+                                                                    volVarsJ.diffCoeff());
+
+                diffCoeffPM_ = harmonicMean(diffCoeffI, diffCoeffJ);
             }
 
             /*!
diff --git a/dumux/geomechanics/el1p2c/el1p2cpropertydefaults.hh b/dumux/geomechanics/el1p2c/el1p2cpropertydefaults.hh
index 130dbdbeff..15c3b72d38 100644
--- a/dumux/geomechanics/el1p2c/el1p2cpropertydefaults.hh
+++ b/dumux/geomechanics/el1p2c/el1p2cpropertydefaults.hh
@@ -41,6 +41,7 @@
 #include "el1p2celementvolumevariables.hh"
 #include "el1p2cvolumevariables.hh"
 #include "el1p2cindices.hh"
+#include <dumux/material/fluidmatrixinteractions/2p/diffusivitymillingtonquirk.hh>
 
 
 namespace Dumux
@@ -102,6 +103,14 @@ SET_BOOL_PROP(BoxElasticOnePTwoC, ProblemEnableGravity, true);
 // enable gravity by default
 SET_BOOL_PROP(BoxElasticOnePTwoC, ImplicitWithStabilization, true);
 
+//! The model after Millington (1961) is used for the effective diffusivity
+SET_PROP(BoxElasticOnePTwoC, EffectiveDiffusivityModel)
+{ private :
+    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+ public:
+    typedef DiffusivityMillingtonQuirk<Scalar> type;
+};
+
 // write the stress and displacement output according to rock mechanics sign convention (compressive stresses > 0)
 SET_BOOL_PROP(BoxElasticOnePTwoC, VtkRockMechanicsSignConvention, false);
 }
diff --git a/dumux/implicit/1p2c/1p2cfluxvariables.hh b/dumux/implicit/1p2c/1p2cfluxvariables.hh
index f42f198968..c6c0b8781f 100644
--- a/dumux/implicit/1p2c/1p2cfluxvariables.hh
+++ b/dumux/implicit/1p2c/1p2cfluxvariables.hh
@@ -437,7 +437,7 @@ protected:
         const VolumeVariables &volVarsJ = elemVolVars[face().j];
 
         const Scalar diffCoeffI = EffectiveDiffusivityModel::effectiveDiffusivity(volVarsI.porosity(),
-        															 /*sat=*/1.0,
+                                                                     /*sat=*/1.0,
                                                                      volVarsI.diffCoeff());
 
         const Scalar diffCoeffJ = EffectiveDiffusivityModel::effectiveDiffusivity(volVarsJ.porosity(),
-- 
GitLab