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