From 07cf29a6a851db5b6ab42ff232c603415e458790 Mon Sep 17 00:00:00 2001
From: Thomas Fetzer <thomas.fetzer@iws.uni-stuttgart.de>
Date: Fri, 8 Jan 2016 09:51:21 +0100
Subject: [PATCH] [multidomain] Improve corner handling, update CHANGELOG

---
 CHANGELOG                                             |  4 +++-
 .../2cnistokes2p2cni/2cnistokes2p2cnilocaloperator.hh |  5 -----
 .../2cstokes2p2c/2cstokes2p2clocaloperator.hh         | 11 ++++++-----
 3 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index c45f2392f2..78f30cc31b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,7 +5,9 @@ Differences Between DuMuX 2.8 and DuMuX 2.9
   -
 
 * IMPROVEMENTS and ENHANCEMENTS:
-  -
+  - The multidomain models have been restructured. This aims at a reduction in
+    duplicated code portions, more consistent procedure in the isothermal
+    and non.isothermal models, reduction of split functions.
 
 * IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:
   - For the multidomain models, the notation of the boundary condition types
diff --git a/dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnilocaloperator.hh b/dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnilocaloperator.hh
index 78200c2cae..0e90f01353 100644
--- a/dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnilocaloperator.hh
+++ b/dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnilocaloperator.hh
@@ -220,7 +220,6 @@ public:
                                  cParams,
                                  couplingRes1, couplingRes2);
 
-        const GlobalPosition& globalPos1 = cParams.fvGeometry1.subContVol[vertInElem1].global;
         const GlobalPosition& globalPos2 = cParams.fvGeometry2.subContVol[vertInElem2].global;
 
         // ENERGY Balance
@@ -250,9 +249,6 @@ public:
                                         this->globalProblem().localResidual2().residual(vertInElem2)[energyEqIdx2]);
             }
         }
-
-        // TODO: unify the behavior for cParams.boundaryTypes2.isCouplingNeumann()
-        //       with the different one in the isothermal LOP
         if (cParams.boundaryTypes2.isCouplingNeumann(energyEqIdx2))
         {
             const GlobalPosition& bfNormal1 = boundaryVars1.face().normal;
@@ -293,7 +289,6 @@ public:
                                           * boundaryVars1.componentEnthalpy(phaseCompIdx1)
                                           * FluidSystem::molarMass(phaseCompIdx1);
 
-                // TODO: use mass transfer coefficient here?
                 couplingRes2.accumulate(lfsu2.child(energyEqIdx2), vertInElem2,
                                         -(convectiveFlux - sumDiffusiveEnergyFlux - conductiveFlux));
             }
diff --git a/dumux/multidomain/2cstokes2p2c/2cstokes2p2clocaloperator.hh b/dumux/multidomain/2cstokes2p2c/2cstokes2p2clocaloperator.hh
index d2f8e4be1c..12ceb922db 100644
--- a/dumux/multidomain/2cstokes2p2c/2cstokes2p2clocaloperator.hh
+++ b/dumux/multidomain/2cstokes2p2c/2cstokes2p2clocaloperator.hh
@@ -548,6 +548,9 @@ public:
             // only enter here, if a boundary layer model is used for the computation of the diffusive fluxes
             if (blModel_)
             {
+                Scalar advectiveFlux = normalMassFlux1
+                                       * cParams.elemVolVarsCur1[vertInElem1].massFraction(transportCompIdx1);
+
                 Scalar diffusiveFlux = bfNormal1.two_norm()
                                        * evalBoundaryLayerConcentrationGradient(cParams, vertInElem1)
                                        * (boundaryVars1.diffusionCoeff(transportCompIdx1)
@@ -555,12 +558,9 @@ public:
                                        * boundaryVars1.molarDensity()
                                        * FluidSystem::molarMass(transportCompIdx1);
 
-                Scalar advectiveFlux = normalMassFlux1
-                                       * cParams.elemVolVarsCur1[vertInElem1].massFraction(transportCompIdx1);
-
                 const Scalar massTransferCoeff = evalMassTransferCoefficient(cParams, vertInElem1, vertInElem2);
-                // TODO: unify this behavior with the one in the non-isothermal LOP
-                if (globalProblem_.sdProblem1().isCornerPoint(globalPos1) && massTransferModel_)
+
+                if (massTransferModel_ && globalProblem_.sdProblem1().isCornerPoint(globalPos1))
                 {
                     Scalar diffusiveFluxAtCorner = bfNormal1
                                                    * boundaryVars1.moleFractionGrad(transportCompIdx1)
@@ -587,6 +587,7 @@ public:
 
                 Scalar advectiveFlux = normalMassFlux1
                                        * cParams.elemVolVarsCur1[vertInElem1].massFraction(transportCompIdx1);
+
                 Scalar diffusiveFlux = bfNormal1
                                        * boundaryVars1.moleFractionGrad(transportCompIdx1)
                                        * (boundaryVars1.diffusionCoeff(transportCompIdx1)
-- 
GitLab