From 1e3070855c9586a59ad7fd5d675c92bc9e12bda5 Mon Sep 17 00:00:00 2001
From: Martin Beck <martin.beck@iws.uni-stuttgart.de>
Date: Tue, 19 Jan 2016 17:19:13 +0100
Subject: [PATCH] [el1p2c] Implemented convenience functions

Instead of calling fluidstate().FLUIDPROPERTY(), the now implemented
convenience functions are used.

Reviewed by kweis
---
 .../el1p2c/el1p2clocalresidual.hh             | 28 +++++++++----------
 .../el1p2c/el1p2cvolumevariables.hh           | 20 +++++++++++++
 2 files changed, 34 insertions(+), 14 deletions(-)

diff --git a/dumux/geomechanics/el1p2c/el1p2clocalresidual.hh b/dumux/geomechanics/el1p2c/el1p2clocalresidual.hh
index 27529a18c9..aeb4c2a7ec 100644
--- a/dumux/geomechanics/el1p2c/el1p2clocalresidual.hh
+++ b/dumux/geomechanics/el1p2c/el1p2clocalresidual.hh
@@ -116,13 +116,13 @@ namespace Dumux
                 if(useMoles)
                 {
                     // storage term of the transport equation - mole fractions
-                    storage[transportEqIdx] += volVars.fluidState().moleFraction(phaseIdx, transportCompIdx)
+                    storage[transportEqIdx] += volVars.moleFraction(transportCompIdx)
                         * volVars.effPorosity;
                 }
                 else
                 {
                     //storage term of the transport equation - mass fractions
-                    storage[transportEqIdx] += volVars.fluidState().massFraction(phaseIdx, transportCompIdx)
+                    storage[transportEqIdx] += volVars.massFraction(transportCompIdx)
                             * volVars.effPorosity;
                 }
             }
@@ -209,26 +209,26 @@ namespace Dumux
                     // advective flux of the component
                     flux[transportEqIdx] +=
                       fluxVars.KmvpNormal() *
-                      ((    upwindWeight_)* up.fluidState().moleFraction(phaseIdx, transportCompIdx)/up.viscosity()
+                      ((    upwindWeight_)* up.moleFraction(transportCompIdx)/up.viscosity()
                       +
-                      (1 - upwindWeight_)* dn.fluidState().moleFraction(phaseIdx, transportCompIdx)/dn.viscosity());
+                      (1 - upwindWeight_)* dn.moleFraction(transportCompIdx)/dn.viscosity());
 
                     // flux of the dissolved second component due to solid displacement
                     flux[transportEqIdx] +=
                       fluxVars.timeDerivUNormal() *
-                      ((    upwindWeight_)* up.fluidState().moleFraction(phaseIdx, transportCompIdx)
+                      ((    upwindWeight_)* up.moleFraction(transportCompIdx)
                       * up.effPorosity
                       +
-                      (1 - upwindWeight_)*dn.fluidState().moleFraction(phaseIdx, transportCompIdx)
+                      (1 - upwindWeight_)*dn.moleFraction(transportCompIdx)
                       * up.effPorosity);
 
                     // stabilization term
                     if(withStabilization_)
                         flux[transportEqIdx] -=
                           stabilizationTerm *
-                          ((    upwindWeight_)* up.fluidState().moleFraction(phaseIdx, transportCompIdx)
+                          ((    upwindWeight_)* up.moleFraction(transportCompIdx)
                           +
-                          (1 - upwindWeight_)*dn.fluidState().moleFraction(phaseIdx, transportCompIdx));
+                          (1 - upwindWeight_)*dn.moleFraction(transportCompIdx));
                 }
                 else
                 {
@@ -236,26 +236,26 @@ namespace Dumux
                     // advective flux of the component
                     flux[transportEqIdx] +=
                       fluxVars.KmvpNormal() *
-                      ((    upwindWeight_)* up.fluidState().massFraction(phaseIdx, transportCompIdx)/up.viscosity()
+                      ((    upwindWeight_)* up.massFraction(transportCompIdx)/up.viscosity()
                       +
-                      (1 - upwindWeight_)* dn.fluidState().massFraction(phaseIdx, transportCompIdx)/dn.viscosity());
+                      (1 - upwindWeight_)* dn.massFraction(transportCompIdx)/dn.viscosity());
 
                     // flux of the dissolved second component due to solid displacement
                     flux[transportEqIdx] +=
                       fluxVars.timeDerivUNormal() *
-                      ((    upwindWeight_)* up.fluidState().massFraction(phaseIdx, transportCompIdx)
+                      ((    upwindWeight_)* up.massFraction(transportCompIdx)
                       * up.effPorosity
                       +
-                      (1 - upwindWeight_)*dn.fluidState().massFraction(phaseIdx, transportCompIdx)
+                      (1 - upwindWeight_)*dn.massFraction(transportCompIdx)
                       * up.effPorosity);
 
                     // stabilization term
                     if(withStabilization_)
                         flux[transportEqIdx] -=
                           stabilizationTerm *
-                          ((    upwindWeight_)* up.fluidState().massFraction(phaseIdx, transportCompIdx)
+                          ((    upwindWeight_)* up.massFraction(transportCompIdx)
                           +
-                          (1 - upwindWeight_)*dn.fluidState().massFraction(phaseIdx, transportCompIdx));
+                          (1 - upwindWeight_)*dn.massFraction(transportCompIdx));
                 }
             }
 
diff --git a/dumux/geomechanics/el1p2c/el1p2cvolumevariables.hh b/dumux/geomechanics/el1p2c/el1p2cvolumevariables.hh
index 68f1977069..d647b13a29 100644
--- a/dumux/geomechanics/el1p2c/el1p2cvolumevariables.hh
+++ b/dumux/geomechanics/el1p2c/el1p2cvolumevariables.hh
@@ -57,6 +57,8 @@ class ElOnePTwoCVolumeVariables : public OnePTwoCVolumeVariables<TypeTag>{
 
     enum {  dim = GridView::dimension };
 
+    enum {  phaseIdx = GET_PROP_VALUE(TypeTag, PhaseIdx) };
+
     typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
     typedef Dune::FieldVector<Scalar,dim> DimVector;
 
@@ -170,6 +172,24 @@ public:
      mutable Scalar effPorosity;
      mutable Scalar divU;
 
+     /*!
+     * \brief Returns the mass fraction of a given component in the
+     *        given fluid phase within the control volume.
+     *
+     * \param compIdx The component index
+     */
+     Scalar massFraction(const int compIdx) const
+     { return this->fluidState_.massFraction(phaseIdx, compIdx); }
+
+     /*!
+     * \brief Returns the mole fraction of a given component in the
+     *        given fluid phase within the control volume.
+     *
+     * \param compIdx The component index
+     */
+     Scalar moleFraction(const int compIdx) const
+     { return this->fluidState_.moleFraction(phaseIdx, compIdx); }
+
 protected:
     PrimaryVariables primaryVars_, prevPrimaryVars_;
     DimVector displacement_, prevDisplacement_;
-- 
GitLab