From 4c4df4aeac945becee9cf9f9220e448a80dda3e1 Mon Sep 17 00:00:00 2001
From: Thomas Fetzer <thomas.fetzer@iws.uni-stuttgart.de>
Date: Tue, 22 Nov 2016 13:14:31 +0100
Subject: [PATCH] [multidomain] Merge if loop and catch wrong setups

---
 .../stokesncnicouplinglocalresidual.hh            | 15 ++++++---------
 dumux/multidomain/2cstokes2p2c/localoperator.hh   |  5 +++++
 .../2cstokes2p2c/stokesnccouplinglocalresidual.hh | 14 ++++++--------
 3 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/dumux/multidomain/2cnistokes2p2cni/stokesncnicouplinglocalresidual.hh b/dumux/multidomain/2cnistokes2p2cni/stokesncnicouplinglocalresidual.hh
index 671ae29efa..948499aa35 100644
--- a/dumux/multidomain/2cnistokes2p2cni/stokesncnicouplinglocalresidual.hh
+++ b/dumux/multidomain/2cnistokes2p2cni/stokesncnicouplinglocalresidual.hh
@@ -158,16 +158,13 @@ public:
                     for (int compIdx = 0; compIdx < numComponents; compIdx++)
                     {
                         int eqIdx =  conti0EqIdx + compIdx;
-                        if (eqIdx != massBalanceIdx)
+                        if ((eqIdx != massBalanceIdx) && bcTypes.isCouplingDirichlet(eqIdx))
                         {
-                            if (bcTypes.isCouplingDirichlet(eqIdx))
-                            {
-                                if(useMoles)
-                                    this->residual_[scvIdx][eqIdx] = volVars.moleFraction(compIdx);
-                                else
-                                    this->residual_[scvIdx][eqIdx] = volVars.massFraction(compIdx);
-                                Valgrind::CheckDefined(this->residual_[scvIdx][compIdx]);
-                            }
+                            if(useMoles)
+                                this->residual_[scvIdx][eqIdx] = volVars.moleFraction(compIdx);
+                            else
+                                this->residual_[scvIdx][eqIdx] = volVars.massFraction(compIdx);
+                            Valgrind::CheckDefined(this->residual_[scvIdx][compIdx]);
                         }
                     }
 
diff --git a/dumux/multidomain/2cstokes2p2c/localoperator.hh b/dumux/multidomain/2cstokes2p2c/localoperator.hh
index 733d4c0f9d..f43d9da119 100644
--- a/dumux/multidomain/2cstokes2p2c/localoperator.hh
+++ b/dumux/multidomain/2cstokes2p2c/localoperator.hh
@@ -432,6 +432,11 @@ public:
         const Scalar normalMassFlux1 = boundaryVars1.normalVelocity()
                                        * cParams.elemVolVarsCur1[vertInElem1].density();
 
+        if (std::abs(bfNormal1[1]) < 1e-10)
+        {
+            DUNE_THROW(Dune::NotImplemented, "The coupling conditions are not implemented for vertical interfaces.");
+        }
+
         // MASS Balance
         // Neumann-like conditions
         if (cParams.boundaryTypes1.isCouplingNeumann(massBalanceIdx1))
diff --git a/dumux/multidomain/2cstokes2p2c/stokesnccouplinglocalresidual.hh b/dumux/multidomain/2cstokes2p2c/stokesnccouplinglocalresidual.hh
index c32b05c776..ec2f7bcf18 100644
--- a/dumux/multidomain/2cstokes2p2c/stokesnccouplinglocalresidual.hh
+++ b/dumux/multidomain/2cstokes2p2c/stokesnccouplinglocalresidual.hh
@@ -168,15 +168,13 @@ public:
                     for (int compIdx = 0; compIdx < numComponents; compIdx++)
                     {
                         int eqIdx = conti0EqIdx + compIdx;
-                        if (eqIdx != massBalanceIdx)
+                        if ((eqIdx != massBalanceIdx) && bcTypes.isCouplingDirichlet(eqIdx))
                         {
-                            if (bcTypes.isCouplingDirichlet(eqIdx))
-                            {
-                                if(useMoles)
-                                    this->residual_[scvIdx][eqIdx] = volVars.moleFraction(compIdx);
-                                else
-                                    this->residual_[scvIdx][eqIdx] = volVars.massFraction(compIdx);
-                            }
+                            if (useMoles)
+                                this->residual_[scvIdx][eqIdx] = volVars.moleFraction(compIdx);
+                            else
+                                this->residual_[scvIdx][eqIdx] = volVars.massFraction(compIdx);
+                            Valgrind::CheckDefined(this->residual_[scvIdx][compIdx]);
                         }
                     }
                 }
-- 
GitLab