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;
fs.setSaturation(gasPhaseIdx, 1.0);
fs.setPressure(gasPhaseIdx,
context.volVars(spaceIdx, timeIdx).fluidState().pressure(
context.intensiveQuantities(spaceIdx, timeIdx).fluidState().pressure(
gasPhaseIdx));
fs.setTemperature(temperature(context, spaceIdx, timeIdx));
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 pC[numPhases];
const auto &matParams
= this->materialLawParams(context, spaceIdx, timeIdx);
const auto &matParams = this->materialLawParams(context, spaceIdx, timeIdx);
MaterialLaw::capillaryPressures(pC, matParams, fs);
fs.setPressure(liquidPhaseIdx, pl + (pC[liquidPhaseIdx] - pC[liquidPhaseIdx]));

View File

@ -379,19 +379,18 @@ public:
// the injection fluid state
Scalar molarInjectionRate = 0.3435; // [mol/(m^2 s)]
for (int compIdx = 0; compIdx < numComponents; ++compIdx)
molarRate[conti0EqIdx + compIdx]
= -molarInjectionRate
* injectFluidState_.moleFraction(gasPhaseIdx, compIdx);
molarRate[conti0EqIdx + compIdx] =
-molarInjectionRate
* injectFluidState_.moleFraction(gasPhaseIdx, compIdx);
// calculate the total mass injection rate [kg / (m^2 s)
Scalar massInjectionRate
= molarInjectionRate
* injectFluidState_.averageMolarMass(gasPhaseIdx);
Scalar massInjectionRate =
molarInjectionRate
* injectFluidState_.averageMolarMass(gasPhaseIdx);
// set the boundary rate vector
// set the boundary rate vector [J / (m^2 s)]
values.setMolarRate(molarRate);
values.setEnthalpyRate(-injectFluidState_.enthalpy(gasPhaseIdx)
* massInjectionRate); // [J / (m^2 s)]
values.setEnthalpyRate(-injectFluidState_.enthalpy(gasPhaseIdx) * massInjectionRate);
}
else
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);
// set the capillary pressures
const auto &matParams
= materialLawParams(context, spaceIdx, timeIdx);
const auto &matParams = materialLawParams(context, spaceIdx, timeIdx);
Scalar pc[numPhases];
MaterialLaw::capillaryPressures(pc, matParams, fs);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
@ -496,8 +494,7 @@ private:
fs.setSaturation(naplPhaseIdx, 0);
// set the capillary pressures
const auto &matParams
= materialLawParams(context, spaceIdx, timeIdx);
const auto &matParams = materialLawParams(context, spaceIdx, timeIdx);
Scalar pc[numPhases];
MaterialLaw::capillaryPressures(pc, matParams, fs);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
@ -549,10 +546,11 @@ private:
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
Scalar lambdaSaturated;
if (FluidSystem::isLiquid(phaseIdx)) {
Scalar lambdaFluid
= FluidSystem::thermalConductivity(fs, paramCache, phaseIdx);
lambdaSaturated = std::pow(lambdaGranite, (1 - poro))
+ std::pow(lambdaFluid, poro);
Scalar lambdaFluid = FluidSystem::thermalConductivity(fs, paramCache, phaseIdx);
lambdaSaturated =
std::pow(lambdaGranite, (1 - poro))
+
std::pow(lambdaFluid, poro);
}
else
lambdaSaturated = std::pow(lambdaGranite, (1 - poro));
@ -578,8 +576,7 @@ private:
typename FluidSystem::ParameterCache paramCache;
paramCache.updatePhase(injectFluidState_, gasPhaseIdx);
Scalar h
= FluidSystem::enthalpy(injectFluidState_, paramCache, gasPhaseIdx);
Scalar h = FluidSystem::enthalpy(injectFluidState_, paramCache, gasPhaseIdx);
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);
for (int scvIdx = 0; scvIdx < elemCtx.numDof(/*timeIdx=*/0); ++scvIdx) {
int globalIdx = elemCtx.globalSpaceIndex(scvIdx, /*timeIdx=*/0);
const auto &fs
= elemCtx.volVars(scvIdx, /*timeIdx=*/0).fluidState();
const auto &fs = elemCtx.intensiveQuantities(scvIdx, /*timeIdx=*/0).fluidState();
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,10 +559,10 @@ private:
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
Scalar lambdaSaturated;
if (FluidSystem::isLiquid(phaseIdx)) {
Scalar lambdaFluid
= FluidSystem::thermalConductivity(fs, paramCache, phaseIdx);
lambdaSaturated = std::pow(lambdaGranite, (1 - poro))
+ std::pow(lambdaFluid, poro);
Scalar lambdaFluid = FluidSystem::thermalConductivity(fs, paramCache, phaseIdx);
lambdaSaturated =
std::pow(lambdaGranite, (1 - poro))
+ std::pow(lambdaFluid, poro);
}
else
lambdaSaturated = std::pow(lambdaGranite, (1 - poro));

View File

@ -164,16 +164,12 @@ public:
lensUpperRight_[0] = EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightX);
if (dim > 1)
lensUpperRight_[1]
= EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightY);
lensUpperRight_[1] = EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightY);
if (dim > 2)
lensUpperRight_[2]
= EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightY);
lensUpperRight_[2] = EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightY);
intrinsicPerm_
= this->toDimMatrix_(EWOMS_GET_PARAM(TypeTag, Scalar, Permeability));
intrinsicPermLens_ = this->toDimMatrix_(
EWOMS_GET_PARAM(TypeTag, Scalar, PermeabilityLens));
intrinsicPerm_ = this->toDimMatrix_(EWOMS_GET_PARAM(TypeTag, Scalar, Permeability));
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);
}
unsigned numRefinements
= EWOMS_GET_PARAM(TypeTag, unsigned, GridGlobalRefinements);
unsigned numRefinements = EWOMS_GET_PARAM(TypeTag, unsigned, GridGlobalRefinements);
gridPtr_.reset(new Dune::YaspGrid<dim>(
#ifdef HAVE_MPI
/*mpiCommunicator=*/Dune::MPIHelper::getCommunicator(),

View File

@ -230,8 +230,7 @@ public:
if (dimWorld == 3) {
lensLowerLeft_[2] = EWOMS_GET_PARAM(TypeTag, Scalar, LensLowerLeftZ);
lensUpperRight_[2]
= EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightZ);
lensUpperRight_[2] = EWOMS_GET_PARAM(TypeTag, Scalar, LensUpperRightZ);
}
// parameters for the Van Genuchten law
@ -380,8 +379,7 @@ public:
if (onLeftBoundary_(pos) || onRightBoundary_(pos)) {
// free flow boundary
Scalar densityW
= WettingPhase::density(temperature_, /*pressure=*/1e5);
Scalar densityW = WettingPhase::density(temperature_, /*pressure=*/1e5);
Scalar T = temperature(context, spaceIdx, timeIdx);
Scalar pw, Sw;
@ -405,8 +403,7 @@ public:
}
// specify a full fluid state using pw and Sw
const MaterialLawParams &matParams
= this->materialLawParams(context, spaceIdx, timeIdx);
const MaterialLawParams &matParams = this->materialLawParams(context, spaceIdx, timeIdx);
Opm::ImmiscibleFluidState<Scalar, FluidSystem,
/*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;
// calculate the capillary pressure
const MaterialLawParams &matParams
= this->materialLawParams(context, spaceIdx, timeIdx);
const MaterialLawParams &matParams = this->materialLawParams(context, spaceIdx, timeIdx);
Scalar pC[numPhases];
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,66 +178,66 @@ public:
maxDepth_ = EWOMS_GET_PARAM(TypeTag, Scalar, MaxDepth);
FluidSystem::initBegin();
std::vector<std::pair<Scalar, Scalar> > Bg
= { { 1.013529e+05, 9.998450e-01 },
{ 2.757903e+06, 3.075500e-02 },
{ 5.515806e+06, 1.537947e-02 },
{ 8.273709e+06, 1.021742e-02 },
{ 1.103161e+07, 7.662783e-03 },
{ 1.378951e+07, 6.151899e-03 },
{ 1.654742e+07, 5.108709e-03 },
{ 1.930532e+07, 4.378814e-03 },
{ 2.206322e+07, 3.857780e-03 },
{ 2.482113e+07, 3.388401e-03 },
{ 2.757903e+07, 3.049842e-03 } };
std::vector<std::pair<Scalar, Scalar> > Bo
= { { 1.013529e+05, 1.000000e+00 },
{ 2.757903e+06, 1.012000e+00 },
{ 5.515806e+06, 1.025500e+00 },
{ 8.273709e+06, 1.038000e+00 },
{ 1.103161e+07, 1.051000e+00 },
{ 1.378951e+07, 1.063000e+00 },
{ 1.654742e+07, 1.075000e+00 },
{ 1.930532e+07, 1.087000e+00 },
{ 2.206322e+07, 1.098500e+00 },
{ 2.482113e+07, 1.110000e+00 },
{ 2.757903e+07, 1.120000e+00 } };
std::vector<std::pair<Scalar, Scalar> > Rs
= { { 1.013529e+05, 0.000000e+00 },
{ 2.757903e+06, 2.938776e+01 },
{ 5.515806e+06, 5.966605e+01 },
{ 8.273709e+06, 8.905380e+01 },
{ 1.103161e+07, 1.184416e+02 },
{ 1.378951e+07, 1.474731e+02 },
{ 1.654742e+07, 1.754360e+02 },
{ 1.930532e+07, 2.012616e+02 },
{ 2.206322e+07, 2.261967e+02 },
{ 2.482113e+07, 2.475696e+02 },
{ 2.757903e+07, 2.671614e+02 } };
std::vector<std::pair<Scalar, Scalar> > muo
= { { 1.013529e+05, 1.200000e-03 },
{ 2.757903e+06, 1.170000e-03 },
{ 5.515806e+06, 1.140000e-03 },
{ 8.273709e+06, 1.110000e-03 },
{ 1.103161e+07, 1.080000e-03 },
{ 1.378951e+07, 1.060000e-03 },
{ 1.654742e+07, 1.030000e-03 },
{ 1.930532e+07, 1.000000e-03 },
{ 2.206322e+07, 9.800000e-04 },
{ 2.482113e+07, 9.500000e-04 },
{ 2.757903e+07, 9.400000e-04 } };
std::vector<std::pair<Scalar, Scalar> > mug
= { { 1.013529e+05, 1.250000e-05 },
{ 2.757903e+06, 1.300000e-05 },
{ 5.515806e+06, 1.350000e-05 },
{ 8.273709e+06, 1.400000e-05 },
{ 1.103161e+07, 1.450000e-05 },
{ 1.378951e+07, 1.500000e-05 },
{ 1.654742e+07, 1.550000e-05 },
{ 1.930532e+07, 1.600000e-05 },
{ 2.206322e+07, 1.650000e-05 },
{ 2.482113e+07, 1.700000e-05 },
{ 2.757903e+07, 1.750000e-05 }, };
std::vector<std::pair<Scalar, Scalar> > Bg =
{ { 1.013529e+05, 9.998450e-01 },
{ 2.757903e+06, 3.075500e-02 },
{ 5.515806e+06, 1.537947e-02 },
{ 8.273709e+06, 1.021742e-02 },
{ 1.103161e+07, 7.662783e-03 },
{ 1.378951e+07, 6.151899e-03 },
{ 1.654742e+07, 5.108709e-03 },
{ 1.930532e+07, 4.378814e-03 },
{ 2.206322e+07, 3.857780e-03 },
{ 2.482113e+07, 3.388401e-03 },
{ 2.757903e+07, 3.049842e-03 } };
std::vector<std::pair<Scalar, Scalar> > Bo =
{ { 1.013529e+05, 1.000000e+00 },
{ 2.757903e+06, 1.012000e+00 },
{ 5.515806e+06, 1.025500e+00 },
{ 8.273709e+06, 1.038000e+00 },
{ 1.103161e+07, 1.051000e+00 },
{ 1.378951e+07, 1.063000e+00 },
{ 1.654742e+07, 1.075000e+00 },
{ 1.930532e+07, 1.087000e+00 },
{ 2.206322e+07, 1.098500e+00 },
{ 2.482113e+07, 1.110000e+00 },
{ 2.757903e+07, 1.120000e+00 } };
std::vector<std::pair<Scalar, Scalar> > Rs =
{ { 1.013529e+05, 0.000000e+00 },
{ 2.757903e+06, 2.938776e+01 },
{ 5.515806e+06, 5.966605e+01 },
{ 8.273709e+06, 8.905380e+01 },
{ 1.103161e+07, 1.184416e+02 },
{ 1.378951e+07, 1.474731e+02 },
{ 1.654742e+07, 1.754360e+02 },
{ 1.930532e+07, 2.012616e+02 },
{ 2.206322e+07, 2.261967e+02 },
{ 2.482113e+07, 2.475696e+02 },
{ 2.757903e+07, 2.671614e+02 } };
std::vector<std::pair<Scalar, Scalar> > muo =
{ { 1.013529e+05, 1.200000e-03 },
{ 2.757903e+06, 1.170000e-03 },
{ 5.515806e+06, 1.140000e-03 },
{ 8.273709e+06, 1.110000e-03 },
{ 1.103161e+07, 1.080000e-03 },
{ 1.378951e+07, 1.060000e-03 },
{ 1.654742e+07, 1.030000e-03 },
{ 1.930532e+07, 1.000000e-03 },
{ 2.206322e+07, 9.800000e-04 },
{ 2.482113e+07, 9.500000e-04 },
{ 2.757903e+07, 9.400000e-04 } };
std::vector<std::pair<Scalar, Scalar> > mug =
{ { 1.013529e+05, 1.250000e-05 },
{ 2.757903e+06, 1.300000e-05 },
{ 5.515806e+06, 1.350000e-05 },
{ 8.273709e+06, 1.400000e-05 },
{ 1.103161e+07, 1.450000e-05 },
{ 1.378951e+07, 1.500000e-05 },
{ 1.654742e+07, 1.550000e-05 },
{ 1.930532e+07, 1.600000e-05 },
{ 2.206322e+07, 1.650000e-05 },
{ 2.482113e+07, 1.700000e-05 },
{ 2.757903e+07, 1.750000e-05 }, };
FluidSystem::setGasFormationVolumeFactor(Bg);
FluidSystem::setSaturatedOilFormationVolumeFactor(Bo);
FluidSystem::setSaturatedOilGasDissolutionFactor(Rs);
@ -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);
if (onLeftBoundary_(pos) || onRightBoundary_(pos)) {
const auto &materialParams
= this->materialLawParams(context, spaceIdx, timeIdx);
const auto &materialParams = this->materialLawParams(context, spaceIdx, timeIdx);
Scalar Sw = 0.0;
Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs;
@ -324,7 +323,7 @@ public:
//! \}
/*!
* \name Volume terms
* \name Volumetric terms
*/
//! \{
@ -337,8 +336,7 @@ public:
int spaceIdx,
int timeIdx) const
{
const auto &materialParams
= this->materialLawParams(context, spaceIdx, timeIdx);
const auto &materialParams = this->materialLawParams(context, spaceIdx, timeIdx);
Scalar Sw = 0.0;
Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs;

View File

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

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
*
* In this problem, constraints are used to keep the temperature
* of the finite-volumes which are closest to the inlet constant.
* In this problem, constraints are used to keep the temperature of the degrees of
* freedom which are closest to the inlet constant.
*/
template <class Context>
void constraints(Constraints &constraints,

View File

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