rename "(Volume|Flux)Variables" to "(In|Ex)tensiveQuantities"

"intensive" means that the value of these quantities at a given
spatial location does not depend on any value of the neighboring
intensive quantities. In contrast, "extensive" quantities depend in
the intensive quantities of the environment of the spatial location.

this change is necessary is because the previous nomenclature was very
specific to finite volume discretizations, but the models themselves
were already rather generic. (i.e., "volume variables" are the
intensive quantities of finite volume methods and "flux variables"
are the extensive ones.)
This commit is contained in:
Andreas Lauser 2014-06-24 14:54:32 +02:00
parent 536370fc96
commit 8e0e9e9d31
21 changed files with 123 additions and 139 deletions

View File

@ -459,7 +459,7 @@ public:
Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs; Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs;
fs.setSaturation(gasPhaseIdx, 1.0); fs.setSaturation(gasPhaseIdx, 1.0);
fs.setPressure(gasPhaseIdx, fs.setPressure(gasPhaseIdx,
context.volVars(spaceIdx, timeIdx).fluidState().pressure( context.intensiveQuantities(spaceIdx, timeIdx).fluidState().pressure(
gasPhaseIdx)); gasPhaseIdx));
fs.setTemperature(temperature(context, spaceIdx, timeIdx)); fs.setTemperature(temperature(context, spaceIdx, timeIdx));
typename FluidSystem::ParameterCache paramCache; typename FluidSystem::ParameterCache paramCache;
@ -478,7 +478,7 @@ public:
// \} // \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{
@ -537,8 +537,7 @@ private:
Scalar pl = 1e5 - densityL * this->gravity()[dim - 1] * depth; Scalar pl = 1e5 - densityL * this->gravity()[dim - 1] * depth;
Scalar pC[numPhases]; Scalar pC[numPhases];
const auto &matParams const auto &matParams = this->materialLawParams(context, spaceIdx, timeIdx);
= this->materialLawParams(context, spaceIdx, timeIdx);
MaterialLaw::capillaryPressures(pC, matParams, fs); MaterialLaw::capillaryPressures(pC, matParams, fs);
fs.setPressure(liquidPhaseIdx, pl + (pC[liquidPhaseIdx] - pC[liquidPhaseIdx])); fs.setPressure(liquidPhaseIdx, pl + (pC[liquidPhaseIdx] - pC[liquidPhaseIdx]));

View File

