From 6ddd643061ce304966df7ef7ee7e563aa925f920 Mon Sep 17 00:00:00 2001
From: Wenqing Wang <wenqing.wang@ufz.de>
Date: Mon, 10 May 2021 10:48:42 +0200
Subject: [PATCH] [MPL] Avoid the calculation of porosity in
 EffectiveThermalConductivityPorosityMixing

---
 .../EffectiveThermalConductivityPorosityMixing.cpp | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/MaterialLib/MPL/Properties/EffectiveThermalConductivityPorosityMixing.cpp b/MaterialLib/MPL/Properties/EffectiveThermalConductivityPorosityMixing.cpp
index e5ca152cb6f..3de22d0db41 100644
--- a/MaterialLib/MPL/Properties/EffectiveThermalConductivityPorosityMixing.cpp
+++ b/MaterialLib/MPL/Properties/EffectiveThermalConductivityPorosityMixing.cpp
@@ -48,9 +48,6 @@ PropertyDataType EffectiveThermalConductivityPorosityMixing<1>::value(
     auto const& medium = std::get<Medium*>(scale_);
     auto const& liquid_phase = medium->phase("AqueousLiquid");
     auto const& solid_phase = medium->phase("Solid");
-    auto const porosity = medium->property(
-                        MaterialPropertyLib::PropertyType::porosity)
-                    .template value<double>(variable_array, pos, t, dt);
     auto const liquid_thermal_conductivity =
         liquid_phase
             .property(MaterialPropertyLib::PropertyType::thermal_conductivity)
@@ -58,6 +55,10 @@ PropertyDataType EffectiveThermalConductivityPorosityMixing<1>::value(
     auto const solid_thermal_conductivity = solid_phase.property(
                         MaterialPropertyLib::PropertyType::thermal_conductivity)
                     .template value<double>(variable_array, pos, t, dt);
+
+    auto const porosity =
+        std::get<double>(variable_array[static_cast<int>(Variable::porosity)]);
+
     auto const S_L = std::get<double>(
         variable_array[static_cast<int>(Variable::liquid_saturation)]);
 
@@ -106,9 +107,6 @@ PropertyDataType EffectiveThermalConductivityPorosityMixing<GlobalDim>::value(
     auto const& medium = std::get<Medium*>(scale_);
     auto const& liquid_phase = medium->phase("AqueousLiquid");
     auto const& solid_phase = medium->phase("Solid");
-    auto const porosity = medium->property(
-                        MaterialPropertyLib::PropertyType::porosity)
-                    .template value<double>(variable_array, pos, t, dt);
     auto const liquid_thermal_conductivity =
         liquid_phase
             .property(MaterialPropertyLib::PropertyType::thermal_conductivity)
@@ -117,6 +115,10 @@ PropertyDataType EffectiveThermalConductivityPorosityMixing<GlobalDim>::value(
         solid_phase
             .property(MaterialPropertyLib::PropertyType::thermal_conductivity)
             .value(variable_array, pos, t, dt));
+
+    auto const porosity =
+        std::get<double>(variable_array[static_cast<int>(Variable::porosity)]);
+
     auto const S_L = std::get<double>(
         variable_array[static_cast<int>(Variable::liquid_saturation)]);
 
-- 
GitLab