From 0975873844d23edf1a70d1649c0bc011cc26eaaa Mon Sep 17 00:00:00 2001 From: Klaus Mosthaf <klmos@env.dtu.dk> Date: Wed, 9 May 2012 15:16:34 +0000 Subject: [PATCH] Changed component indices: phaseIdx is called from the property system (default to nPhase) wComp or comp1Idx -> transportCompIdx (transported component) nComp or comp0Idx -> phaseCompIdx (main component of phase) transportCompIdx is |1-phaseIdx|, because usually the transported component of interest is the minor component of the phase. This allows the to choose an arbitrary phase of a two-phase fluidsystem, if wComp is the main component of wPhase and both have the same index with either 0 or 1. Corrected index names for primary variables, they get the correct primary variable index instead of the equation index; massOrMoleFracIdx has been employed for the mass or mole fraction (seems to be self-explanatory...) Adapted also test problems for stokes2c, stokes2cni. Reviewed bei Markus. git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk@8275 2fb0f335-1f38-0410-981e-8018bf24f1b0 --- .../stokes2c/stokes2cfluxvariables.hh | 11 +++---- dumux/freeflow/stokes2c/stokes2cindices.hh | 31 +++++++++++-------- .../stokes2c/stokes2clocalresidual.hh | 19 ++++++------ dumux/freeflow/stokes2c/stokes2cmodel.hh | 7 ++--- .../stokes2c/stokes2cvolumevariables.hh | 28 +++++++---------- .../freeflow/stokes2cni/stokes2cniindices.hh | 5 +-- .../stokes2cni/stokes2cnilocalresidual.hh | 10 +++--- dumux/freeflow/stokes2cni/stokes2cnimodel.hh | 8 ++--- .../stokes2cni/stokes2cnivolumevariables.hh | 4 +-- test/freeflow/stokes2c/stokes2ctestproblem.hh | 23 ++++++++------ .../stokes2cni/stokes2cnitestproblem.hh | 25 +++++++++------ 11 files changed, 92 insertions(+), 79 deletions(-) diff --git a/dumux/freeflow/stokes2c/stokes2cfluxvariables.hh b/dumux/freeflow/stokes2c/stokes2cfluxvariables.hh index 61d4766878..80970b87fe 100644 --- a/dumux/freeflow/stokes2c/stokes2cfluxvariables.hh +++ b/dumux/freeflow/stokes2c/stokes2cfluxvariables.hh @@ -66,9 +66,8 @@ class Stokes2cFluxVariables : public StokesFluxVariables<TypeTag> typedef typename GET_PROP_TYPE(TypeTag, Stokes2cIndices) Indices; enum { dim = GridView::dimension }; - enum { comp1Idx = Indices::comp1Idx }; - enum { lCompIdx = comp1Idx } DUMUX_DEPRECATED_MSG("use comp1Idx instead"); - enum { phaseIdx = GET_PROP_VALUE(TypeTag, PhaseIdx) }; + enum { phaseIdx = Indices::phaseIdx }; + enum { transportCompIdx = Indices::transportCompIdx }; typedef typename GridView::template Codim<0>::Entity Element; typedef Dune::FieldVector<Scalar, dim> DimVector; @@ -86,7 +85,7 @@ public: } /*! - * \brief Return the mass fraction at the integration point. + * \brief Return the mass fraction of the transported component at the integration point. */ Scalar massFraction() const { return massFraction_; } @@ -139,7 +138,7 @@ protected: idx < this->fvGeometry_.numVertices; idx++) // loop over vertices of the element { - massFraction_ += elemVolVars[idx].fluidState().massFraction(phaseIdx, comp1Idx) * + massFraction_ += elemVolVars[idx].fluidState().massFraction(phaseIdx, transportCompIdx) * this->face().shapeValue[idx]; diffusionCoeff_ += elemVolVars[idx].diffusionCoeff() * this->face().shapeValue[idx]; @@ -149,7 +148,7 @@ protected: { moleFractionGrad_ += this->face().grad[idx][dimIdx] * - elemVolVars[idx].fluidState().moleFraction(phaseIdx, comp1Idx); + elemVolVars[idx].fluidState().moleFraction(phaseIdx, transportCompIdx); } } diff --git a/dumux/freeflow/stokes2c/stokes2cindices.hh b/dumux/freeflow/stokes2c/stokes2cindices.hh index 2e4bacc902..e510a0de7f 100644 --- a/dumux/freeflow/stokes2c/stokes2cindices.hh +++ b/dumux/freeflow/stokes2c/stokes2cindices.hh @@ -48,26 +48,31 @@ struct Stokes2cCommonIndices : public StokesCommonIndices<TypeTag> typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; public: - // Phase indices - static const int wPhaseIdx = FluidSystem::lPhaseIdx; //!< Index of the wetting phase - static const int nPhaseIdx = FluidSystem::gPhaseIdx; //!< Index of the non-wetting phase - static const int lPhaseIdx = wPhaseIdx; //!< \deprecated use wPhaseIdx instead - static const int gPhaseIdx = nPhaseIdx; //!< \deprecated use nPhaseIdx instead + // Phase index + static const int phaseIdx = GET_PROP_VALUE(TypeTag, PhaseIdx); //!< Index of the employed phase in case of a two-phase fluidsystem (set by default to nPhase) + + static const int wPhaseIdx = FluidSystem::wPhaseIdx; //!< \deprecated use phaseIdx instead, only one phase employed + static const int nPhaseIdx = FluidSystem::nPhaseIdx; //!< \deprecated use phaseIdx instead, only one phase employed + static const int lPhaseIdx = wPhaseIdx; //!< \deprecated use phaseIdx instead, only one phase employed + static const int gPhaseIdx = nPhaseIdx; //!< \deprecated use phaseIdx instead, only one phase employed // Component indices - static const int comp1Idx = 0; //!< Index of the wetting's primary component - static const int comp0Idx = 1; //!< Index of the non-wetting's primary component - static const int lCompIdx = comp1Idx; //!< \deprecated use comp1Idx instead - static const int gCompIdx = comp0Idx; //!< \deprecated use comp0Idx instead + static const int phaseCompIdx = phaseIdx; //!< The index of the main component of the considered phase + static const int transportCompIdx = (unsigned int)(1-phaseIdx); //!< The index of the transported (minor) component; ASSUMES phase indices of 0 and 1 + + static const int comp1Idx = 0; //!< \deprecated Index of the wetting's primary component + static const int comp0Idx = 1; //!< \deprecated Index of the non-wetting's primary component + static const int lCompIdx = transportCompIdx; //!< \deprecated use transportComp instead + static const int gCompIdx = phaseCompIdx; //!< \deprecated use phaseCompIdx instead // equation and primary variable indices static const int dim = StokesCommonIndices<TypeTag>::dim; - static const int transportEqIdx = PVOffset + dim+1; //!< The index for the transport equation. + static const int transportEqIdx = PVOffset + dim+1; //!< The index for the transport equation static const int transportIdx = transportEqIdx; //!< \deprecated use transportEqIdx instead - static const int transportCompIdx = transportEqIdx; //!< The index for the mass or mole fraction in primary variable vectors. - static const int massOrMoleFracIndex = transportCompIdx; //!< \deprecated use transportCompIdx instead - static const int phaseIdx = nPhaseIdx; //!< Index of the non-wetting phase (required to use the same fluid system in coupled models) + static const int massOrMoleFracIdx = transportEqIdx; //!< The index of the mass or mole fraction of the transported component in primary variable vectors + static const int massOrMoleFracIndex = massOrMoleFracIdx; //!< \deprecated use massOrMoleFracIdx instead + }; } // end namespace diff --git a/dumux/freeflow/stokes2c/stokes2clocalresidual.hh b/dumux/freeflow/stokes2c/stokes2clocalresidual.hh index e8ca950514..98e6021c5b 100644 --- a/dumux/freeflow/stokes2c/stokes2clocalresidual.hh +++ b/dumux/freeflow/stokes2c/stokes2clocalresidual.hh @@ -54,10 +54,11 @@ class Stokes2cLocalResidual : public StokesLocalResidual<TypeTag> enum { dim = GridView::dimension }; enum { transportEqIdx = Indices::transportEqIdx }; //!< Index of the transport equation - enum { transportIdx = transportEqIdx }; DUMUX_DEPRECATED_MSG("use transportEqIdx instead"); - enum { comp1Idx = Indices::comp1Idx }; //!< Index of the transported component - enum { lCompIdx = comp1Idx } DUMUX_DEPRECATED_MSG("use comp1Idx instead"); - enum { phaseIdx = GET_PROP_VALUE(TypeTag, PhaseIdx)}; //!< Index of the considered phase (only of interest when using two-phase fluidsystems) + enum { phaseIdx = Indices::phaseIdx }; //!< Index of the considered phase (only of interest when using two-phase fluidsystems) + + // component indices + enum { phaseCompIdx = Indices::phaseCompIdx }; //!< Index of the main component of the fluid phase + enum { transportCompIdx = Indices::transportCompIdx }; //!< Index of the minor component of the fluid phase typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables; typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables; @@ -93,10 +94,10 @@ public: // compute the storage of the component storage[transportEqIdx] = volVars.density() * - volVars.fluidState().massFraction(phaseIdx, comp1Idx); + volVars.fluidState().massFraction(phaseIdx, transportCompIdx); Valgrind::CheckDefined(volVars.density()); - Valgrind::CheckDefined(volVars.fluidState().massFraction(phaseIdx, comp1Idx)); + Valgrind::CheckDefined(volVars.fluidState().massFraction(phaseIdx, transportCompIdx)); } /*! @@ -124,10 +125,10 @@ public: if (this->massUpwindWeight_ > 0.0) tmp *= this->massUpwindWeight_ * // upwind data - up.density() * up.fluidState().massFraction(phaseIdx, comp1Idx); + up.density() * up.fluidState().massFraction(phaseIdx, transportCompIdx); if (this->massUpwindWeight_ < 1.0) tmp += (1.0 - this->massUpwindWeight_) * // rest - dn.density() * dn.fluidState().massFraction(phaseIdx, comp1Idx); + dn.density() * dn.fluidState().massFraction(phaseIdx, transportCompIdx); flux[transportEqIdx] += tmp; Valgrind::CheckDefined(flux[transportEqIdx]); @@ -153,7 +154,7 @@ public: fluxVars.face().normal[dimIdx] * fluxVars.diffusionCoeff() * fluxVars.molarDensity() * - FluidSystem::molarMass(comp1Idx); + FluidSystem::molarMass(transportCompIdx); Valgrind::CheckDefined(flux[transportEqIdx]); } diff --git a/dumux/freeflow/stokes2c/stokes2cmodel.hh b/dumux/freeflow/stokes2c/stokes2cmodel.hh index d0416b5e44..15fecd00e8 100644 --- a/dumux/freeflow/stokes2c/stokes2cmodel.hh +++ b/dumux/freeflow/stokes2c/stokes2cmodel.hh @@ -75,8 +75,7 @@ class Stokes2cModel : public StokesModel<TypeTag> typedef typename GET_PROP_TYPE(TypeTag, Stokes2cIndices) Indices; enum { dim = GridView::dimension }; - enum { comp1Idx = Indices::comp1Idx }; - enum { lCompIdx = comp1Idx } DUMUX_DEPRECATED_MSG("use comp1Idx instead"); + enum { transportCompIdx = Indices::transportCompIdx }; enum { phaseIdx = GET_PROP_VALUE(TypeTag, PhaseIdx) }; typedef typename GridView::template Codim<0>::Iterator ElementIterator; @@ -138,7 +137,7 @@ public: pN[globalIdx] = volVars.pressure()*scale_; delP[globalIdx] = volVars.pressure()*scale_ - 1e5; - Xw[globalIdx] = volVars.fluidState().massFraction(phaseIdx, comp1Idx); + Xw[globalIdx] = volVars.fluidState().massFraction(phaseIdx, transportCompIdx); rho[globalIdx] = volVars.density()*scale_*scale_*scale_; mu[globalIdx] = volVars.viscosity()*scale_; velocity[globalIdx] = volVars.velocity(); @@ -148,7 +147,7 @@ public: writer.attachVertexData(pN, "P"); writer.attachVertexData(delP, "delP"); std::ostringstream outputNameX; - outputNameX << "X^" << FluidSystem::componentName(comp1Idx); + outputNameX << "X^" << FluidSystem::componentName(transportCompIdx); writer.attachVertexData(Xw, outputNameX.str()); writer.attachVertexData(rho, "rho"); writer.attachVertexData(mu, "mu"); diff --git a/dumux/freeflow/stokes2c/stokes2cvolumevariables.hh b/dumux/freeflow/stokes2c/stokes2cvolumevariables.hh index f14330bebe..55194d5eb9 100644 --- a/dumux/freeflow/stokes2c/stokes2cvolumevariables.hh +++ b/dumux/freeflow/stokes2c/stokes2cvolumevariables.hh @@ -57,17 +57,13 @@ class Stokes2cVolumeVariables : public StokesVolumeVariables<TypeTag> typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices; enum { - comp1Idx = Indices::comp1Idx, - comp0Idx = Indices::comp0Idx + transportCompIdx = Indices::transportCompIdx, + phaseCompIdx = Indices::phaseCompIdx }; - enum { - lCompIdx = comp1Idx, - gCompIdx = comp0Idx - } DUMUX_DEPRECATED_MSG("use comp1Idx instead"); enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) }; enum { phaseIdx = GET_PROP_VALUE(TypeTag, PhaseIdx) }; enum { transportEqIdx = Indices::transportEqIdx }; - enum { transportIdx = transportEqIdx }; //!< \deprecated use transportEqIdx instead + enum { massOrMoleFracIdx = Indices::massOrMoleFracIdx }; public: /*! @@ -100,8 +96,8 @@ public: diffCoeff_ = FluidSystem::binaryDiffusionCoefficient(this->fluidState(), paramCache, phaseIdx, - comp1Idx, - comp0Idx); + transportCompIdx, + phaseCompIdx); Valgrind::CheckDefined(diffCoeff_); }; @@ -119,18 +115,18 @@ public: const bool isOldSol = false) { Scalar massFraction[numComponents]; - massFraction[comp1Idx] = priVars[transportEqIdx]; - massFraction[comp0Idx] = 1 - massFraction[comp1Idx]; + massFraction[transportCompIdx] = priVars[massOrMoleFracIdx]; + massFraction[phaseCompIdx] = 1 - massFraction[transportCompIdx]; // calculate average molar mass of the gas phase - Scalar M1 = FluidSystem::molarMass(comp1Idx); - Scalar M2 = FluidSystem::molarMass(comp0Idx); - Scalar X2 = massFraction[comp0Idx]; + Scalar M1 = FluidSystem::molarMass(transportCompIdx); + Scalar M2 = FluidSystem::molarMass(phaseCompIdx); + Scalar X2 = massFraction[phaseCompIdx]; Scalar avgMolarMass = M1*M2/(M2 + X2*(M1 - M2)); // convert mass to mole fractions and set the fluid state - fluidState.setMoleFraction(phaseIdx, comp1Idx, massFraction[comp1Idx]*avgMolarMass/M1); - fluidState.setMoleFraction(phaseIdx, comp0Idx, massFraction[comp0Idx]*avgMolarMass/M2); + fluidState.setMoleFraction(phaseIdx, transportCompIdx, massFraction[transportCompIdx]*avgMolarMass/M1); + fluidState.setMoleFraction(phaseIdx, phaseCompIdx, massFraction[phaseCompIdx]*avgMolarMass/M2); } /*! diff --git a/dumux/freeflow/stokes2cni/stokes2cniindices.hh b/dumux/freeflow/stokes2cni/stokes2cniindices.hh index 314f498a18..c189f45a44 100644 --- a/dumux/freeflow/stokes2cni/stokes2cniindices.hh +++ b/dumux/freeflow/stokes2cni/stokes2cniindices.hh @@ -46,8 +46,9 @@ struct Stokes2cniCommonIndices : public Stokes2cCommonIndices<TypeTag, PVOffset> public: // number of dimensions static const int dim = StokesCommonIndices<TypeTag>::dim; - static const int energyIdx = PVOffset + dim+2; //! The index for the energy balance equation. - static const int temperatureIdx = energyIdx; //! The index for temperature in primary variable vectors. + static const int energyEqIdx = PVOffset + dim+2; //! The index for the energy balance equation + static const int energyIdx = energyEqIdx; // \deprecated Use energyEqIdx instaed + static const int temperatureIdx = energyEqIdx; //! The index for temperature in primary variable vectors }; } // end namespace diff --git a/dumux/freeflow/stokes2cni/stokes2cnilocalresidual.hh b/dumux/freeflow/stokes2cni/stokes2cnilocalresidual.hh index 7aea7a619d..e26c0da7cb 100644 --- a/dumux/freeflow/stokes2cni/stokes2cnilocalresidual.hh +++ b/dumux/freeflow/stokes2cni/stokes2cnilocalresidual.hh @@ -55,7 +55,7 @@ class Stokes2cniLocalResidual : public Stokes2cLocalResidual<TypeTag> typedef typename GET_PROP_TYPE(TypeTag, Stokes2cniIndices) Indices; enum { dim = GridView::dimension }; - enum { energyIdx = Indices::energyIdx }; //!< Index of the transport equation + enum { energyEqIdx = Indices::energyEqIdx }; //!< Index of the transport equation typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables; typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables; @@ -84,7 +84,7 @@ public: const VolumeVariables &volVars = elemVolVars[scvIdx]; // compute the storage of energy - storage[energyIdx] = + storage[energyEqIdx] = volVars.density() * volVars.internalEnergy(); } @@ -115,8 +115,8 @@ public: (1.0 - this->massUpwindWeight_) * // rest dn.density() * dn.enthalpy(); - flux[energyIdx] += tmp; - Valgrind::CheckDefined(flux[energyIdx]); + flux[energyEqIdx] += tmp; + Valgrind::CheckDefined(flux[energyEqIdx]); } /*! @@ -134,7 +134,7 @@ public: // diffusive heat flux for (int dimIdx = 0; dimIdx < dim; ++dimIdx) - flux[energyIdx] -= + flux[energyEqIdx] -= fluxVars.temperatureGrad()[dimIdx] * fluxVars.face().normal[dimIdx] * fluxVars.heatConductivity(); diff --git a/dumux/freeflow/stokes2cni/stokes2cnimodel.hh b/dumux/freeflow/stokes2cni/stokes2cnimodel.hh index 1f91534f10..e46d646497 100644 --- a/dumux/freeflow/stokes2cni/stokes2cnimodel.hh +++ b/dumux/freeflow/stokes2cni/stokes2cnimodel.hh @@ -85,8 +85,8 @@ class Stokes2cniModel : public Stokes2cModel<TypeTag> typedef typename GET_PROP_TYPE(TypeTag, Stokes2cniIndices) Indices; enum { dim = GridView::dimension }; - enum { comp1Idx = Indices::comp1Idx }; - enum { lCompIdx = comp1Idx } DUMUX_DEPRECATED_MSG("use comp1Idx instead"); + enum { transportCompIdx = Indices::transportCompIdx }; + enum { lCompIdx = transportCompIdx } DUMUX_DEPRECATED_MSG("use transportCompIdx instead"); enum { phaseIdx = GET_PROP_VALUE(TypeTag, PhaseIndex) }; typedef typename GridView::template Codim<0>::Iterator ElementIterator; @@ -149,7 +149,7 @@ public: pN [globalIdx] = volVars.pressure(); delP[globalIdx] = volVars.pressure() - 1e5; - Xw [globalIdx] = volVars.fluidState().massFraction(phaseIdx, comp1Idx); + Xw [globalIdx] = volVars.fluidState().massFraction(phaseIdx, transportCompIdx); T [globalIdx] = volVars.temperature(); rho [globalIdx] = volVars.density(); mu [globalIdx] = volVars.viscosity(); @@ -162,7 +162,7 @@ public: writer.attachVertexData(delP, "delP"); // writer.attachVertexData(D, "Dwg"); std::ostringstream outputNameX; - outputNameX << "X^" << FluidSystem::componentName(comp1Idx); + outputNameX << "X^" << FluidSystem::componentName(transportCompIdx); writer.attachVertexData(Xw, outputNameX.str()); writer.attachVertexData(T, "temperature"); writer.attachVertexData(rho, "rhoG"); diff --git a/dumux/freeflow/stokes2cni/stokes2cnivolumevariables.hh b/dumux/freeflow/stokes2cni/stokes2cnivolumevariables.hh index d28ae2d048..3302d37eae 100644 --- a/dumux/freeflow/stokes2cni/stokes2cnivolumevariables.hh +++ b/dumux/freeflow/stokes2cni/stokes2cnivolumevariables.hh @@ -55,7 +55,7 @@ class Stokes2cniVolumeVariables : public Stokes2cVolumeVariables<TypeTag> typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices; enum { phaseIdx = GET_PROP_VALUE(TypeTag, PhaseIdx) }; - enum { energyIdx = Indices::energyIdx }; + enum { temperatureIdx = Indices::temperatureIdx }; typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables; typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; @@ -118,7 +118,7 @@ protected: const FVElementGeometry &fvGeometry, const int scvIdx) { - return priVars[energyIdx]; + return priVars[temperatureIdx]; } template<class ParameterCache> diff --git a/test/freeflow/stokes2c/stokes2ctestproblem.hh b/test/freeflow/stokes2c/stokes2ctestproblem.hh index 1c32a3603d..e79730f212 100644 --- a/test/freeflow/stokes2c/stokes2ctestproblem.hh +++ b/test/freeflow/stokes2c/stokes2ctestproblem.hh @@ -110,12 +110,17 @@ class Stokes2cTestProblem : public StokesProblem<TypeTag> // Number of equations and grid dimension enum { dim = GridView::dimension }; - enum { - // copy some indices for convenience + enum { // equation indices massBalanceIdx = Indices::massBalanceIdx, momentumXIdx = Indices::momentumXIdx, //!< Index of the x-component of the momentum balance momentumYIdx = Indices::momentumYIdx, //!< Index of the y-component of the momentum balance - transportIdx = Indices::transportIdx //!< Index of the transport equation (massfraction) + transportEqIdx = Indices::transportEqIdx, //!< Index of the transport equation + }; + enum { // indices for primary variables + velocityXIdx = Indices::velocityXIdx, + velocityYIdx = Indices::velocityYIdx, + pressureIdx = Indices::pressureIdx, + massOrMoleFracIdx = Indices::massOrMoleFracIdx }; @@ -216,7 +221,7 @@ public: if (onUpperBoundary_(globalPos)) { - values[transportIdx] = 0.005; + values[massOrMoleFracIdx] = 0.005; } } @@ -286,18 +291,18 @@ private: { values = 0.0; - values[massBalanceIdx] = 1e5; - values[momentumXIdx] = 0.0; + values[pressureIdx] = 1e5; + values[velocityXIdx] = 0.0; //parabolic profile const Scalar v1 = 1.0; - values[momentumYIdx] = -v1*(globalPos[0] - this->bboxMin()[0])*(this->bboxMax()[0] - globalPos[0]) + values[velocityYIdx] = -v1*(globalPos[0] - this->bboxMin()[0])*(this->bboxMax()[0] - globalPos[0]) / (0.25*(this->bboxMax()[0] - this->bboxMin()[0])*(this->bboxMax()[0] - this->bboxMin()[0])); if (onUpperBoundary_(globalPos)) - values[transportIdx] = 0.005; + values[massOrMoleFracIdx] = 0.005; else - values[transportIdx] = 0.007; + values[massOrMoleFracIdx] = 0.007; } bool onLeftBoundary_(const GlobalPosition &globalPos) const { return globalPos[0] < this->bboxMin()[0] + eps_; } diff --git a/test/freeflow/stokes2cni/stokes2cnitestproblem.hh b/test/freeflow/stokes2cni/stokes2cnitestproblem.hh index 1c2973cd19..97d2d3053a 100644 --- a/test/freeflow/stokes2cni/stokes2cnitestproblem.hh +++ b/test/freeflow/stokes2cni/stokes2cnitestproblem.hh @@ -116,8 +116,15 @@ class Stokes2cniTestProblem : public StokesProblem<TypeTag> momentumXIdx = Indices::momentumXIdx, //!< Index of the x-component of the momentum balance momentumYIdx = Indices::momentumYIdx, //!< Index of the y-component of the momentum balance momentumZIdx = Indices::momentumZIdx, //!< Index of the z-component of the momentum balance - transportIdx = Indices::transportIdx, //!< Index of the transport equation (massfraction) - energyIdx = Indices::energyIdx //!< Index of the energy equation (temperature) + transportEqIdx = Indices::transportEqIdx, //!< Index of the transport equation + energyEqIdx = Indices::energyEqIdx //!< Index of the energy equation + }; + enum { // indices for primary variables + velocityXIdx = Indices::velocityXIdx, + velocityYIdx = Indices::velocityYIdx, + pressureIdx = Indices::pressureIdx, + massOrMoleFracIdx = Indices::massOrMoleFracIdx, + temperatureIdx = Indices::temperatureIdx }; typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables; @@ -271,19 +278,19 @@ private: const GlobalPosition &globalPos) const { const Scalar v1 = 0.5; - values[momentumXIdx] = 0.0; - values[momentumYIdx] = v1*(globalPos[0] - this->bboxMin()[0])*(this->bboxMax()[0] - globalPos[0]) + values[velocityXIdx] = 0.0; + values[velocityYIdx] = v1*(globalPos[0] - this->bboxMin()[0])*(this->bboxMax()[0] - globalPos[0]) / (0.25*(this->bboxMax()[0] - this->bboxMin()[0])*(this->bboxMax()[0] - this->bboxMin()[0])); - values[massBalanceIdx] = 1e5 - 1.189*this->gravity()[1]*globalPos[1]; - values[transportIdx] = 1e-4; - values[energyIdx] = 283.15; + values[pressureIdx] = 1e5 - 1.189*this->gravity()[1]*globalPos[1]; + values[massOrMoleFracIdx] = 1e-4; + values[temperatureIdx] = 283.15; if(globalPos[0]<0.75 && globalPos[0]>0.25 && globalPos[1]<0.75 && globalPos[1]>0.25) // if(onLowerBoundary_(globalPos) && // !onLeftBoundary_(globalPos) && !onRightBoundary_(globalPos)) { - values[transportIdx] = 0.9e-4; - values[energyIdx] = 284.15; + values[massOrMoleFracIdx] = 0.9e-4; + values[temperatureIdx] = 284.15; } } // \} -- GitLab