@ -379,19 +379,18 @@ public:
// the injection fluid state // the injection fluid state
Scalar molarInjectionRate = 0.3435; // [mol/(m^2 s)] Scalar molarInjectionRate = 0.3435; // [mol/(m^2 s)]
for (int compIdx = 0; compIdx < numComponents; ++compIdx) for (int compIdx = 0; compIdx < numComponents; ++compIdx)
molarRate[conti0EqIdx + compIdx] molarRate[conti0EqIdx + compIdx] =
= -molarInjectionRate -molarInjectionRate
* injectFluidState_.moleFraction(gasPhaseIdx, compIdx); * injectFluidState_.moleFraction(gasPhaseIdx, compIdx);
// calculate the total mass injection rate [kg / (m^2 s) // calculate the total mass injection rate [kg / (m^2 s)
Scalar massInjectionRate Scalar massInjectionRate =
= molarInjectionRate molarInjectionRate
* injectFluidState_.averageMolarMass(gasPhaseIdx); * injectFluidState_.averageMolarMass(gasPhaseIdx);
// set the boundary rate vector // set the boundary rate vector [J / (m^2 s)]
values.setMolarRate(molarRate); values.setMolarRate(molarRate);
values.setEnthalpyRate(-injectFluidState_.enthalpy(gasPhaseIdx) values.setEnthalpyRate(-injectFluidState_.enthalpy(gasPhaseIdx) * massInjectionRate);
* massInjectionRate); // [J / (m^2 s)]
} }
else else
values.setNoFlow(); values.setNoFlow();
@ -400,7 +399,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{
@ -477,8 +476,7 @@ private:
fs.setSaturation(gasPhaseIdx, 1 - 0.12 - 0.07); fs.setSaturation(gasPhaseIdx, 1 - 0.12 - 0.07);
// set the capillary pressures // set the capillary pressures
const auto &matParams const auto &matParams = materialLawParams(context, spaceIdx, timeIdx);
= materialLawParams(context, spaceIdx, timeIdx);
Scalar pc[numPhases]; Scalar pc[numPhases];
MaterialLaw::capillaryPressures(pc, matParams, fs); MaterialLaw::capillaryPressures(pc, matParams, fs);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
@ -496,8 +494,7 @@ private:
fs.setSaturation(naplPhaseIdx, 0); fs.setSaturation(naplPhaseIdx, 0);
// set the capillary pressures // set the capillary pressures
const auto &matParams const auto &matParams = materialLawParams(context, spaceIdx, timeIdx);
= materialLawParams(context, spaceIdx, timeIdx);
Scalar pc[numPhases]; Scalar pc[numPhases];
MaterialLaw::capillaryPressures(pc, matParams, fs); MaterialLaw::capillaryPressures(pc, matParams, fs);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
@ -549,10 +546,11 @@ private:
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) { for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
Scalar lambdaSaturated; Scalar lambdaSaturated;
if (FluidSystem::isLiquid(phaseIdx)) { if (FluidSystem::isLiquid(phaseIdx)) {
Scalar lambdaFluid Scalar lambdaFluid = FluidSystem::thermalConductivity(fs, paramCache, phaseIdx);
= FluidSystem::thermalConductivity(fs, paramCache, phaseIdx); lambdaSaturated =
lambdaSaturated = std::pow(lambdaGranite, (1 - poro)) std::pow(lambdaGranite, (1 - poro))
+ std::pow(lambdaFluid, poro); +
std::pow(lambdaFluid, poro);
} }
else else
lambdaSaturated = std::pow(lambdaGranite, (1 - poro)); lambdaSaturated = std::pow(lambdaGranite, (1 - poro));
@ -578,8 +576,7 @@ private:
typename FluidSystem::ParameterCache paramCache; typename FluidSystem::ParameterCache paramCache;
paramCache.updatePhase(injectFluidState_, gasPhaseIdx); paramCache.updatePhase(injectFluidState_, gasPhaseIdx);
Scalar h Scalar h = FluidSystem::enthalpy(injectFluidState_, paramCache, gasPhaseIdx);
= FluidSystem::enthalpy(injectFluidState_, paramCache, gasPhaseIdx);
injectFluidState_.setEnthalpy(gasPhaseIdx, h); injectFluidState_.setEnthalpy(gasPhaseIdx, h);
} }

View File

@ -249,7 +249,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{

View File

@ -359,7 +359,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{

View File

@ -272,8 +272,7 @@ public:
elemCtx.updateAll(*elemIt); elemCtx.updateAll(*elemIt);
for (int scvIdx = 0; scvIdx < elemCtx.numDof(/*timeIdx=*/0); ++scvIdx) { for (int scvIdx = 0; scvIdx < elemCtx.numDof(/*timeIdx=*/0); ++scvIdx) {
int globalIdx = elemCtx.globalSpaceIndex(scvIdx, /*timeIdx=*/0); int globalIdx = elemCtx.globalSpaceIndex(scvIdx, /*timeIdx=*/0);
const auto &fs const auto &fs = elemCtx.intensiveQuantities(scvIdx, /*timeIdx=*/0).fluidState();
= elemCtx.volVars(scvIdx, /*timeIdx=*/0).fluidState();
ParkerLenhard::update(materialParams_[globalIdx], fs); ParkerLenhard::update(materialParams_[globalIdx], fs);
} }
} }
@ -355,7 +354,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{

View File

@ -443,7 +443,7 @@ public:
// \} // \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
// \{ // \{
@ -559,9 +559,9 @@ private:
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) { for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
Scalar lambdaSaturated; Scalar lambdaSaturated;
if (FluidSystem::isLiquid(phaseIdx)) { if (FluidSystem::isLiquid(phaseIdx)) {
Scalar lambdaFluid Scalar lambdaFluid = FluidSystem::thermalConductivity(fs, paramCache, phaseIdx);
= FluidSystem::thermalConductivity(fs, paramCache, phaseIdx); lambdaSaturated =
lambdaSaturated = std::pow(lambdaGranite, (1 - poro)) std::pow(lambdaGranite, (1 - poro))
+ std::pow(lambdaFluid, poro); + std::pow(lambdaFluid, poro);
} }
else else

View File

@ -164,16 +164,12 @@ public:
lensUpperRight_[0] = EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightX); lensUpperRight_[0] = EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightX);
if (dim > 1) if (dim > 1)
lensUpperRight_[1] lensUpperRight_[1] = EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightY);
= EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightY);
if (dim > 2) if (dim > 2)
lensUpperRight_[2] lensUpperRight_[2] = EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightY);
= EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightY);
intrinsicPerm_ intrinsicPerm_ = this->toDimMatrix_(EWOMS_GET_PARAM(TypeTag, Scalar, Permeability));
= this->toDimMatrix_(EWOMS_GET_PARAM(TypeTag, Scalar, Permeability)); intrinsicPermLens_ = this->toDimMatrix_(EWOMS_GET_PARAM(TypeTag, Scalar, PermeabilityLens));
intrinsicPermLens_ = this->toDimMatrix_(
EWOMS_GET_PARAM(TypeTag, Scalar, PermeabilityLens));
} }
/*! /*!
@ -296,7 +292,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{

View File

@ -328,7 +328,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{

View File

@ -139,9 +139,7 @@ public:
cellRes[2] = EWOMS_GET_PARAM(TypeTag, int, CellsZ); cellRes[2] = EWOMS_GET_PARAM(TypeTag, int, CellsZ);
} }
unsigned numRefinements unsigned numRefinements = EWOMS_GET_PARAM(TypeTag, unsigned, GridGlobalRefinements);
= EWOMS_GET_PARAM(TypeTag, unsigned, GridGlobalRefinements);
gridPtr_.reset(new Dune::YaspGrid<dim>( gridPtr_.reset(new Dune::YaspGrid<dim>(
#ifdef HAVE_MPI #ifdef HAVE_MPI
/*mpiCommunicator=*/Dune::MPIHelper::getCommunicator(), /*mpiCommunicator=*/Dune::MPIHelper::getCommunicator(),

View File

@ -230,8 +230,7 @@ public:
if (dimWorld == 3) { if (dimWorld == 3) {
lensLowerLeft_[2] = EWOMS_GET_PARAM(TypeTag, Scalar, LensLowerLeftZ); lensLowerLeft_[2] = EWOMS_GET_PARAM(TypeTag, Scalar, LensLowerLeftZ);
lensUpperRight_[2] lensUpperRight_[2] = EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightZ);
= EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightZ);
} }
// parameters for the Van Genuchten law // parameters for the Van Genuchten law
@ -380,8 +379,7 @@ public:
if (onLeftBoundary_(pos) || onRightBoundary_(pos)) { if (onLeftBoundary_(pos) || onRightBoundary_(pos)) {
// free flow boundary // free flow boundary
Scalar densityW Scalar densityW = WettingPhase::density(temperature_, /*pressure=*/1e5);
= WettingPhase::density(temperature_, /*pressure=*/1e5);
Scalar T = temperature(context, spaceIdx, timeIdx); Scalar T = temperature(context, spaceIdx, timeIdx);
Scalar pw, Sw; Scalar pw, Sw;
@ -405,8 +403,7 @@ public:
} }
// specify a full fluid state using pw and Sw // specify a full fluid state using pw and Sw
const MaterialLawParams &matParams const MaterialLawParams &matParams = this->materialLawParams(context, spaceIdx, timeIdx);
= this->materialLawParams(context, spaceIdx, timeIdx);
Opm::ImmiscibleFluidState<Scalar, FluidSystem, Opm::ImmiscibleFluidState<Scalar, FluidSystem,
/*storeEnthalpy=*/false> fs; /*storeEnthalpy=*/false> fs;
@ -439,7 +436,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{
@ -470,8 +467,7 @@ public:
Scalar pw = 1e5 - densityW * this->gravity()[1] * depth; Scalar pw = 1e5 - densityW * this->gravity()[1] * depth;
// calculate the capillary pressure // calculate the capillary pressure
const MaterialLawParams &matParams const MaterialLawParams &matParams = this->materialLawParams(context, spaceIdx, timeIdx);
= this->materialLawParams(context, spaceIdx, timeIdx);
Scalar pC[numPhases]; Scalar pC[numPhases];
MaterialLaw::capillaryPressures(pC, matParams, fs); MaterialLaw::capillaryPressures(pC, matParams, fs);

View File

@ -182,7 +182,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{

View File

@ -376,7 +376,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{

View File

@ -248,7 +248,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{

View File

@ -322,7 +322,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{

View File

@ -178,8 +178,8 @@ public:
maxDepth_ = EWOMS_GET_PARAM(TypeTag, Scalar, MaxDepth); maxDepth_ = EWOMS_GET_PARAM(TypeTag, Scalar, MaxDepth);
FluidSystem::initBegin(); FluidSystem::initBegin();
std::vector<std::pair<Scalar, Scalar> > Bg std::vector<std::pair<Scalar, Scalar> > Bg =
= { { 1.013529e+05, 9.998450e-01 }, { { 1.013529e+05, 9.998450e-01 },
{ 2.757903e+06, 3.075500e-02 }, { 2.757903e+06, 3.075500e-02 },
{ 5.515806e+06, 1.537947e-02 }, { 5.515806e+06, 1.537947e-02 },
{ 8.273709e+06, 1.021742e-02 }, { 8.273709e+06, 1.021742e-02 },
@ -190,8 +190,8 @@ public:
{ 2.206322e+07, 3.857780e-03 }, { 2.206322e+07, 3.857780e-03 },
{ 2.482113e+07, 3.388401e-03 }, { 2.482113e+07, 3.388401e-03 },
{ 2.757903e+07, 3.049842e-03 } }; { 2.757903e+07, 3.049842e-03 } };
std::vector<std::pair<Scalar, Scalar> > Bo std::vector<std::pair<Scalar, Scalar> > Bo =
= { { 1.013529e+05, 1.000000e+00 }, { { 1.013529e+05, 1.000000e+00 },
{ 2.757903e+06, 1.012000e+00 }, { 2.757903e+06, 1.012000e+00 },
{ 5.515806e+06, 1.025500e+00 }, { 5.515806e+06, 1.025500e+00 },
{ 8.273709e+06, 1.038000e+00 }, { 8.273709e+06, 1.038000e+00 },
@ -202,8 +202,8 @@ public:
{ 2.206322e+07, 1.098500e+00 }, { 2.206322e+07, 1.098500e+00 },
{ 2.482113e+07, 1.110000e+00 }, { 2.482113e+07, 1.110000e+00 },
{ 2.757903e+07, 1.120000e+00 } }; { 2.757903e+07, 1.120000e+00 } };
std::vector<std::pair<Scalar, Scalar> > Rs std::vector<std::pair<Scalar, Scalar> > Rs =
= { { 1.013529e+05, 0.000000e+00 }, { { 1.013529e+05, 0.000000e+00 },
{ 2.757903e+06, 2.938776e+01 }, { 2.757903e+06, 2.938776e+01 },
{ 5.515806e+06, 5.966605e+01 }, { 5.515806e+06, 5.966605e+01 },
{ 8.273709e+06, 8.905380e+01 }, { 8.273709e+06, 8.905380e+01 },
@ -214,8 +214,8 @@ public:
{ 2.206322e+07, 2.261967e+02 }, { 2.206322e+07, 2.261967e+02 },
{ 2.482113e+07, 2.475696e+02 }, { 2.482113e+07, 2.475696e+02 },
{ 2.757903e+07, 2.671614e+02 } }; { 2.757903e+07, 2.671614e+02 } };
std::vector<std::pair<Scalar, Scalar> > muo std::vector<std::pair<Scalar, Scalar> > muo =
= { { 1.013529e+05, 1.200000e-03 }, { { 1.013529e+05, 1.200000e-03 },
{ 2.757903e+06, 1.170000e-03 }, { 2.757903e+06, 1.170000e-03 },
{ 5.515806e+06, 1.140000e-03 }, { 5.515806e+06, 1.140000e-03 },
{ 8.273709e+06, 1.110000e-03 }, { 8.273709e+06, 1.110000e-03 },
@ -226,8 +226,8 @@ public:
{ 2.206322e+07, 9.800000e-04 }, { 2.206322e+07, 9.800000e-04 },
{ 2.482113e+07, 9.500000e-04 }, { 2.482113e+07, 9.500000e-04 },
{ 2.757903e+07, 9.400000e-04 } }; { 2.757903e+07, 9.400000e-04 } };
std::vector<std::pair<Scalar, Scalar> > mug std::vector<std::pair<Scalar, Scalar> > mug =
= { { 1.013529e+05, 1.250000e-05 }, { { 1.013529e+05, 1.250000e-05 },
{ 2.757903e+06, 1.300000e-05 }, { 2.757903e+06, 1.300000e-05 },
{ 5.515806e+06, 1.350000e-05 }, { 5.515806e+06, 1.350000e-05 },
{ 8.273709e+06, 1.400000e-05 }, { 8.273709e+06, 1.400000e-05 },
@ -382,7 +382,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{

View File

@ -294,8 +294,7 @@ public:
const auto &pos = context.pos(spaceIdx, timeIdx); const auto &pos = context.pos(spaceIdx, timeIdx);
if (onLeftBoundary_(pos) || onRightBoundary_(pos)) { if (onLeftBoundary_(pos) || onRightBoundary_(pos)) {
const auto &materialParams const auto &materialParams = this->materialLawParams(context, spaceIdx, timeIdx);
= this->materialLawParams(context, spaceIdx, timeIdx);
Scalar Sw = 0.0; Scalar Sw = 0.0;
Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs; Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs;
@ -324,7 +323,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{
@ -337,8 +336,7 @@ public:
int spaceIdx, int spaceIdx,
int timeIdx) const int timeIdx) const
{ {
const auto &materialParams const auto &materialParams = this->materialLawParams(context, spaceIdx, timeIdx);
= this->materialLawParams(context, spaceIdx, timeIdx);
Scalar Sw = 0.0; Scalar Sw = 0.0;
Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs; Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs;

View File

@ -185,7 +185,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{
@ -205,10 +205,12 @@ public:
// parabolic profile // parabolic profile
const Scalar v1 = 1.0; const Scalar v1 = 1.0;
values[velocity0Idx + 1] values[velocity0Idx + 1] =
= -v1 * (globalPos[0] - this->boundingBoxMin()[0]) - v1
* (globalPos[0] - this->boundingBoxMin()[0])
* (this->boundingBoxMax()[0] - globalPos[0]) * (this->boundingBoxMax()[0] - globalPos[0])
/ (0.25 * (this->boundingBoxMax()[0] - this->boundingBoxMin()[0]) / (0.25
* (this->boundingBoxMax()[0] - this->boundingBoxMin()[0])
* (this->boundingBoxMax()[0] - this->boundingBoxMin()[0])); * (this->boundingBoxMax()[0] - this->boundingBoxMin()[0]));
Scalar moleFrac[numComponents]; Scalar moleFrac[numComponents];

View File

@ -186,7 +186,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
// \{ // \{

View File

@ -200,7 +200,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{

View File

@ -390,7 +390,7 @@ public:
//! \} //! \}
/*! /*!
* \name Volume terms * \name Volumetric terms
*/ */
//! \{ //! \{
@ -413,8 +413,8 @@ public:
/*! /*!
* \copydoc VcfvProblem::constraints * \copydoc VcfvProblem::constraints
* *
* In this problem, constraints are used to keep the temperature * In this problem, constraints are used to keep the temperature of the degrees of
* of the finite-volumes which are closest to the inlet constant. * freedom which are closest to the inlet constant.
*/ */
template <class Context> template <class Context>
void constraints(Constraints &constraints, void constraints(Constraints &constraints,

View File

@ -218,8 +218,7 @@ public:
const auto &pos = context.pos(spaceIdx, timeIdx); const auto &pos = context.pos(spaceIdx, timeIdx);
if (pos[0] < eps_) { if (pos[0] < eps_) {
// Free-flow conditions on left boundary // Free-flow conditions on left boundary
const auto &materialParams const auto &materialParams = this->materialLawParams(context, spaceIdx, timeIdx);
= this->materialLawParams(context, spaceIdx, timeIdx);
Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs; Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs;
Scalar Sw = 1.0; Scalar Sw = 1.0;