Merge remote-tracking branch 'upstream/master' into PR/ewoms-can-use-dune-fem

This commit is contained in:
Robert Kloefkorn
2016-01-06 16:21:17 -07:00
35 changed files with 21003 additions and 9897 deletions

View File

@@ -140,9 +140,6 @@ SET_BOOL_PROP(Co2InjectionBaseProblem, NewtonWriteConvergence, false);
// Enable gravity
SET_BOOL_PROP(Co2InjectionBaseProblem, EnableGravity, true);
// Reuse linearizations if possible?
SET_BOOL_PROP(Co2InjectionBaseProblem, EnableLinearizationRecycling, true);
// set the defaults for the problem specific properties
SET_SCALAR_PROP(Co2InjectionBaseProblem, FluidSystemPressureLow, 3e7);
SET_SCALAR_PROP(Co2InjectionBaseProblem, FluidSystemPressureHigh, 4e7);
@@ -375,7 +372,7 @@ public:
* \copydoc FvBaseMultiPhaseProblem::temperature
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
if (inHighTemperatureRegion_(pos))
@@ -387,8 +384,8 @@ public:
* \copydoc FvBaseMultiPhaseProblem::intrinsicPermeability
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx,
int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -400,7 +397,7 @@ public:
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -413,7 +410,7 @@ public:
*/
template <class Context>
const MaterialLawParams &materialLawParams(const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -427,8 +424,8 @@ public:
* In this case, we assume the rock-matrix to be granite.
*/
template <class Context>
Scalar heatCapacitySolid(const Context &context, int spaceIdx,
int timeIdx) const
Scalar heatCapacitySolid(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
return 790 // specific heat capacity of granite [J / (kg K)]
* 2700; // density of granite [kg/m^3]
@@ -439,7 +436,7 @@ public:
*/
template <class Context>
const HeatConductionLawParams &
heatConductionParams(const Context &context, int spaceIdx, int timeIdx) const
heatConductionParams(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -459,7 +456,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
@@ -505,8 +502,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
Opm::CompositionalFluidState<Scalar, FluidSystem> fs;
initialFluidState_(fs, context, spaceIdx, timeIdx);
@@ -524,8 +521,8 @@ public:
* everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
//! \}
@@ -533,7 +530,7 @@ public:
private:
template <class Context, class FluidState>
void initialFluidState_(FluidState &fs, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);

View File

@@ -316,15 +316,15 @@ public:
* \copydoc FvBaseMultiPhaseProblem::temperature
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return 293.15; /* [K] */ }
/*!
* \copydoc FvBaseMultiPhaseProblem::intrinsicPermeability
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx,
int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -336,7 +336,7 @@ public:
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -350,7 +350,7 @@ public:
*/
template <class Context>
const MaterialLawParams &materialLawParams(const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -364,15 +364,15 @@ public:
*/
template <class Context>
const HeatConductionLawParams &
heatConductionParams(const Context &context, int spaceIdx, int timeIdx) const
heatConductionParams(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return heatCondParams_; }
/*!
* \copydoc FvBaseMultiPhaseProblem::heatCapacitySolid
*/
template <class Context>
Scalar heatCapacitySolid(const Context &context, int spaceIdx,
int timeIdx) const
Scalar heatCapacitySolid(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
return 850 // specific heat capacity [J / (kg K)]
* 2650; // density of sand [kg/m^3]
@@ -390,7 +390,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
@@ -409,7 +409,7 @@ public:
// inject with the same composition as the gas phase of
// the injection fluid state
Scalar molarInjectionRate = 0.3435; // [mol/(m^2 s)]
for (int compIdx = 0; compIdx < numComponents; ++compIdx)
for (unsigned compIdx = 0; compIdx < numComponents; ++compIdx)
molarRate[conti0EqIdx + compIdx] =
-molarInjectionRate
* injectFluidState_.moleFraction(gasPhaseIdx, compIdx);
@@ -438,8 +438,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
Opm::CompositionalFluidState<Scalar, FluidSystem> fs;
@@ -456,8 +456,8 @@ public:
* everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
//! \}
@@ -493,7 +493,7 @@ private:
template <class FluidState, class Context>
void initialFluidState_(FluidState &fs, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
@@ -510,7 +510,7 @@ private:
const auto &matParams = materialLawParams(context, spaceIdx, timeIdx);
Scalar pc[numPhases];
MaterialLaw::capillaryPressures(pc, matParams, fs);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
fs.setPressure(phaseIdx, pw + (pc[phaseIdx] - pc[waterPhaseIdx]));
// compute the phase compositions
@@ -528,7 +528,7 @@ private:
const auto &matParams = materialLawParams(context, spaceIdx, timeIdx);
Scalar pc[numPhases];
MaterialLaw::capillaryPressures(pc, matParams, fs);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
fs.setPressure(phaseIdx, pw + (pc[phaseIdx] - pc[waterPhaseIdx]));
// compute the phase compositions
@@ -539,17 +539,17 @@ private:
// set the contaminant mole fractions to zero. this is a
// little bit hacky...
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
fs.setMoleFraction(phaseIdx, NAPLIdx, 0.0);
if (phaseIdx == naplPhaseIdx)
continue;
Scalar sumx = 0;
for (int compIdx = 0; compIdx < numComponents; ++compIdx)
for (unsigned compIdx = 0; compIdx < numComponents; ++compIdx)
sumx += fs.moleFraction(phaseIdx, compIdx);
for (int compIdx = 0; compIdx < numComponents; ++compIdx)
for (unsigned compIdx = 0; compIdx < numComponents; ++compIdx)
fs.setMoleFraction(phaseIdx, compIdx,
fs.moleFraction(phaseIdx, compIdx) / sumx);
}
@@ -563,18 +563,18 @@ private:
// create a Fluid state which has all phases present
Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs;
fs.setTemperature(293.15);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
fs.setPressure(phaseIdx, 1.0135e5);
}
typename FluidSystem::ParameterCache paramCache;
paramCache.updateAll(fs);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
Scalar rho = FluidSystem::density(fs, paramCache, phaseIdx);
fs.setDensity(phaseIdx, rho);
}
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
Scalar lambdaSaturated;
if (FluidSystem::isLiquid(phaseIdx)) {
Scalar lambdaFluid = FluidSystem::thermalConductivity(fs, paramCache, phaseIdx);

View File

@@ -235,15 +235,15 @@ public:
* \copydoc FvBaseMultiPhaseProblem::intrinsicPermeability
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx,
int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ return K_; }
/*!
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return 0.35; }
/*!
@@ -251,14 +251,14 @@ public:
*/
template <class Context>
const MaterialLawParams &materialLawParams(const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{ return materialParams_; }
/*!
* \copydoc FvBaseMultiPhaseProblem::temperature
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return temperature_; }
//! \}
@@ -275,7 +275,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{ values.setNoFlow(); }
//! \}
@@ -289,8 +289,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
if (onLeftSide_(pos))
@@ -306,8 +306,8 @@ public:
* everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
//! \}

View File

@@ -332,22 +332,22 @@ public:
* \copydoc FvBaseMultiPhaseProblem::temperature
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return temperature_; }
/*!
* \copydoc FvBaseMultiPhaseProblem::intrinsicPermeability
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx,
int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ return K_; }
/*!
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return 0.4; }
/*!
@@ -366,7 +366,7 @@ public:
*/
template <class Context>
const MaterialLawParams &materialLawParams(const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const auto& entity = context.stencil(timeIdx).entity( spaceIdx );
return materialParams_[ entity ];
@@ -384,7 +384,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
@@ -414,8 +414,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
// assign the primary variables
values.assignNaive(initialFluidState_);
@@ -426,16 +426,16 @@ public:
*/
template <class Context>
void constraints(Constraints &constraints, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (onUpperBoundary_(pos) && !onInlet_(pos)) {
constraints.setAllConstraint();
constraints.setActive(true);
constraints.assignNaive(initialFluidState_);
}
else if (onLowerBoundary_(pos)) {
constraints.setAllConstraint();
constraints.setActive(true);
constraints.assignNaive(initialFluidState_);
}
}
@@ -447,8 +447,8 @@ public:
* everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
//! \}

View File

@@ -26,16 +26,21 @@
#ifndef EWOMS_FRACTURE_PROBLEM_HH
#define EWOMS_FRACTURE_PROBLEM_HH
#include <ewoms/models/discretefracture/discretefracturemodel.hh>
#if HAVE_DUNE_ALUGRID
// avoid reordering of macro elements, otherwise this problem won't work
#define DISABLE_ALUGRID_SFC_ORDERING 1
#include <dune/alugrid/grid.hh>
#include <dune/alugrid/dgf.hh>
#elif HAVE_ALUGRID
#include <dune/grid/alugrid.hh>
#include <dune/grid/io/file/dgfparser/dgfalu.hh>
#else
#include <dune/grid/alugrid.hh>
#include <dune/alugrid/dgf.hh>
#error "No ALUGrid found"
#endif
#include <ewoms/models/discretefracture/discretefracturemodel.hh>
#include <ewoms/io/dgfgridmanager.hh>
#include <opm/material/fluidmatrixinteractions/RegularizedBrooksCorey.hpp>
#include <opm/material/fluidmatrixinteractions/RegularizedVanGenuchten.hpp>
#include <opm/material/fluidmatrixinteractions/LinearMaterial.hpp>
@@ -46,7 +51,6 @@
#include <opm/material/fluidsystems/TwoPhaseImmiscibleFluidSystem.hpp>
#include <opm/material/components/SimpleH2O.hpp>
#include <opm/material/components/Dnapl.hpp>
#include <ewoms/io/artgridmanager.hh>
#include <dune/common/version.hh>
#include <dune/common/fmatrix.hh>
@@ -66,14 +70,14 @@ namespace Properties {
// Create a type tag for the problem
NEW_TYPE_TAG(FractureProblem, INHERITS_FROM(DiscreteFractureModel));
// Set the GridManager property
SET_TYPE_PROP(FractureProblem, GridManager, Ewoms::ArtGridManager<TypeTag>);
// Set the grid type
SET_TYPE_PROP(
FractureProblem, Grid,
Dune::ALUGrid</*dim=*/2, /*dimWorld=*/2, Dune::simplex, Dune::nonconforming>);
// Set the GridManager property
SET_TYPE_PROP(FractureProblem, GridManager, Ewoms::DgfGridManager<TypeTag>);
// Set the problem property
SET_TYPE_PROP(FractureProblem, Problem, Ewoms::FractureProblem<TypeTag>);
@@ -142,7 +146,7 @@ SET_BOOL_PROP(FractureProblem, EnableGravity, false);
SET_BOOL_PROP(FractureProblem, EnableConstraints, true);
// Set the default value for the file name of the grid
SET_STRING_PROP(FractureProblem, GridFile, "data/fracture.art");
SET_STRING_PROP(FractureProblem, GridFile, "data/fracture.art.dgf");
// Set the default value for the end time
SET_SCALAR_PROP(FractureProblem, EndTime, 3e3);
@@ -313,7 +317,7 @@ public:
* \copydoc FvBaseMultiPhaseProblem::temperature
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return temperature_; }
// \}
@@ -327,8 +331,8 @@ public:
* \copydoc FvBaseMultiPhaseProblem::intrinsicPermeability
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx,
int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ return matrixK_; }
/*!
@@ -338,15 +342,15 @@ public:
*/
template <class Context>
const DimMatrix &fractureIntrinsicPermeability(const Context &context,
int spaceIdx,
int timeIdx) const
unsigned spaceIdx,
unsigned timeIdx) const
{ return fractureK_; }
/*!
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return matrixPorosity_; }
/*!
@@ -355,8 +359,8 @@ public:
* \copydoc Doxygen::contextParams
*/
template <class Context>
Scalar fracturePorosity(const Context &context, int spaceIdx,
int timeIdx) const
Scalar fracturePorosity(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ return fracturePorosity_; }
/*!
@@ -364,7 +368,7 @@ public:
*/
template <class Context>
const MaterialLawParams &materialLawParams(const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{ return matrixMaterialParams_; }
/*!
@@ -374,8 +378,8 @@ public:
*/
template <class Context>
const MaterialLawParams &fractureMaterialLawParams(const Context &context,
int spaceIdx,
int timeIdx) const
unsigned spaceIdx,
unsigned timeIdx) const
{ return fractureMaterialParams_; }
/*!
@@ -397,8 +401,8 @@ public:
* \param timeIdx The index used by the time discretization.
*/
template <class Context>
Scalar fractureWidth(const Context &context, int spaceIdx1, int spaceIdx2,
int timeIdx) const
Scalar fractureWidth(const Context &context, unsigned spaceIdx1, unsigned spaceIdx2,
unsigned timeIdx) const
{ return fractureWidth_; }
/*!
@@ -406,7 +410,7 @@ public:
*/
template <class Context>
const HeatConductionLawParams &
heatConductionParams(const Context &context, int spaceIdx, int timeIdx) const
heatConductionParams(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return heatCondParams_; }
/*!
@@ -415,8 +419,8 @@ public:
* In this case, we assume the rock-matrix to be granite.
*/
template <class Context>
Scalar heatCapacitySolid(const Context &context, int spaceIdx,
int timeIdx) const
Scalar heatCapacitySolid(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
return 790 // specific heat capacity of granite [J / (kg K)]
* 2700; // density of granite [kg/m^3]
@@ -434,7 +438,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
@@ -472,7 +476,7 @@ public:
*/
template <class Context>
void constraints(Constraints &constraints, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
@@ -480,7 +484,7 @@ public:
// only impose constraints adjacent to the left boundary
return;
int globalIdx = context.globalSpaceIndex(spaceIdx, timeIdx);
unsigned globalIdx = context.globalSpaceIndex(spaceIdx, timeIdx);
if (!fractureMapper().isFractureVertex(globalIdx)) {
// do not impose constraints if the finite volume does
// not contain fractures.
@@ -491,7 +495,7 @@ public:
// and features a fracture, specify the fracture fluid
// state.
FluidState fractureFluidState;
fractureFluidState.setTemperature(temperature_ + 10);
fractureFluidState.setTemperature(temperature_ + 10.0);
fractureFluidState.setSaturation(wettingPhaseIdx, 1.0);
fractureFluidState.setSaturation(nonWettingPhaseIdx,
@@ -508,7 +512,7 @@ public:
+ (pCFracture[nonWettingPhaseIdx]
- pCFracture[wettingPhaseIdx]));
constraints.setAllConstraint();
constraints.setActive(true);
constraints.assignNaiveFromFracture(fractureFluidState,
matrixMaterialParams_);
}
@@ -517,8 +521,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
FluidState fluidState;
fluidState.setTemperature(temperature_);
@@ -539,8 +543,8 @@ public:
* everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
// \}
@@ -565,18 +569,18 @@ private:
// create a Fluid state which has all phases present
Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs;
fs.setTemperature(293.15);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
fs.setPressure(phaseIdx, 1.0135e5);
}
typename FluidSystem::ParameterCache paramCache;
paramCache.updateAll(fs);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
Scalar rho = FluidSystem::density(fs, paramCache, phaseIdx);
fs.setDensity(phaseIdx, rho);
}
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
Scalar lambdaSaturated;
if (FluidSystem::isLiquid(phaseIdx)) {
Scalar lambdaFluid = FluidSystem::thermalConductivity(fs, paramCache, phaseIdx);

View File

@@ -261,22 +261,22 @@ public:
* \copydoc FvBaseMultiPhaseProblem::temperature
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return 273.15 + 10; } // 10C
/*!
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return 0.4; }
/*!
* \copydoc FvBaseMultiPhaseProblem::intrinsicPermeability
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx,
int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
return isInLens_(context.pos(spaceIdx, timeIdx)) ? intrinsicPermLens_
: intrinsicPerm_;
@@ -293,7 +293,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &globalPos = context.pos(spaceIdx, timeIdx);
@@ -331,8 +331,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
// const GlobalPosition &globalPos = context.pos(spaceIdx, timeIdx);
values[pressure0Idx] = 1.0e+5; // + 9.81*1.23*(20-globalPos[dim-1]);
@@ -342,8 +342,8 @@ public:
* \copydoc FvBaseProblem::source
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
//! \}

View File

@@ -275,15 +275,15 @@ public:
* \copydoc FvBaseMultiPhaseProblem::temperature
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return temperature_; }
/*!
* \copydoc FvBaseMultiPhaseProblem::intrinsicPermeability
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx,
int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -295,7 +295,7 @@ public:
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return porosity_; }
/*!
@@ -303,7 +303,7 @@ public:
*/
template <class Context>
const MaterialLawParams &materialLawParams(const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{ return materialParams_; }
/*!
@@ -312,8 +312,8 @@ public:
* In this case, we assume the rock-matrix to be quartz.
*/
template <class Context>
Scalar heatCapacitySolid(const Context &context, int spaceIdx,
int timeIdx) const
Scalar heatCapacitySolid(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
return 850. // specific heat capacity [J / (kg K)]
* 2650.; // density of sand [kg/m^3]
@@ -331,7 +331,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
@@ -364,8 +364,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
Opm::CompositionalFluidState<Scalar, FluidSystem> fs;
@@ -383,8 +383,8 @@ public:
* everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
//! \}
@@ -407,7 +407,7 @@ private:
template <class FluidState, class Context>
void initialFluidState_(FluidState &fs, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition pos = context.pos(spaceIdx, timeIdx);
Scalar y = pos[1];
@@ -445,7 +445,7 @@ private:
if (onLeftBoundary_(pos))
pg += 10e3;
MaterialLaw::capillaryPressures(pcAll, matParams, fs);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
fs.setPressure(phaseIdx, pg + (pcAll[phaseIdx] - pcAll[gasPhaseIdx]));
// set composition of gas phase

View File

@@ -30,6 +30,8 @@
#include <ewoms/common/parametersystem.hh>
#include <dune/grid/yaspgrid.hh>
#include <dune/grid/io/file/dgfparser/dgfyasp.hh>
#include <dune/common/fvector.hh>
#include <dune/common/version.hh>
@@ -62,6 +64,7 @@ NEW_PROP_TAG(GridGlobalRefinements);
// set the Grid and GridManager properties
SET_TYPE_PROP(LensGridManager, Grid, Dune::YaspGrid<2>);
SET_TYPE_PROP(LensGridManager, GridManager, Ewoms::LensGridManager<TypeTag>);
} // namespace Properties
@@ -115,16 +118,11 @@ public:
LensGridManager(Simulator &simulator)
: ParentType(simulator)
{
#if DUNE_VERSION_NEWER(DUNE_COMMON, 2, 3)
std::bitset<dim> isPeriodic(false);
std::array<int, dim> cellRes;
#else
Dune::FieldVector<bool, dim> isPeriodic(false);
Dune::FieldVector<int, dim> cellRes;
#endif
typedef double GridScalar;
Dune::FieldVector<GridScalar, dim> upperRight;
Dune::FieldVector<GridScalar, dim> lowerLeft( 0 );
upperRight[0] = EWOMS_GET_PARAM(TypeTag, Scalar, DomainSizeX);
upperRight[1] = EWOMS_GET_PARAM(TypeTag, Scalar, DomainSizeY);
@@ -136,18 +134,21 @@ public:
cellRes[2] = EWOMS_GET_PARAM(TypeTag, int, CellsZ);
}
std::stringstream dgffile;
dgffile << "DGF" << std::endl;
dgffile << "INTERVAL" << std::endl;
dgffile << lowerLeft << std::endl;
dgffile << upperRight << std::endl;
dgffile << cellRes << std::endl;
dgffile << "#" << std::endl;
dgffile << "GridParameter" << std::endl;
dgffile << "overlap 1" << std::endl;
dgffile << "#" << std::endl;
// use DGF parser to create a grid from interval block
gridPtr_.reset( Dune::GridPtr< Grid >( dgffile ).release() );
unsigned numRefinements = EWOMS_GET_PARAM(TypeTag, unsigned, GridGlobalRefinements);
#if DUNE_VERSION_NEWER(DUNE_COMMON, 2, 4)
gridPtr_.reset(new Dune::YaspGrid<dim>(upperRight, cellRes));
#else
gridPtr_.reset(new Dune::YaspGrid<dim>(
#ifdef HAVE_MPI
/*mpiCommunicator=*/Dune::MPIHelper::getCommunicator(),
#endif
/*upperRightCorner=*/upperRight,
/*numCells=*/cellRes, isPeriodic,
/*overlap=*/1));
#endif
gridPtr_->globalRefine(numRefinements);
this->finalizeInit_();

View File

@@ -39,6 +39,12 @@
#include <opm/material/components/SimpleH2O.hpp>
#include <opm/material/components/Dnapl.hpp>
//#define LENS_USE_ALUGRID 1
#if LENS_USE_ALUGRID
#include <dune/alugrid/grid.hh>
#include <dune/alugrid/dgf.hh>
#endif
#include <dune/common/version.hh>
#include <dune/common/fvector.hh>
#include <dune/common/fmatrix.hh>
@@ -52,7 +58,11 @@ template <class TypeTag>
class LensProblem;
namespace Properties {
#if LENS_USE_ALUGRID
NEW_TYPE_TAG(LensBaseProblem);
#else
NEW_TYPE_TAG(LensBaseProblem, INHERITS_FROM(LensGridManager));
#endif
// declare the properties specific for the lens problem
NEW_PROP_TAG(LensLowerLeftX);
@@ -85,6 +95,10 @@ public:
typedef Opm::LiquidPhase<Scalar, Opm::DNAPL<Scalar> > type;
};
#if LENS_USE_ALUGRID
SET_TYPE_PROP(LensBaseProblem, Grid, Dune::ALUGrid< 2, 2, Dune::cube, Dune::nonconforming > );
#endif
// Set the material Law
SET_PROP(LensBaseProblem, MaterialLaw)
{
@@ -295,8 +309,8 @@ public:
* \copydoc FvBaseMultiPhaseProblem::intrinsicPermeability
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx,
int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
const GlobalPosition &globalPos = context.pos(spaceIdx, timeIdx);
@@ -309,7 +323,7 @@ public:
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return 0.4; }
/*!
@@ -317,7 +331,7 @@ public:
*/
template <class Context>
const MaterialLawParams &materialLawParams(const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &globalPos = context.pos(spaceIdx, timeIdx);
@@ -330,7 +344,7 @@ public:
* \copydoc FvBaseMultiPhaseProblem::temperature
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return temperature_; }
//! \}
@@ -394,7 +408,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values,
const Context &context, int spaceIdx, int timeIdx) const
const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
@@ -465,7 +479,7 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx, int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
Scalar depth = this->boundingBoxMax()[1] - pos[1];
@@ -506,8 +520,8 @@ public:
* everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
//! \}
@@ -515,7 +529,7 @@ public:
private:
bool isInLens_(const GlobalPosition &pos) const
{
for (int i = 0; i < dim; ++i) {
for (unsigned i = 0; i < dim; ++i) {
if (pos[i] < lensLowerLeft_[i] - eps_ || pos[i] > lensUpperRight_[i]
+ eps_)
return false;

View File

@@ -179,7 +179,7 @@ public:
* This problem assumes a constant temperature of 10 degrees Celsius.
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return 273.15 + 10; }
//! \}
@@ -194,7 +194,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
/* const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
@@ -220,8 +220,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ initial_(values); }
/*!
@@ -231,17 +231,17 @@ public:
*/
template <class Context>
void constraints(Constraints &constraints, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
if (onUpperBoundary_(pos)) {
constraints.setActive(true);
// lid moves from left to right
const Scalar lidVelocity = 1.0;
constraints.setConstraint(momentum0EqIdx, velocity0Idx + 0,
lidVelocity);
constraints.setConstraint(momentum0EqIdx + 1, velocity0Idx + 1, 0);
constraints.setConstraint(conti0EqIdx, pressureIdx, 1e5);
constraints[velocity0Idx + 0] = lidVelocity;
constraints[velocity0Idx + 1] = 0.0;
constraints[pressureIdx + 1] = 1e5;
}
}
@@ -249,8 +249,8 @@ public:
* \copydoc FvBaseProblem::source
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
//! \}

View File

@@ -251,7 +251,7 @@ public:
this->model().checkConservativeness();
// Calculate storage terms of the individual phases
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
PrimaryVariables phaseStorage;
this->model().globalPhaseStorage(phaseStorage, phaseIdx);
@@ -296,15 +296,15 @@ public:
* This problem simply assumes a constant temperature.
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return temperature_; }
/*!
* \copydoc FvBaseMultiPhaseProblem::intrinsicPermeability
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx,
int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
if (isFineMaterial_(context.pos(spaceIdx, timeIdx)))
return fineK_;
@@ -315,7 +315,7 @@ public:
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -329,7 +329,7 @@ public:
*/
template <class Context>
const MaterialLawParams &materialLawParams(const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -345,8 +345,8 @@ public:
* medium is granite.
*/
template <class Context>
Scalar heatCapacitySolid(const Context &context, int spaceIdx,
int timeIdx) const
Scalar heatCapacitySolid(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
return 790 // specific heat capacity of granite [J / (kg K)]
* 2700; // density of granite [kg/m^3]
@@ -357,7 +357,7 @@ public:
*/
template <class Context>
const HeatConductionLawParams &
heatConductionParams(const Context &context, int spaceIdx, int timeIdx) const
heatConductionParams(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -377,7 +377,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
@@ -400,8 +400,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
const auto &matParams = materialLawParams(context, spaceIdx, timeIdx);
values.assignMassConservative(outletFluidState_, matParams);
@@ -414,8 +414,8 @@ public:
* everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = 0.0; }
//! \}
@@ -454,8 +454,8 @@ private:
void initFluidState_(FluidState &fs, const MaterialLawParams &matParams,
bool isInlet)
{
int refPhaseIdx;
int otherPhaseIdx;
unsigned refPhaseIdx;
unsigned otherPhaseIdx;
// set the fluid temperatures
fs.setTemperature(temperature_);

View File

@@ -192,7 +192,7 @@ public:
* This problem assumes a temperature.
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return temperature_; } // in [K]
/*!
@@ -201,8 +201,8 @@ public:
* This problem uses a constant intrinsic permeability.
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx,
int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ return perm_; }
/*!
@@ -211,7 +211,7 @@ public:
* This problem uses a constant porosity.
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return porosity_; }
#if 0
@@ -220,7 +220,7 @@ public:
*
*/
template <class Context>
Scalar tortuosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar tortuosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return tortuosity_; }
/*!
@@ -229,7 +229,7 @@ public:
*/
template <class Context>
Scalar dispersivity(const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{ return 0; }
#endif
@@ -245,7 +245,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &globalPos = context.pos(spaceIdx, timeIdx);
@@ -286,8 +286,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
Opm::CompositionalFluidState<Scalar, FluidSystem, /*storeEnthalpy=*/false> fs;
initialFluidState_(fs, context, spaceIdx, timeIdx);
@@ -302,8 +302,8 @@ public:
* everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
//! \}
@@ -317,7 +317,7 @@ private:
template <class FluidState, class Context>
void initialFluidState_(FluidState &fs, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
Scalar T = temperature(context, spaceIdx, timeIdx);
// Scalar rho = FluidSystem::H2O::liquidDensity(T, /*pressure=*/1.5e5);

View File

@@ -268,23 +268,23 @@ public:
* \copydoc FvBaseMultiPhaseProblem::intrinsicPermeability
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx,
int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ return K_; }
/*!
* \copydoc ForchheimerBaseProblem::ergunCoefficient
*/
template <class Context>
Scalar ergunCoefficient(const Context &context, int spaceIdx,
int timeIdx) const
Scalar ergunCoefficient(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ return 0.3866; }
/*!
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return 0.558; }
/*!
@@ -292,14 +292,14 @@ public:
*/
template <class Context>
const MaterialLawParams &materialLawParams(const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{ return materialParams_; }
/*!
* \copydoc FvBaseMultiPhaseProblem::temperature
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return temperature_; }
//! \}
@@ -317,7 +317,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
@@ -347,8 +347,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
// assign the primary variables
values.assignNaive(initialFluidState_);
@@ -361,8 +361,8 @@ public:
* everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
//! \}

View File

@@ -32,6 +32,8 @@
#include <opm/material/fluidmatrixinteractions/LinearMaterial.hpp>
#include <opm/material/fluidmatrixinteractions/MaterialTraits.hpp>
#include <opm/material/fluidstates/CompositionalFluidState.hpp>
#include <opm/material/fluidsystems/BlackOilFluidSystem.hpp>
#include <opm/material/constraintsolvers/ComputeFromReferencePhase.hpp>
#include <opm/material/fluidsystems/blackoilpvt/DryGasPvt.hpp>
#include <opm/material/fluidsystems/blackoilpvt/LiveOilPvt.hpp>
@@ -50,9 +52,7 @@
namespace Ewoms {
template <class TypeTag>
class ReservoirProblem;
}
namespace Ewoms {
namespace Properties {
NEW_TYPE_TAG(ReservoirBaseProblem);
@@ -61,8 +61,8 @@ NEW_TYPE_TAG(ReservoirBaseProblem);
NEW_PROP_TAG(MaxDepth);
// The temperature inside the reservoir
NEW_PROP_TAG(Temperature);
// The name of the simulation (used for writing VTK files)
NEW_PROP_TAG(SimulationName);
// The width of producer/injector wells as a fraction of the width of the spatial domain
NEW_PROP_TAG(WellWidth);
// Set the grid type
SET_TYPE_PROP(ReservoirBaseProblem, Grid, Dune::YaspGrid<2>);
@@ -93,25 +93,47 @@ SET_BOOL_PROP(ReservoirBaseProblem, NewtonWriteConvergence, false);
// Enable gravity
SET_BOOL_PROP(ReservoirBaseProblem, EnableGravity, true);
// Reuse the last linearization if possible?
SET_BOOL_PROP(ReservoirBaseProblem, EnableLinearizationRecycling, true);
// Enable constraint DOFs?
SET_BOOL_PROP(ReservoirBaseProblem, EnableConstraints, true);
// set the defaults for some problem specific properties
SET_SCALAR_PROP(ReservoirBaseProblem, MaxDepth, 2500);
SET_SCALAR_PROP(ReservoirBaseProblem, Temperature, 293.15);
SET_STRING_PROP(ReservoirBaseProblem, SimulationName, "reservoir");
// The default for the end time of the simulation [s]
SET_SCALAR_PROP(ReservoirBaseProblem, EndTime, 100);
//! The default for the end time of the simulation [s].
//!
//! By default this problem spans 1000 days (100 "settle down" days and 900 days of
//! production)
SET_SCALAR_PROP(ReservoirBaseProblem, EndTime, 1000.0*24*60*60);
// The default for the initial time step size of the simulation [s]
SET_SCALAR_PROP(ReservoirBaseProblem, InitialTimeStepSize, 10);
SET_SCALAR_PROP(ReservoirBaseProblem, InitialTimeStepSize, 100e3);
// The width of producer/injector wells as a fraction of the width of the spatial domain
SET_SCALAR_PROP(ReservoirBaseProblem, WellWidth, 0.01);
/*!
* \brief Explicitly set the fluid system to the black-oil fluid system
*
* If the black oil model is used, this is superfluous because that model already sets
* the FluidSystem property. Setting it explictly for the problem is a good idea anyway,
* though because other models are more generic and thus do not assume a particular fluid
* system.
*/
SET_PROP(ReservoirBaseProblem, FluidSystem)
{
private:
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
public:
typedef Opm::FluidSystems::BlackOil<Scalar> type;
};
// The default DGF file to load
SET_STRING_PROP(ReservoirBaseProblem, GridFile, "data/reservoir.dgf");
// increase the tolerance for this problem to get larger time steps
SET_SCALAR_PROP(ReservoirBaseProblem, NewtonRawTolerance, 1e-4);
} // namespace Properties
/*!
@@ -120,18 +142,15 @@ SET_STRING_PROP(ReservoirBaseProblem, GridFile, "data/reservoir.dgf");
* \brief Some simple test problem for the black-oil VCVF discretization
* inspired by an oil reservoir.
*
* The domain is two-dimensional and exhibits a size of 6000m times
* 60m. Initially, the reservoir is assumed by oil with a bubble point
* pressure of 20 MPa, which also the initial pressure in the
* domain. No-flow boundaries are used for all boundaries. The
* permeability of the lower 10 m is reduced compared to the upper 10
* m of the domain witch capillary pressure always being
* neglected. Three wells are approximated using constraints: Two
* water-injector wells, one at the lower-left boundary one at the
* lower-right boundary and one producer well in the upper part of the
* center of the domain. The pressure for the producer is assumed to
* be 2/3 of the reservoir pressure, the injector wells use a pressure
* which is 50% above the reservoir pressure.
* The domain is two-dimensional and exhibits a size of 6000m times 60m. Initially, the
* reservoir is assumed by oil with a bubble point pressure of 20 MPa, which also the
* initial pressure in the domain. No-flow boundaries are used for all boundaries. The
* permeability of the lower 10 m is reduced compared to the upper 10 m of the domain
* witch capillary pressure always being neglected. Three wells are approximated using
* constraints: Two water-injector wells, one at the lower-left boundary one at the
* lower-right boundary and one producer well in the upper part of the center of the
* domain. The pressure for the producer is assumed to be 2/3 of the reservoir pressure,
* the injector wells use a pressure which is 50% above the reservoir pressure.
*/
template <class TypeTag>
class ReservoirProblem : public GET_PROP_TYPE(TypeTag, BaseProblem)
@@ -140,6 +159,7 @@ class ReservoirProblem : public GET_PROP_TYPE(TypeTag, BaseProblem)
typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
typedef typename GET_PROP_TYPE(TypeTag, Evaluation) Evaluation;
typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
// Grid and world dimension
@@ -156,13 +176,13 @@ class ReservoirProblem : public GET_PROP_TYPE(TypeTag, BaseProblem)
enum { oilCompIdx = FluidSystem::oilCompIdx };
enum { waterCompIdx = FluidSystem::waterCompIdx };
typedef typename GET_PROP_TYPE(TypeTag, Model) Model;
typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
typedef typename GET_PROP_TYPE(TypeTag, EqVector) EqVector;
typedef typename GET_PROP_TYPE(TypeTag, RateVector) RateVector;
typedef typename GET_PROP_TYPE(TypeTag, BoundaryRateVector) BoundaryRateVector;
typedef typename GET_PROP_TYPE(TypeTag, Constraints) Constraints;
typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
typedef typename GET_PROP_TYPE(TypeTag, BlackOilFluidState) BlackOilFluidState;
typedef typename GET_PROP_TYPE(TypeTag, Simulator) Simulator;
typedef typename GET_PROP_TYPE(TypeTag, MaterialLawParams) MaterialLawParams;
@@ -171,6 +191,10 @@ class ReservoirProblem : public GET_PROP_TYPE(TypeTag, BaseProblem)
typedef Dune::FieldMatrix<Scalar, dimWorld, dimWorld> DimMatrix;
typedef Dune::FieldVector<Scalar, numPhases> PhaseVector;
typedef Opm::CompositionalFluidState<Scalar,
FluidSystem,
/*enableEnthalpy=*/true> InitialFluidState;
public:
/*!
* \copydoc Doxygen::defaultProblemConstructor
@@ -186,12 +210,10 @@ public:
{
ParentType::finishInit();
eps_ = 1e-6;
temperature_ = EWOMS_GET_PARAM(TypeTag, Scalar, Temperature);
maxDepth_ = EWOMS_GET_PARAM(TypeTag, Scalar, MaxDepth);
wellWidth_ = EWOMS_GET_PARAM(TypeTag, Scalar, WellWidth);
FluidSystem::initBegin(/*numPvtRegions=*/1);
std::vector<std::pair<Scalar, Scalar> > Bo = {
{ 101353, 1.062 },
{ 1.82504e+06, 1.15 },
@@ -250,35 +272,50 @@ public:
{ 6.21542e+07, 4.7e-05 }
};
FluidSystem::setReferenceDensities(/*oil=*/786,
/*water=*/1037,
/*gas=*/0.97,
/*pvtRegionIdx=*/0);
Scalar rhoRefO = 786.0; // [kg]
Scalar rhoRefG = 0.97; // [kg]
Scalar rhoRefW = 1037.0; // [kg]
FluidSystem::initBegin(/*numPvtRegions=*/1);
FluidSystem::setEnableDissolvedGas(true);
FluidSystem::setEnableVaporizedOil(false);
FluidSystem::setReferenceDensities(rhoRefO, rhoRefW, rhoRefG, /*regionIdx=*/0);
Opm::GasPvtMultiplexer<Scalar> *gasPvt = new Opm::GasPvtMultiplexer<Scalar>;
gasPvt->setApproach(Opm::GasPvtMultiplexer<Scalar>::DryGasPvt);
auto& dryGasPvt = gasPvt->template getRealPvt<Opm::GasPvtMultiplexer<Scalar>::DryGasPvt>();
dryGasPvt.setNumRegions(/*numPvtRegion=*/1);
dryGasPvt.setReferenceDensities(/*regionIdx=*/0, rhoRefO, rhoRefG, rhoRefW);
dryGasPvt.setGasFormationVolumeFactor(/*regionIdx=*/0, Bg);
dryGasPvt.setGasViscosity(/*regionIdx=*/0, mug);
Opm::OilPvtMultiplexer<Scalar> *oilPvt = new Opm::OilPvtMultiplexer<Scalar>;
oilPvt->setApproach(Opm::OilPvtMultiplexer<Scalar>::LiveOilPvt);
auto& liveOilPvt = oilPvt->template getRealPvt<Opm::OilPvtMultiplexer<Scalar>::LiveOilPvt>();
liveOilPvt.setNumRegions(/*numPvtRegion=*/1);
liveOilPvt.setReferenceDensities(/*regionIdx=*/0, rhoRefO, rhoRefG, rhoRefW);
liveOilPvt.setSaturatedOilGasDissolutionFactor(/*regionIdx=*/0, Rs);
liveOilPvt.setSaturatedOilFormationVolumeFactor(/*regionIdx=*/0, Bo);
liveOilPvt.setSaturatedOilViscosity(/*regionIdx=*/0, muo);
Opm::WaterPvtMultiplexer<Scalar> *waterPvt = new Opm::WaterPvtMultiplexer<Scalar>;
waterPvt->setApproach(Opm::WaterPvtMultiplexer<Scalar>::ConstantCompressibilityWaterPvt);
auto& ccWaterPvt = waterPvt->template getRealPvt<Opm::WaterPvtMultiplexer<Scalar>::ConstantCompressibilityWaterPvt>();
ccWaterPvt.setNumRegions(/*numPvtRegions=*/1);
ccWaterPvt.setReferenceDensities(/*regionIdx=*/0, rhoRefO, rhoRefG, rhoRefW);
ccWaterPvt.setViscosity(/*regionIdx=*/0, 9.6e-4);
ccWaterPvt.setCompressibility(/*regionIdx=*/0, 1.450377e-10);
Opm::DryGasPvt<Scalar> *gasPvt = new Opm::DryGasPvt<Scalar>;
gasPvt->setNumRegions(/*numPvtRegion=*/1);
gasPvt->setGasFormationVolumeFactor(/*regionIdx=*/0, Bg);
gasPvt->setGasViscosity(/*regionIdx=*/0, mug);
gasPvt->initEnd();
typedef std::shared_ptr<const Opm::GasPvtInterface<Scalar> > GasPvtSharedPtr;
oilPvt->initEnd();
waterPvt->initEnd();
typedef std::shared_ptr<Opm::GasPvtMultiplexer<Scalar> > GasPvtSharedPtr;
FluidSystem::setGasPvt(GasPvtSharedPtr(gasPvt));
Opm::LiveOilPvt<Scalar> *oilPvt = new Opm::LiveOilPvt<Scalar>;
oilPvt->setNumRegions(/*numPvtRegion=*/1);
oilPvt->setSaturatedOilGasDissolutionFactor(/*regionIdx=*/0, Rs);
oilPvt->setSaturatedOilFormationVolumeFactor(/*regionIdx=*/0, Bo);
oilPvt->setSaturatedOilViscosity(/*regionIdx=*/0, muo);
oilPvt->initEnd();
typedef std::shared_ptr<const Opm::OilPvtInterface<Scalar> > OilPvtSharedPtr;
typedef std::shared_ptr<Opm::OilPvtMultiplexer<Scalar> > OilPvtSharedPtr;
FluidSystem::setOilPvt(OilPvtSharedPtr(oilPvt));
Opm::ConstantCompressibilityWaterPvt<Scalar> *waterPvt =
new Opm::ConstantCompressibilityWaterPvt<Scalar>;
waterPvt->setNumRegions(/*numPvtRegions=*/1);
waterPvt->setViscosity(/*regionIdx=*/0, 9.6e-4);
waterPvt->setCompressibility(/*regionIdx=*/0, 1.450377e-10);
waterPvt->initEnd();
typedef std::shared_ptr<const Opm::WaterPvtInterface<Scalar> > WaterPvtSharedPtr;
typedef std::shared_ptr<Opm::WaterPvtMultiplexer<Scalar> > WaterPvtSharedPtr;
FluidSystem::setWaterPvt(WaterPvtSharedPtr(waterPvt));
FluidSystem::initEnd();
@@ -294,7 +331,7 @@ public:
finePorosity_ = 0.2;
coarsePorosity_ = 0.3;
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
fineMaterialParams_.setPcMinSat(phaseIdx, 0.0);
fineMaterialParams_.setPcMaxSat(phaseIdx, 0.0);
@@ -307,6 +344,9 @@ public:
coarseMaterialParams_.finalize();
initFluidState_();
// start the first ("settle down") episode for 100 days
this->simulator().startNextEpisode(100.0*24*60*60);
}
/*!
@@ -320,16 +360,28 @@ public:
"The temperature [K] in the reservoir");
EWOMS_REGISTER_PARAM(TypeTag, Scalar, MaxDepth,
"The maximum depth [m] of the reservoir");
EWOMS_REGISTER_PARAM(TypeTag, std::string, SimulationName,
"The name of the simulation used for the output "
"files");
EWOMS_REGISTER_PARAM(TypeTag, Scalar, WellWidth,
"The width of producer/injector wells as a fraction of the width"
" of the spatial domain");
}
/*!
* \copydoc FvBaseProblem::name
*/
std::string name() const
{ return EWOMS_GET_PARAM(TypeTag, std::string, SimulationName); }
{ return std::string("reservoir_") + Model::name() + "_" + Model::discretizationName(); }
/*!
* \copydoc FvBaseProblem::endEpisode
*/
void endEpisode()
{
// in the second episode, the actual work is done (the first is "settle down"
// episode). we need to use a pretty short initial time step here as the change
// in conditions is quite abrupt.
this->simulator().startNextEpisode(1e100);
this->simulator().setTimeStepSize(5.0);
}
/*!
* \copydoc FvBaseProblem::endTimeStep
@@ -359,8 +411,8 @@ public:
* above one with low permeability.
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx,
int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -372,7 +424,7 @@ public:
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -385,7 +437,7 @@ public:
*/
template <class Context>
const MaterialLawParams &materialLawParams(const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -408,7 +460,7 @@ public:
* will need it one day?
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return temperature_; }
// \}
@@ -426,7 +478,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
// no flow on top and bottom
values.setNoFlow();
@@ -446,78 +498,39 @@ public:
* the whole domain.
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx, int timeIdx) const
{ values.assignNaive(initialFluidState_); }
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
values.assignNaive(initialFluidState_);
#ifndef NDEBUG
for (unsigned pvIdx = 0; pvIdx < values.size(); ++ pvIdx)
assert(std::isfinite(values[pvIdx]));
#endif
}
/*!
* \copydoc FvBaseProblem::constraints
*
* The reservoir problem places two water-injection wells on the
* lower parts of the left and right edges of the domains and on
* production well in the middle. The injection wells are fully
* water saturated with a higher pressure, the producer is fully
* oil saturated with a lower pressure than the remaining
* reservoir.
* The reservoir problem places two water-injection wells on the lower-left and
* lower-right of the domain and a production well in the middle. The injection wells
* are fully water saturated with a higher pressure, the producer is fully oil
* saturated with a lower pressure than the remaining reservoir.
*/
template <class Context>
void constraints(Constraints &constraints, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
if (this->simulator().episodeIndex() == 1)
return; // no constraints during the "settle down" episode
const auto &pos = context.pos(spaceIdx, timeIdx);
Scalar x = pos[0] - this->boundingBoxMin()[0];
Scalar y = pos[dim - 1] - this->boundingBoxMin()[dim - 1];
Scalar height = this->boundingBoxMax()[dim - 1] - this->boundingBoxMin()[dim - 1];
Scalar width = this->boundingBoxMax()[0] - this->boundingBoxMin()[0];
if ((onLeftBoundary_(pos) || onRightBoundary_(pos)) && y < height / 2) {
// injectors
auto fs = initialFluidState_;
Scalar pInj = pReservoir_ * 1.5;
fs.setPressure(waterPhaseIdx, pInj);
fs.setPressure(oilPhaseIdx, pInj);
fs.setPressure(gasPhaseIdx, pInj);
fs.setSaturation(waterPhaseIdx, 1.0);
fs.setSaturation(oilPhaseIdx, 0.0);
fs.setSaturation(gasPhaseIdx, 0.0);
// set the compositions to only water
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
for (int compIdx = 0; compIdx < numComponents; ++compIdx)
fs.setMoleFraction(phaseIdx, compIdx, 0.0);
// set the composition of the oil phase to the initial
// composition
for (int compIdx = 0; compIdx < numComponents; ++compIdx)
fs.setMoleFraction(oilPhaseIdx, compIdx,
initialFluidState_.moleFraction(oilPhaseIdx,
compIdx));
fs.setMoleFraction(waterPhaseIdx, waterCompIdx, 1.0);
constraints.setAllConstraint();
constraints.assignNaive(fs);
if (isInjector_(pos)) {
constraints.setActive(true);
constraints.assignNaive(injectorFluidState_);
}
else if (width / 2 - 1 < x && x < width / 2 + 1 && y > height / 2) {
// producer
auto fs = initialFluidState_;
Scalar pProd = pReservoir_ / 1.5;
fs.setPressure(waterPhaseIdx, pProd);
fs.setPressure(oilPhaseIdx, pProd);
fs.setPressure(gasPhaseIdx, pProd);
fs.setSaturation(waterPhaseIdx, 0.0);
fs.setSaturation(oilPhaseIdx, 1.0);
fs.setSaturation(gasPhaseIdx, 0.0);
// set the compositions to the initial composition
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
for (int compIdx = 0; compIdx < numComponents; ++compIdx)
fs.setMoleFraction(phaseIdx, compIdx,
initialFluidState_.moleFraction(phaseIdx,
compIdx));
constraints.setAllConstraint();
constraints.assignNaive(fs);
else if (isProducer_(pos)) {
constraints.setActive(true);
constraints.assignNaive(producerFluidState_);
}
}
@@ -527,8 +540,8 @@ public:
* For this problem, the source term of all components is 0 everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
//! \}
@@ -564,8 +577,8 @@ private:
fs.setPressure(gasPhaseIdx, pw + (pC[gasPhaseIdx] - pC[waterPhaseIdx]));
// reset all mole fractions to 0
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
for (int compIdx = 0; compIdx < numComponents; ++compIdx)
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
for (unsigned compIdx = 0; compIdx < numComponents; ++compIdx)
fs.setMoleFraction(phaseIdx, compIdx, 0.0);
//////
@@ -577,25 +590,100 @@ private:
//////
// set composition of the oil phase
//////
Scalar xoG = 0.95*FluidSystem::saturatedOilGasMoleFraction(temperature_,
fs.pressure(oilPhaseIdx),
/*pvtRegionIdx=*/0);
Scalar xoO = 1 - xoG;
Scalar RsSat =
FluidSystem::saturatedDissolutionFactor(fs, oilPhaseIdx, /*pvtRegionIdx=*/0);
Scalar XoGSat = FluidSystem::convertRsToXoG(RsSat, /*pvtRegionIdx=*/0);
Scalar xoGSat = FluidSystem::convertXoGToxoG(XoGSat, /*pvtRegionIdx=*/0);
Scalar xoG = 0.95*xoGSat;
Scalar xoO = 1.0 - xoG;
// finally set the oil-phase composition
fs.setMoleFraction(oilPhaseIdx, gasCompIdx, xoG);
fs.setMoleFraction(oilPhaseIdx, oilCompIdx, xoO);
typedef Opm::ComputeFromReferencePhase<Scalar, FluidSystem> CFRP;
typename FluidSystem::ParameterCache paramCache;
CFRP::solve(fs,
paramCache,
/*refPhaseIdx=*/oilPhaseIdx,
/*setViscosities=*/false,
/*setEnthalpies=*/false);
// set up the fluid state used for the injectors
auto& injFs = injectorFluidState_;
injFs = initialFluidState_;
Scalar pInj = pReservoir_ * 1.5;
injFs.setPressure(waterPhaseIdx, pInj);
injFs.setPressure(oilPhaseIdx, pInj);
injFs.setPressure(gasPhaseIdx, pInj);
injFs.setSaturation(waterPhaseIdx, 1.0);
injFs.setSaturation(oilPhaseIdx, 0.0);
injFs.setSaturation(gasPhaseIdx, 0.0);
// set the composition of the phases to immiscible
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
for (int compIdx = 0; compIdx < numComponents; ++compIdx)
injFs.setMoleFraction(phaseIdx, compIdx, 0.0);
injFs.setMoleFraction(gasPhaseIdx, gasCompIdx, 1.0);
injFs.setMoleFraction(oilPhaseIdx, oilCompIdx, 1.0);
injFs.setMoleFraction(waterPhaseIdx, waterCompIdx, 1.0);
CFRP::solve(injFs,
paramCache,
/*refPhaseIdx=*/waterPhaseIdx,
/*setViscosities=*/false,
/*setEnthalpies=*/false);
// set up the fluid state used for the producer
auto& prodFs = producerFluidState_;
prodFs = initialFluidState_;
Scalar pProd = pReservoir_ / 1.5;
prodFs.setPressure(waterPhaseIdx, pProd);
prodFs.setPressure(oilPhaseIdx, pProd);
prodFs.setPressure(gasPhaseIdx, pProd);
prodFs.setSaturation(waterPhaseIdx, 0.0);
prodFs.setSaturation(oilPhaseIdx, 1.0);
prodFs.setSaturation(gasPhaseIdx, 0.0);
CFRP::solve(prodFs,
paramCache,
/*refPhaseIdx=*/oilPhaseIdx,
/*setViscosities=*/false,
/*setEnthalpies=*/false);
}
bool onLeftBoundary_(const GlobalPosition &pos) const
{ return pos[0] < eps_; }
bool isProducer_(const GlobalPosition &pos) const
{
Scalar x = pos[0] - this->boundingBoxMin()[0];
Scalar y = pos[dim - 1] - this->boundingBoxMin()[dim - 1];
Scalar width = this->boundingBoxMax()[0] - this->boundingBoxMin()[0];
Scalar height = this->boundingBoxMax()[dim - 1] - this->boundingBoxMin()[dim - 1];
bool onRightBoundary_(const GlobalPosition &pos) const
{ return pos[0] > this->boundingBoxMax()[0] - eps_; }
// only the upper half of the center section of the spatial domain is assumed to
// be the producer
if (y <= height/2.0)
return false;
bool onInlet_(const GlobalPosition &pos) const
{ return onRightBoundary_(pos) && (5 < pos[1]) && (pos[1] < 15); }
return width/2.0 - width*1e-5 < x && x < width/2.0 + width*(wellWidth_ + 1e-5);
}
bool isInjector_(const GlobalPosition &pos) const
{
Scalar x = pos[0] - this->boundingBoxMin()[0];
Scalar y = pos[dim - 1] - this->boundingBoxMin()[dim - 1];
Scalar width = this->boundingBoxMax()[0] - this->boundingBoxMin()[0];
Scalar height = this->boundingBoxMax()[dim - 1] - this->boundingBoxMin()[dim - 1];
// only the lower half of the leftmost and rightmost part of the spatial domain
// are assumed to be the water injectors
if (y > height/2.0)
return false;
return x < width*wellWidth_ - width*1e-5 || x > width*(1.0 - wellWidth_) + width*1e-5;
}
bool isFineMaterial_(const GlobalPosition &pos) const
{ return pos[dim - 1] > layerBottom_; }
@@ -611,11 +699,13 @@ private:
MaterialLawParams fineMaterialParams_;
MaterialLawParams coarseMaterialParams_;
BlackOilFluidState initialFluidState_;
InitialFluidState initialFluidState_;
InitialFluidState injectorFluidState_;
InitialFluidState producerFluidState_;
Scalar temperature_;
Scalar maxDepth_;
Scalar eps_;
Scalar wellWidth_;
};
} // namespace Ewoms

View File

@@ -91,13 +91,6 @@ public:
// Enable gravitational acceleration
SET_BOOL_PROP(RichardsLensProblem, EnableGravity, true);
// Only relinearize the parts where the current solution is sufficiently "bad"
SET_BOOL_PROP(RichardsLensProblem, EnablePartialRelinearization, true);
// Enable re-use of the linearization of the last iteration of the
// previous for the first iteration of the current time step?
SET_BOOL_PROP(RichardsLensProblem, EnableLinearizationRecycling, true);
// Use central differences to approximate the Jacobian matrix
SET_INT_PROP(RichardsLensProblem, NumericDifferenceMethod, 0);
@@ -228,8 +221,8 @@ public:
auto elemEndIt = this->gridView().template end</*codim=*/0>();
for (; elemIt != elemEndIt; ++elemIt) {
stencil.update(*elemIt);
for (int dofIdx = 0; dofIdx < stencil.numPrimaryDof(); ++ dofIdx) {
int globalDofIdx = stencil.globalSpaceIndex(dofIdx);
for (unsigned dofIdx = 0; dofIdx < stencil.numPrimaryDof(); ++ dofIdx) {
unsigned globalDofIdx = stencil.globalSpaceIndex(dofIdx);
const auto& dofPos = stencil.subControlVolume(dofIdx).center();
dofIsInLens_[globalDofIdx] = isInLens_(dofPos);
}
@@ -275,10 +268,10 @@ public:
* \copydoc FvBaseMultiPhaseProblem::temperature
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return temperature(context.globalSpaceIndex(spaceIdx, timeIdx), timeIdx); }
Scalar temperature(int globalSpaceIdx, int timeIdx) const
Scalar temperature(unsigned globalSpaceIdx, unsigned timeIdx) const
{ return 273.15 + 10; } // -> 10°C
/*!
@@ -286,8 +279,8 @@ public:
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context,
int spaceIdx,
int timeIdx) const
unsigned spaceIdx,
unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isInLens_(pos))
@@ -299,7 +292,7 @@ public:
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return 0.4; }
/*!
@@ -307,14 +300,14 @@ public:
*/
template <class Context>
const MaterialLawParams &materialLawParams(const Context &context,
int spaceIdx,
int timeIdx) const
unsigned spaceIdx,
unsigned timeIdx) const
{
int globalSpaceIdx = context.globalSpaceIndex(spaceIdx, timeIdx);
unsigned globalSpaceIdx = context.globalSpaceIndex(spaceIdx, timeIdx);
return materialLawParams(globalSpaceIdx, timeIdx);
}
const MaterialLawParams& materialLawParams(int globalSpaceIdx, int timeIdx) const
const MaterialLawParams& materialLawParams(unsigned globalSpaceIdx, unsigned timeIdx) const
{
if (dofIsInLens_[globalSpaceIdx])
return lensMaterialParams_;
@@ -328,13 +321,13 @@ public:
*/
template <class Context>
Scalar referencePressure(const Context &context,
int spaceIdx,
int timeIdx) const
unsigned spaceIdx,
unsigned timeIdx) const
{ return referencePressure(context.globalSpaceIndex(spaceIdx, timeIdx), timeIdx); }
// the Richards model does not have an element context available at all places
// where the reference pressure is required...
Scalar referencePressure(int globalSpaceIdx, int timeIdx) const
Scalar referencePressure(unsigned globalSpaceIdx, unsigned timeIdx) const
{ return pnRef_; }
//! \}
@@ -350,8 +343,8 @@ public:
template <class Context>
void boundary(BoundaryRateVector &values,
const Context &context,
int spaceIdx,
int timeIdx) const
unsigned spaceIdx,
unsigned timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
@@ -395,8 +388,8 @@ public:
template <class Context>
void initial(PrimaryVariables &values,
const Context &context,
int spaceIdx,
int timeIdx) const
unsigned spaceIdx,
unsigned timeIdx) const
{
const auto &materialParams = this->materialLawParams(context, spaceIdx, timeIdx);
@@ -419,8 +412,8 @@ public:
template <class Context>
void source(RateVector &rate,
const Context &context,
int spaceIdx,
int timeIdx) const
unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
//! \}
@@ -447,7 +440,7 @@ private:
bool isInLens_(const GlobalPosition &pos) const
{
for (int i = 0; i < dimWorld; ++i) {
for (unsigned i = 0; i < dimWorld; ++i) {
if (pos[i] < lensLowerLeft_[i] || pos[i] > lensUpperRight_[i])
return false;
}

View File

@@ -179,7 +179,7 @@ public:
* This problem assumes a temperature of 10 degrees Celsius.
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return 273.15 + 10; /* -> 10 deg C */ }
// \}
@@ -198,7 +198,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
@@ -229,8 +229,8 @@ public:
* 0.5% is set.
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
const GlobalPosition &globalPos = context.pos(spaceIdx, timeIdx);
values = 0.0;
@@ -264,8 +264,8 @@ public:
* is 0 everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
/*!
@@ -276,23 +276,13 @@ public:
*/
template <class Context>
void constraints(Constraints &constraints, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
if (onUpperBoundary_(pos)) {
PrimaryVariables initCond;
initial(initCond, context, spaceIdx, timeIdx);
constraints.setConstraint(pressureIdx, conti0EqIdx,
initCond[pressureIdx]);
;
constraints.setConstraint(moleFrac1Idx, conti0EqIdx + 1,
initCond[moleFrac1Idx]);
for (int axisIdx = 0; axisIdx < dimWorld; ++axisIdx)
constraints.setConstraint(velocity0Idx + axisIdx,
momentum0EqIdx + axisIdx,
initCond[velocity0Idx + axisIdx]);
constraints.setActive(true);
initial(constraints, context, spaceIdx, timeIdx);
}
}
//! \}

View File

@@ -198,7 +198,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
@@ -225,8 +225,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
@@ -259,7 +259,7 @@ public:
Scalar rho = 1.189;
Scalar pressure = 1e5 - rho * this->gravity()[1] * y;
for (int axisIdx = 0; axisIdx < dimWorld; ++axisIdx)
for (unsigned axisIdx = 0; axisIdx < dimWorld; ++axisIdx)
values[velocity0Idx + axisIdx] = velocity[axisIdx];
values[pressureIdx] = pressure;
@@ -274,8 +274,8 @@ public:
* is 0 everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
/*!
@@ -286,26 +286,13 @@ public:
*/
template <class Context>
void constraints(Constraints &constraints, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
if (onLowerBoundary_(pos) || onUpperBoundary_(pos)) {
PrimaryVariables initCond;
initial(initCond, context, spaceIdx, timeIdx);
constraints.setConstraint(temperatureIdx, energyEqIdx,
initCond[temperatureIdx]);
;
constraints.setConstraint(pressureIdx, conti0EqIdx,
initCond[pressureIdx]);
constraints.setConstraint(moleFrac1Idx, conti0EqIdx + 1,
initCond[moleFrac1Idx]);
;
for (int axisIdx = 0; axisIdx < dimWorld; ++axisIdx)
constraints.setConstraint(velocity0Idx + axisIdx,
momentum0EqIdx + axisIdx,
initCond[momentum0EqIdx + axisIdx]);
constraints.setActive(true);
initial(constraints, context, spaceIdx, timeIdx);
}
}

View File

@@ -174,7 +174,7 @@ public:
* This problem assumes a constant temperature of 10 degrees Celsius.
*/
template <class Context>
Scalar temperature(const Context &context, int spaceIdx, int timeIdx) const
Scalar temperature(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ return 273.15 + 10; } // -> 10 deg C
//! \}
@@ -193,7 +193,7 @@ public:
*/
template <class Context>
void boundary(BoundaryRateVector &values, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
@@ -233,8 +233,8 @@ public:
* \copydoc FvBaseProblem::initial
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx,
int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
@@ -251,7 +251,7 @@ public:
DimVector velocity(0.0);
velocity[0] = a * y * y + b * y + c;
for (int axisIdx = 0; axisIdx < dimWorld; ++axisIdx)
for (unsigned axisIdx = 0; axisIdx < dimWorld; ++axisIdx)
values[velocity0Idx + axisIdx] = velocity[axisIdx];
values[pressureIdx] = 1e5;
}
@@ -263,8 +263,8 @@ public:
* is 0 everywhere.
*/
template <class Context>
void source(RateVector &rate, const Context &context, int spaceIdx,
int timeIdx) const
void source(RateVector &rate, const Context &context, unsigned spaceIdx,
unsigned timeIdx) const
{ rate = Scalar(0.0); }
/*!
@@ -275,21 +275,13 @@ public:
*/
template <class Context>
void constraints(Constraints &constraints, const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
if (onLeftBoundary_(pos) || onRightBoundary_(pos)) {
PrimaryVariables initCond;
initial(initCond, context, spaceIdx, timeIdx);
constraints.setConstraint(pressureIdx, conti0EqIdx,
initCond[pressureIdx]);
;
for (int axisIdx = 0; axisIdx < dimWorld; ++axisIdx)
constraints.setConstraint(velocity0Idx + axisIdx,
momentum0EqIdx + axisIdx,
initCond[velocity0Idx + axisIdx]);
constraints.setActive(true);
initial(constraints, context, spaceIdx, timeIdx);
}
}

View File

@@ -103,9 +103,6 @@ SET_TYPE_PROP(WaterAirBaseProblem, FluidSystem,
// Enable gravity
SET_BOOL_PROP(WaterAirBaseProblem, EnableGravity, true);
// Enable constraints
SET_BOOL_PROP(WaterAirBaseProblem, EnableConstraints, true);
// Use forward differences instead of central differences
SET_INT_PROP(WaterAirBaseProblem, NumericDifferenceMethod, +1);
@@ -302,7 +299,7 @@ public:
* permeable than the lower one.
*/
template <class Context>
const DimMatrix &intrinsicPermeability(const Context &context, int spaceIdx, int timeIdx) const
const DimMatrix &intrinsicPermeability(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -314,7 +311,7 @@ public:
* \copydoc FvBaseMultiPhaseProblem::porosity
*/
template <class Context>
Scalar porosity(const Context &context, int spaceIdx, int timeIdx) const
Scalar porosity(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -328,8 +325,8 @@ public:
*/
template <class Context>
const MaterialLawParams& materialLawParams(const Context &context,
int spaceIdx,
int timeIdx) const
unsigned spaceIdx,
unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -344,7 +341,7 @@ public:
* In this case, we assume the rock-matrix to be granite.
*/
template <class Context>
Scalar heatCapacitySolid(const Context &context, int spaceIdx, int timeIdx) const
Scalar heatCapacitySolid(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
return
790 // specific heat capacity of granite [J / (kg K)]
@@ -356,7 +353,7 @@ public:
*/
template <class Context>
const HeatConductionLawParams&
heatConductionParams(const Context &context, int spaceIdx, int timeIdx) const
heatConductionParams(const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
if (isFineMaterial_(pos))
@@ -382,7 +379,7 @@ public:
template <class Context>
void boundary(BoundaryRateVector &values,
const Context &context,
int spaceIdx, int timeIdx) const
unsigned spaceIdx, unsigned timeIdx) const
{
const auto &pos = context.cvCenter(spaceIdx, timeIdx);
assert(onLeftBoundary_(pos) ||
@@ -433,7 +430,7 @@ public:
* liquid water and assume hydrostatic pressure.
*/
template <class Context>
void initial(PrimaryVariables &values, const Context &context, int spaceIdx, int timeIdx) const
void initial(PrimaryVariables &values, const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{
Opm::CompositionalFluidState<Scalar, FluidSystem> fs;
initialFluidState_(fs, context, spaceIdx, timeIdx);
@@ -442,24 +439,6 @@ public:
values.assignMassConservative(fs, matParams, /*inEquilibrium=*/true);
}
/*!
* \copydoc FvBaseProblem::constraints
*
* 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,
const Context &context,
int spaceIdx, int timeIdx) const
{
const auto &pos = context.pos(spaceIdx, timeIdx);
if (onInlet_(pos)) {
constraints.setConstraint(temperatureIdx, energyEqIdx, 380);
}
}
/*!
* \copydoc FvBaseProblem::source
*
@@ -468,7 +447,7 @@ public:
*/
template <class Context>
void source(RateVector &rate,
const Context &context, int spaceIdx, int timeIdx) const
const Context &context, unsigned spaceIdx, unsigned timeIdx) const
{ rate = 0; }
//! \}
@@ -495,8 +474,8 @@ private:
template <class Context, class FluidState>
void initialFluidState_(FluidState &fs,
const Context &context,
int spaceIdx,
int timeIdx) const
unsigned spaceIdx,
unsigned timeIdx) const
{
const GlobalPosition &pos = context.pos(spaceIdx, timeIdx);
@@ -530,18 +509,18 @@ private:
// create a Fluid state which has all phases present
Opm::ImmiscibleFluidState<Scalar, FluidSystem> fs;
fs.setTemperature(293.15);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
fs.setPressure(phaseIdx, 1.0135e5);
}
typename FluidSystem::ParameterCache paramCache;
paramCache.updateAll(fs);
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
Scalar rho = FluidSystem::density(fs, paramCache, phaseIdx);
fs.setDensity(phaseIdx, rho);
}
for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
Scalar lambdaSaturated;
if (FluidSystem::isLiquid(phaseIdx)) {
Scalar lambdaFluid =

View File

@@ -0,0 +1,49 @@
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
/*
Copyright (C) 2012-2013 by Andreas Lauser
This file is part of the Open Porous Media project (OPM).
OPM is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
OPM is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OPM. If not, see <http://www.gnu.org/licenses/>.
*/
/*!
* \file
*
* \brief Test for the reservoir problem using the black-oil model, the ECFV discretization
* and automatic differentiation.
*/
#include "config.h"
#include <ewoms/common/start.hh>
#include <ewoms/models/blackoil/blackoilmodel.hh>
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
#include "problems/reservoirproblem.hh"
namespace Ewoms {
namespace Properties {
NEW_TYPE_TAG(ReservoirBlackOilEcfvProblem, INHERITS_FROM(BlackOilModel, ReservoirBaseProblem));
// Select the element centered finite volume method as spatial discretization
SET_TAG_PROP(ReservoirBlackOilEcfvProblem, SpatialDiscretizationSplice, EcfvDiscretization);
// Use automatic differentiation to linearize the system of PDEs
SET_TAG_PROP(ReservoirBlackOilEcfvProblem, LocalLinearizerSplice, AutoDiffLocalLinearizer);
}}
int main(int argc, char **argv)
{
typedef TTAG(ReservoirBlackOilEcfvProblem) ProblemTypeTag;
return Ewoms::start<ProblemTypeTag>(argc, argv);
}

View File

@@ -21,22 +21,25 @@
/*!
* \file
*
* \brief Test for the black-oil VCVF discretization.
* \brief Test for the black-oil model using the VCFV discretization.
*/
#include "config.h"
#include <ewoms/common/start.hh>
#include <ewoms/models/blackoil/blackoilmodel.hh>
#include <ewoms/disc/vcfv/vcfvdiscretization.hh>
#include "problems/reservoirproblem.hh"
namespace Ewoms {
namespace Properties {
NEW_TYPE_TAG(ReservoirProblem, INHERITS_FROM(BlackOilModel, ReservoirBaseProblem));
}
}
NEW_TYPE_TAG(ReservoirBlackOilVcfvProblem, INHERITS_FROM(BlackOilModel, ReservoirBaseProblem));
// Select the vertex centered finite volume method as spatial discretization
SET_TAG_PROP(ReservoirBlackOilVcfvProblem, SpatialDiscretizationSplice, VcfvDiscretization);
}}
int main(int argc, char **argv)
{
typedef TTAG(ReservoirProblem) ProblemTypeTag;
typedef TTAG(ReservoirBlackOilVcfvProblem) ProblemTypeTag;
return Ewoms::start<ProblemTypeTag>(argc, argv);
}

View File

@@ -0,0 +1,48 @@
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
/*
Copyright (C) 2012-2013 by Andreas Lauser
This file is part of the Open Porous Media project (OPM).
OPM is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
OPM is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OPM. If not, see <http://www.gnu.org/licenses/>.
*/
/*!
* \file
*
* \brief Test for the black-oil VCVF discretization.
*/
#include "config.h"
#include <ewoms/common/start.hh>
#include <ewoms/models/ncp/ncpmodel.hh>
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
#include "problems/reservoirproblem.hh"
namespace Ewoms {
namespace Properties {
NEW_TYPE_TAG(ReservoirNcpEcfvProblem, INHERITS_FROM(NcpModel, ReservoirBaseProblem));
// Select the element centered finite volume method as spatial discretization
SET_TAG_PROP(ReservoirNcpEcfvProblem, SpatialDiscretizationSplice, EcfvDiscretization);
//! use automatic differentiation to linearize the system of PDEs
SET_TAG_PROP(ReservoirNcpEcfvProblem, LocalLinearizerSplice, AutoDiffLocalLinearizer);
}}
int main(int argc, char **argv)
{
typedef TTAG(ReservoirNcpEcfvProblem) ProblemTypeTag;
return Ewoms::start<ProblemTypeTag>(argc, argv);
}

View File

@@ -0,0 +1,50 @@
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
/*
Copyright (C) 2012-2013 by Andreas Lauser
This file is part of the Open Porous Media project (OPM).
OPM is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
OPM is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OPM. If not, see <http://www.gnu.org/licenses/>.
*/
/*!
* \file
*
* \brief Test for the reservoir problem using the NCP model, the VCFV discretization and
* finite differences.
*/
#include "config.h"
#include <ewoms/common/start.hh>
#include <ewoms/models/ncp/ncpmodel.hh>
#include <ewoms/disc/vcfv/vcfvdiscretization.hh>
#include "problems/reservoirproblem.hh"
namespace Ewoms {
namespace Properties {
NEW_TYPE_TAG(ReservoirNcpVcfvProblem, INHERITS_FROM(NcpModel, ReservoirBaseProblem));
// Select the vertex centered finite volume method as spatial discretization
SET_TAG_PROP(ReservoirNcpVcfvProblem, SpatialDiscretizationSplice, VcfvDiscretization);
// enable the storage cache for this problem so that the storage cache receives wider
// testing
SET_BOOL_PROP(ReservoirNcpVcfvProblem, EnableStorageCache, true);
}}
int main(int argc, char **argv)
{
typedef TTAG(ReservoirNcpVcfvProblem) ProblemTypeTag;
return Ewoms::start<ProblemTypeTag>(argc, argv);
}

View File

@@ -60,7 +60,7 @@ void testQuadrature();
GlobalPosition::field_type f(const GlobalPosition &pos)
{
GlobalPosition::field_type result = 1;
for (int i = 0; i < GlobalPosition::dimension; ++i)
for (unsigned i = 0; i < GlobalPosition::dimension; ++i)
result *= pos[i];
return result;
}
@@ -80,10 +80,10 @@ void testIdenityMapping()
foo.setCorners(corners, 8);
std::cout << "testing identity mapping...\n";
int n = 100;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
for (int k = 0; k < n; ++k) {
unsigned n = 100;
for (unsigned i = 0; i < n; ++i) {
for (unsigned j = 0; j < n; ++j) {
for (unsigned k = 0; k < n; ++k) {
LocalPosition localPos;
localPos[0] = Scalar(i) / (n - 1);
@@ -119,10 +119,10 @@ void writeTetrahedronSubControlVolumes(const Grid &grid)
const auto &eEndIt = gridView.template end<0>();
for (; eIt != eEndIt; ++eIt) {
stencil.update(*eIt);
for (int scvIdx = 0; scvIdx < stencil.numDof(); ++scvIdx) {
for (unsigned scvIdx = 0; scvIdx < stencil.numDof(); ++scvIdx) {
const auto &scvLocalGeom = stencil.subControlVolume(scvIdx).localGeometry();
for (int i = 0; i < scvLocalGeom.numCorners; ++i) {
for (unsigned i = 0; i < scvLocalGeom.numCorners; ++i) {
GlobalPosition pos(
eIt->geometry().global(scvLocalGeom.corner(i)));
gf2.insertVertex(pos);
@@ -134,11 +134,11 @@ void writeTetrahedronSubControlVolumes(const Grid &grid)
eIt = gridView.template begin<0>();
for (; eIt != eEndIt; ++eIt) {
stencil.update(*eIt);
for (int scvIdx = 0; scvIdx < stencil.numDof(); ++scvIdx) {
for (unsigned scvIdx = 0; scvIdx < stencil.numDof(); ++scvIdx) {
const auto &scvLocalGeom = stencil.subControlVolume(scvIdx).localGeometry();
std::vector<unsigned int> vertexIndices;
for (int i = 0; i < scvLocalGeom.numCorners; ++i) {
for (unsigned i = 0; i < scvLocalGeom.numCorners; ++i) {
vertexIndices.push_back(cornerOffset);
++cornerOffset;
}
@@ -198,10 +198,10 @@ void writeCubeSubControlVolumes(const Grid &grid)
const auto &eEndIt = gridView.template end<0>();
for (; eIt != eEndIt; ++eIt) {
stencil.update(*eIt);
for (int scvIdx = 0; scvIdx < stencil.numDof(); ++scvIdx) {
for (unsigned scvIdx = 0; scvIdx < stencil.numDof(); ++scvIdx) {
const auto &scvLocalGeom = stencil.subControlVolume(scvIdx).localGeometry();
for (int i = 0; i < scvLocalGeom.numCorners; ++i) {
for (unsigned i = 0; i < scvLocalGeom.numCorners; ++i) {
GlobalPosition pos(
eIt->geometry().global(scvLocalGeom.corner(i)));
gf2.insertVertex(pos);
@@ -213,11 +213,11 @@ void writeCubeSubControlVolumes(const Grid &grid)
eIt = gridView.template begin<0>();
for (; eIt != eEndIt; ++eIt) {
stencil.update(*eIt);
for (int scvIdx = 0; scvIdx < stencil.numDof(); ++scvIdx) {
for (unsigned scvIdx = 0; scvIdx < stencil.numDof(); ++scvIdx) {
const auto &scvLocalGeom = stencil.subControlVolume(scvIdx).localGeometry();
std::vector<unsigned int> vertexIndices;
for (int i = 0; i < scvLocalGeom.numCorners; ++i) {
for (unsigned i = 0; i < scvLocalGeom.numCorners; ++i) {
vertexIndices.push_back(cornerOffset);
++cornerOffset;
}
@@ -313,7 +313,7 @@ void testQuadrature()
stencil.update(*eIt);
// loop over all sub-control volumes
for (int scvIdx = 0; scvIdx < stencil.numDof(); ++scvIdx) {
for (unsigned scvIdx = 0; scvIdx < stencil.numDof(); ++scvIdx) {
const auto &scvLocalGeom = stencil.subControlVolume(scvIdx).localGeometry();
Dune::GeometryType geomType = scvLocalGeom.type();

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -2,48 +2,48 @@
<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian">
<UnstructuredGrid>
<Piece NumberOfCells="96" NumberOfPoints="117">
<CellData Scalars="pressure_l">
<DataArray type="Float32" Name="pressure_l" NumberOfComponents="1" format="ascii">
2.63087e+07 2.63089e+07 2.63089e+07 2.63089e+07 2.63087e+07 2.63085e+07 2.63081e+07 2.63076e+07 2.63071e+07 2.63068e+07 2.63068e+07 2.63071e+07
2.62824e+07 2.62825e+07 2.62825e+07 2.62824e+07 2.62823e+07 2.6282e+07 2.62816e+07 2.6281e+07 2.62802e+07 2.62799e+07 2.62799e+07 2.62803e+07
2.62561e+07 2.62561e+07 2.62561e+07 2.6256e+07 2.62559e+07 2.62557e+07 2.62553e+07 2.62547e+07 2.62536e+07 2.62534e+07 2.62534e+07 2.62536e+07
2.62298e+07 2.62298e+07 2.62298e+07 2.62297e+07 2.62296e+07 2.62294e+07 2.62292e+07 2.62287e+07 2.62281e+07 2.62281e+07 2.62281e+07 2.62282e+07
2.62035e+07 2.62035e+07 2.62035e+07 2.62035e+07 2.62034e+07 2.62033e+07 2.62031e+07 2.62029e+07 2.62026e+07 2.62026e+07 2.62026e+07 2.62026e+07
2.61773e+07 2.61772e+07 2.61772e+07 2.61772e+07 2.61772e+07 2.61772e+07 2.61772e+07 2.61771e+07 2.6177e+07 2.6177e+07 2.6177e+07 2.61771e+07
2.6151e+07 2.6151e+07 2.61509e+07 2.6151e+07 2.6151e+07 2.61511e+07 2.61512e+07 2.61514e+07 2.61515e+07 2.61515e+07 2.61515e+07 2.61515e+07
2.61247e+07 2.61246e+07 2.61246e+07 2.61246e+07 2.61247e+07 2.61249e+07 2.61252e+07 2.61257e+07 2.61259e+07 2.6126e+07 2.6126e+07 2.61259e+07
<CellData Scalars="pressure_liquid">
<DataArray type="Float32" Name="pressure_liquid" NumberOfComponents="1" format="ascii">
2.63163e+07 2.63173e+07 2.63182e+07 2.6319e+07 2.63197e+07 2.63202e+07 2.63206e+07 2.63209e+07 2.6321e+07 2.63214e+07 2.6322e+07 2.63229e+07
2.629e+07 2.62909e+07 2.62918e+07 2.62926e+07 2.62933e+07 2.62938e+07 2.62942e+07 2.62944e+07 2.62943e+07 2.62946e+07 2.62951e+07 2.6296e+07
2.62637e+07 2.62646e+07 2.62654e+07 2.62662e+07 2.6267e+07 2.62676e+07 2.6268e+07 2.62683e+07 2.62681e+07 2.62682e+07 2.62686e+07 2.62691e+07
2.62374e+07 2.62383e+07 2.62392e+07 2.624e+07 2.62408e+07 2.62415e+07 2.62421e+07 2.62426e+07 2.62427e+07 2.62429e+07 2.62432e+07 2.62436e+07
2.62112e+07 2.62121e+07 2.62129e+07 2.62138e+07 2.62146e+07 2.62154e+07 2.62162e+07 2.6217e+07 2.62172e+07 2.62175e+07 2.62178e+07 2.62181e+07
2.6185e+07 2.61858e+07 2.61867e+07 2.61876e+07 2.61885e+07 2.61895e+07 2.61904e+07 2.61914e+07 2.61917e+07 2.6192e+07 2.61923e+07 2.61926e+07
2.61587e+07 2.61596e+07 2.61605e+07 2.61614e+07 2.61624e+07 2.61635e+07 2.61646e+07 2.61658e+07 2.61662e+07 2.61665e+07 2.61668e+07 2.61671e+07
2.61325e+07 2.61333e+07 2.61342e+07 2.61351e+07 2.61362e+07 2.61374e+07 2.61387e+07 2.61402e+07 2.61407e+07 2.61411e+07 2.61414e+07 2.61416e+07
</DataArray>
<DataArray type="Float32" Name="pressure_g" NumberOfComponents="1" format="ascii">
2.63137e+07 2.63139e+07 2.63139e+07 2.63139e+07 2.63137e+07 2.63135e+07 2.63131e+07 2.63126e+07 2.63121e+07 2.63118e+07 2.63118e+07 2.63121e+07
2.62874e+07 2.62875e+07 2.62875e+07 2.62874e+07 2.62873e+07 2.6287e+07 2.62866e+07 2.6286e+07 2.62852e+07 2.62849e+07 2.62849e+07 2.62853e+07
2.62611e+07 2.62611e+07 2.62611e+07 2.6261e+07 2.62609e+07 2.62607e+07 2.62603e+07 2.62597e+07 2.62586e+07 2.62584e+07 2.62584e+07 2.62586e+07
2.62348e+07 2.62348e+07 2.62348e+07 2.62347e+07 2.62346e+07 2.62344e+07 2.62342e+07 2.62337e+07 2.62331e+07 2.62331e+07 2.62331e+07 2.62332e+07
2.62085e+07 2.62085e+07 2.62085e+07 2.62085e+07 2.62084e+07 2.62083e+07 2.62081e+07 2.62079e+07 2.62076e+07 2.62076e+07 2.62076e+07 2.62076e+07
2.61823e+07 2.61822e+07 2.61822e+07 2.61822e+07 2.61822e+07 2.61822e+07 2.61822e+07 2.61821e+07 2.6182e+07 2.6182e+07 2.6182e+07 2.61821e+07
2.6156e+07 2.6156e+07 2.61559e+07 2.6156e+07 2.6156e+07 2.61561e+07 2.61562e+07 2.61564e+07 2.61565e+07 2.61565e+07 2.61565e+07 2.61565e+07
2.61297e+07 2.61296e+07 2.61296e+07 2.61296e+07 2.61297e+07 2.61299e+07 2.61302e+07 2.61307e+07 2.61309e+07 2.6131e+07 2.6131e+07 2.61309e+07
<DataArray type="Float32" Name="pressure_gas" NumberOfComponents="1" format="ascii">
2.63213e+07 2.63223e+07 2.63232e+07 2.6324e+07 2.63247e+07 2.63252e+07 2.63256e+07 2.63259e+07 2.6326e+07 2.63264e+07 2.6327e+07 2.63279e+07
2.6295e+07 2.62959e+07 2.62968e+07 2.62976e+07 2.62983e+07 2.62988e+07 2.62992e+07 2.62994e+07 2.62993e+07 2.62996e+07 2.63001e+07 2.6301e+07
2.62687e+07 2.62696e+07 2.62704e+07 2.62712e+07 2.6272e+07 2.62726e+07 2.6273e+07 2.62733e+07 2.62731e+07 2.62732e+07 2.62736e+07 2.62741e+07
2.62424e+07 2.62433e+07 2.62442e+07 2.6245e+07 2.62458e+07 2.62465e+07 2.62471e+07 2.62476e+07 2.62477e+07 2.62479e+07 2.62482e+07 2.62486e+07
2.62162e+07 2.62171e+07 2.62179e+07 2.62188e+07 2.62196e+07 2.62204e+07 2.62212e+07 2.6222e+07 2.62222e+07 2.62225e+07 2.62228e+07 2.62231e+07
2.619e+07 2.61908e+07 2.61917e+07 2.61926e+07 2.61935e+07 2.61945e+07 2.61954e+07 2.61964e+07 2.61967e+07 2.6197e+07 2.61973e+07 2.61976e+07
2.61637e+07 2.61646e+07 2.61655e+07 2.61664e+07 2.61674e+07 2.61685e+07 2.61696e+07 2.61708e+07 2.61712e+07 2.61715e+07 2.61718e+07 2.61721e+07
2.61375e+07 2.61383e+07 2.61392e+07 2.61401e+07 2.61412e+07 2.61424e+07 2.61437e+07 2.61452e+07 2.61457e+07 2.61461e+07 2.61464e+07 2.61466e+07
</DataArray>
<DataArray type="Float32" Name="density_l" NumberOfComponents="1" format="ascii">
1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33
1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32
1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1019.16 1019.16 1019.16 1019.16
1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1019.15 1019.15 1019.15 1019.15
1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1019.14 1019.14 1019.14 1019.14
1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1019.13 1019.13 1019.13 1019.13
1082.27 1082.27 1082.27 1082.27 1082.27 1082.27 1082.27 1082.27 1019.12 1019.12 1019.12 1019.12
1082.26 1082.26 1082.26 1082.26 1082.26 1082.26 1082.26 1082.26 1019.11 1019.11 1019.11 1019.11
<DataArray type="Float32" Name="density_liquid" NumberOfComponents="1" format="ascii">
1082.41 1082.41 1082.41 1082.41 1082.41 1082.41 1082.41 1082.41 1082.41 1082.41 1082.41 1082.41
1082.4 1082.4 1082.4 1082.4 1082.4 1082.4 1082.4 1082.4 1082.38 1082.38 1082.38 1082.38
1082.39 1082.39 1082.39 1082.39 1082.39 1082.39 1082.39 1082.37 1019.53 1019.43 1019.45 1019.9
1082.38 1082.38 1082.38 1082.38 1082.38 1082.38 1082.38 1082.34 1019.34 1019.26 1019.26 1019.57
1082.37 1082.37 1082.37 1082.37 1082.37 1082.37 1082.37 1082.31 1019.33 1019.25 1019.25 1019.51
1082.36 1082.36 1082.36 1082.36 1082.36 1082.36 1082.36 1082.29 1019.32 1019.24 1019.24 1019.46
1082.35 1082.35 1082.35 1082.35 1082.35 1082.35 1082.35 1082.27 1019.31 1019.23 1019.23 1019.41
1082.34 1082.34 1082.34 1082.34 1082.34 1082.34 1082.34 1082.24 1019.3 1019.22 1019.22 1019.36
</DataArray>
<DataArray type="Float32" Name="density_g" NumberOfComponents="1" format="ascii">
969.084 969.084 969.084 969.084 969.084 969.082 969.081 969.079 969.076 969.075 969.075 969.076
968.965 968.965 968.965 968.965 968.964 968.963 968.961 968.959 968.955 968.953 968.953 968.955
968.846 968.846 968.846 968.846 968.845 968.844 968.843 968.84 527.831 527.827 527.827 527.831
968.728 968.728 968.727 968.727 968.727 968.726 968.725 968.722 527.395 527.393 527.393 527.395
968.609 968.609 968.609 968.609 968.609 968.608 968.607 968.606 526.958 526.957 526.957 526.958
968.491 968.491 968.49 968.49 968.49 968.49 968.49 968.49 526.521 526.52 526.52 526.521
968.372 968.372 968.372 968.372 968.372 968.373 968.373 968.374 526.083 526.083 526.084 526.083
968.254 968.253 968.253 968.253 968.254 968.255 968.256 968.257 525.646 525.647 525.647 525.646
<DataArray type="Float32" Name="density_gas" NumberOfComponents="1" format="ascii">
969.118 969.122 969.126 969.13 969.133 969.135 969.137 969.138 969.139 969.14 969.143 969.147
968.999 969.003 969.007 969.011 969.014 969.016 969.018 969.018 968.699 968.7 968.702 968.708
968.88 968.884 968.888 968.892 968.895 968.898 968.9 968.581 529.158 528.737 528.848 530.666
968.762 968.766 968.77 968.773 968.777 968.78 968.782 968.248 527.957 527.646 527.654 528.908
968.644 968.648 968.651 968.655 968.659 968.663 968.665 967.905 527.517 527.21 527.217 528.271
968.525 968.529 968.533 968.537 968.541 968.545 968.548 967.641 527.081 526.775 526.781 527.679
968.407 968.411 968.415 968.419 968.423 968.428 968.431 967.373 526.645 526.339 526.345 527.087
968.289 968.292 968.296 968.301 968.305 968.311 968.314 967.021 526.209 525.905 525.91 526.456
</DataArray>
<DataArray type="Float32" Name="saturation_l" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="saturation_liquid" NumberOfComponents="1" format="ascii">
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
@@ -53,7 +53,7 @@
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
</DataArray>
<DataArray type="Float32" Name="saturation_g" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="saturation_gas" NumberOfComponents="1" format="ascii">
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
@@ -63,7 +63,7 @@
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
</DataArray>
<DataArray type="Float32" Name="relativePerm_l" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="relativePerm_liquid" NumberOfComponents="1" format="ascii">
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
@@ -73,7 +73,7 @@
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
</DataArray>
<DataArray type="Float32" Name="relativePerm_g" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="relativePerm_gas" NumberOfComponents="1" format="ascii">
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
@@ -95,15 +95,15 @@
</DataArray>
<DataArray type="Float32" Name="temperature" NumberOfComponents="1" format="ascii">
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 393.149 393.15 393.15 393.149
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 393.15 393.15 393.15 393.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 393.15 393.15 393.15 393.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 393.15 393.15 393.15 393.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 393.15 393.15 393.15 393.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 393.15 393.15 393.15 393.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.233 293.233 293.233 293.233
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.233 392.856 392.971 392.943 392.453
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.289 393.064 393.15 393.149 392.81
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.348 393.065 393.15 393.15 392.865
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.386 393.066 393.15 393.15 392.907
293.15 293.15 293.15 293.15 293.15 293.15 293.151 293.426 393.066 393.15 393.15 392.95
293.15 293.15 293.15 293.15 293.15 293.15 293.151 293.486 393.066 393.15 393.15 393.003
</DataArray>
<DataArray type="Float32" Name="moleFrac_l^Brine" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="moleFrac_liquid^Brine" NumberOfComponents="1" format="ascii">
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
@@ -113,7 +113,7 @@
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
</DataArray>
<DataArray type="Float32" Name="moleFrac_l^CO2" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="moleFrac_liquid^CO2" NumberOfComponents="1" format="ascii">
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
@@ -123,25 +123,25 @@
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
</DataArray>
<DataArray type="Float32" Name="moleFrac_g^Brine" NumberOfComponents="1" format="ascii">
0.00327802 0.00327803 0.00327803 0.00327803 0.00327802 0.00327802 0.00327801 0.00327801 0.003278 0.00327799 0.00327799 0.003278
0.00327762 0.00327762 0.00327762 0.00327762 0.00327762 0.00327761 0.00327761 0.0032776 0.00327759 0.00327759 0.00327759 0.00327759
0.00327722 0.00327722 0.00327722 0.00327721 0.00327721 0.00327721 0.0032772 0.0032772 0.0297676 0.0297678 0.0297678 0.0297676
0.00327681 0.00327681 0.00327681 0.00327681 0.00327681 0.00327681 0.0032768 0.0032768 0.0297621 0.0297621 0.0297621 0.0297621
0.00327641 0.00327641 0.00327641 0.00327641 0.0032764 0.0032764 0.0032764 0.0032764 0.0297563 0.0297564 0.0297564 0.0297563
0.003276 0.003276 0.003276 0.003276 0.003276 0.003276 0.003276 0.00327601 0.0297505 0.0297506 0.0297506 0.0297505
0.0032756 0.0032756 0.00327559 0.00327559 0.0032756 0.0032756 0.0032756 0.00327561 0.0297447 0.0297447 0.0297447 0.0297447
0.00327519 0.00327519 0.00327519 0.00327519 0.00327519 0.00327519 0.0032752 0.00327522 0.0297389 0.0297389 0.0297389 0.0297389
<DataArray type="Float32" Name="moleFrac_gas^Brine" NumberOfComponents="1" format="ascii">
0.00327814 0.00327816 0.00327817 0.00327818 0.0032782 0.0032782 0.00327821 0.00327822 0.00327822 0.00327823 0.00327824 0.00327825
0.00327774 0.00327775 0.00327777 0.00327778 0.00327779 0.0032778 0.00327781 0.00327782 0.00328565 0.00328566 0.00328567 0.00328564
0.00327733 0.00327735 0.00327736 0.00327737 0.00327739 0.0032774 0.00327741 0.00328525 0.0296107 0.0296736 0.029658 0.0293922
0.00327693 0.00327694 0.00327696 0.00327697 0.00327698 0.00327699 0.00327702 0.00329016 0.0297186 0.0297655 0.0297652 0.0295803
0.00327652 0.00327654 0.00327655 0.00327657 0.00327658 0.00327659 0.00327663 0.00329534 0.0297135 0.0297599 0.0297597 0.0296042
0.00327612 0.00327613 0.00327615 0.00327616 0.00327618 0.00327619 0.00327624 0.00329858 0.0297077 0.0297541 0.029754 0.0296215
0.00327572 0.00327573 0.00327574 0.00327576 0.00327578 0.00327579 0.00327585 0.00330191 0.0297019 0.0297483 0.0297483 0.0296388
0.00327531 0.00327532 0.00327534 0.00327535 0.00327537 0.00327539 0.00327547 0.00330729 0.0296961 0.0297425 0.0297425 0.0296619
</DataArray>
<DataArray type="Float32" Name="moleFrac_g^CO2" NumberOfComponents="1" format="ascii">
0.259414 0.259414 0.259414 0.259414 0.259414 0.259414 0.259414 0.259415 0.259415 0.259415 0.259415 0.259415
0.259433 0.259433 0.259433 0.259433 0.259433 0.259433 0.259434 0.259434 0.259435 0.259435 0.259435 0.259435
0.259452 0.259452 0.259452 0.259452 0.259452 0.259452 0.259453 0.259453 0.301412 0.301413 0.301413 0.301412
0.259471 0.259471 0.259471 0.259471 0.259471 0.259471 0.259472 0.259472 0.301533 0.301534 0.301534 0.301533
0.25949 0.25949 0.25949 0.25949 0.25949 0.25949 0.25949 0.259491 0.301655 0.301655 0.301655 0.301655
0.259509 0.259509 0.259509 0.259509 0.259509 0.259509 0.259509 0.259509 0.301778 0.301778 0.301777 0.301778
0.259528 0.259528 0.259528 0.259528 0.259528 0.259528 0.259528 0.259528 0.3019 0.3019 0.301899 0.3019
0.259546 0.259546 0.259546 0.259546 0.259546 0.259546 0.259546 0.259546 0.302022 0.302021 0.302021 0.302022
<DataArray type="Float32" Name="moleFrac_gas^CO2" NumberOfComponents="1" format="ascii">
0.259408 0.259408 0.259407 0.259406 0.259406 0.259406 0.259405 0.259405 0.259405 0.259405 0.259404 0.259404
0.259428 0.259427 0.259426 0.259426 0.259425 0.259425 0.259425 0.259425 0.259536 0.259536 0.259536 0.259535
0.259447 0.259446 0.259445 0.259445 0.259444 0.259444 0.259444 0.259556 0.301795 0.301617 0.301659 0.302403
0.259466 0.259465 0.259464 0.259464 0.259463 0.259463 0.259463 0.25965 0.301596 0.301463 0.301462 0.301982
0.259485 0.259484 0.259483 0.259483 0.259482 0.259482 0.259481 0.259749 0.301716 0.301584 0.301583 0.30202
0.259503 0.259503 0.259502 0.259502 0.259501 0.2595 0.2595 0.25982 0.301838 0.301706 0.301705 0.302077
0.259522 0.259522 0.259521 0.25952 0.25952 0.259519 0.259519 0.259892 0.301959 0.301827 0.301826 0.302133
0.259541 0.25954 0.25954 0.259539 0.259538 0.259537 0.259537 0.259993 0.302081 0.301949 0.301948 0.302174
</DataArray>
</CellData>
<Points>

View File

@@ -2,48 +2,48 @@
<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian">
<UnstructuredGrid>
<Piece NumberOfCells="96" NumberOfPoints="117">
<CellData Scalars="pressure_l">
<DataArray type="Float32" Name="pressure_l" NumberOfComponents="1" format="ascii">
2.63077e+07 2.63082e+07 2.63087e+07 2.6309e+07 2.63093e+07 2.63096e+07 2.63099e+07 2.63103e+07 2.63107e+07 2.63111e+07 2.63116e+07 2.63119e+07
2.62811e+07 2.62817e+07 2.62822e+07 2.62826e+07 2.62829e+07 2.62831e+07 2.62834e+07 2.62838e+07 2.62842e+07 2.62848e+07 2.62854e+07 2.62859e+07
2.62547e+07 2.62554e+07 2.62558e+07 2.62562e+07 2.62564e+07 2.62567e+07 2.6257e+07 2.62574e+07 2.62579e+07 2.62585e+07 2.62594e+07 2.62608e+07
2.62288e+07 2.62293e+07 2.62296e+07 2.62299e+07 2.62301e+07 2.62303e+07 2.62306e+07 2.6231e+07 2.62315e+07 2.62322e+07 2.62333e+07 2.62348e+07
2.6203e+07 2.62032e+07 2.62034e+07 2.62036e+07 2.62038e+07 2.6204e+07 2.62042e+07 2.62046e+07 2.62051e+07 2.62058e+07 2.62068e+07 2.62084e+07
2.61772e+07 2.61772e+07 2.61773e+07 2.61774e+07 2.61775e+07 2.61776e+07 2.61778e+07 2.61781e+07 2.61786e+07 2.61792e+07 2.618e+07 2.61813e+07
2.61514e+07 2.61513e+07 2.61512e+07 2.61511e+07 2.61512e+07 2.61513e+07 2.61514e+07 2.61516e+07 2.6152e+07 2.61524e+07 2.61529e+07 2.61535e+07
2.61257e+07 2.61253e+07 2.6125e+07 2.61249e+07 2.61248e+07 2.61249e+07 2.6125e+07 2.61251e+07 2.61254e+07 2.61257e+07 2.6126e+07 2.61263e+07
<CellData Scalars="pressure_liquid">
<DataArray type="Float32" Name="pressure_liquid" NumberOfComponents="1" format="ascii">
2.63242e+07 2.63256e+07 2.63269e+07 2.63282e+07 2.63294e+07 2.63306e+07 2.63317e+07 2.63328e+07 2.63339e+07 2.63349e+07 2.63357e+07 2.63362e+07
2.62976e+07 2.62991e+07 2.63005e+07 2.63017e+07 2.63029e+07 2.63041e+07 2.63052e+07 2.63063e+07 2.63074e+07 2.63085e+07 2.63094e+07 2.63102e+07
2.62711e+07 2.62727e+07 2.62741e+07 2.62753e+07 2.62765e+07 2.62776e+07 2.62787e+07 2.62798e+07 2.6281e+07 2.62821e+07 2.62834e+07 2.62849e+07
2.62452e+07 2.62465e+07 2.62478e+07 2.6249e+07 2.62501e+07 2.62512e+07 2.62523e+07 2.62533e+07 2.62545e+07 2.62557e+07 2.62571e+07 2.62588e+07
2.62193e+07 2.62205e+07 2.62216e+07 2.62226e+07 2.62237e+07 2.62247e+07 2.62258e+07 2.62268e+07 2.62279e+07 2.62291e+07 2.62305e+07 2.62322e+07
2.61935e+07 2.61945e+07 2.61954e+07 2.61964e+07 2.61973e+07 2.61983e+07 2.61992e+07 2.62002e+07 2.62012e+07 2.62023e+07 2.62035e+07 2.6205e+07
2.61678e+07 2.61685e+07 2.61693e+07 2.61701e+07 2.61709e+07 2.61718e+07 2.61727e+07 2.61736e+07 2.61745e+07 2.61754e+07 2.61763e+07 2.61769e+07
2.6142e+07 2.61425e+07 2.61431e+07 2.61438e+07 2.61445e+07 2.61453e+07 2.61462e+07 2.6147e+07 2.61478e+07 2.61486e+07 2.61492e+07 2.61496e+07
</DataArray>
<DataArray type="Float32" Name="pressure_g" NumberOfComponents="1" format="ascii">
2.63127e+07 2.63132e+07 2.63137e+07 2.6314e+07 2.63143e+07 2.63146e+07 2.63149e+07 2.63153e+07 2.63157e+07 2.63161e+07 2.63166e+07 2.63169e+07
2.62861e+07 2.62867e+07 2.62872e+07 2.62876e+07 2.62879e+07 2.62881e+07 2.62884e+07 2.62888e+07 2.62892e+07 2.62898e+07 2.62904e+07 2.62909e+07
2.62597e+07 2.62604e+07 2.62608e+07 2.62612e+07 2.62614e+07 2.62617e+07 2.6262e+07 2.62624e+07 2.62629e+07 2.62635e+07 2.62644e+07 2.62658e+07
2.62338e+07 2.62343e+07 2.62346e+07 2.62349e+07 2.62351e+07 2.62353e+07 2.62356e+07 2.6236e+07 2.62365e+07 2.62372e+07 2.62383e+07 2.62398e+07
2.6208e+07 2.62082e+07 2.62084e+07 2.62086e+07 2.62088e+07 2.6209e+07 2.62092e+07 2.62096e+07 2.62101e+07 2.62108e+07 2.62118e+07 2.62134e+07
2.61822e+07 2.61822e+07 2.61823e+07 2.61824e+07 2.61825e+07 2.61826e+07 2.61828e+07 2.61831e+07 2.61836e+07 2.61842e+07 2.6185e+07 2.61863e+07
2.61564e+07 2.61563e+07 2.61562e+07 2.61561e+07 2.61562e+07 2.61563e+07 2.61564e+07 2.61566e+07 2.6157e+07 2.61574e+07 2.61579e+07 2.61585e+07
2.61307e+07 2.61303e+07 2.613e+07 2.61299e+07 2.61298e+07 2.61299e+07 2.613e+07 2.61301e+07 2.61304e+07 2.61307e+07 2.6131e+07 2.61313e+07
<DataArray type="Float32" Name="pressure_gas" NumberOfComponents="1" format="ascii">
2.63292e+07 2.63306e+07 2.63319e+07 2.63332e+07 2.63344e+07 2.63356e+07 2.63367e+07 2.63378e+07 2.63389e+07 2.63399e+07 2.63407e+07 2.63412e+07
2.63026e+07 2.63041e+07 2.63055e+07 2.63067e+07 2.63079e+07 2.63091e+07 2.63102e+07 2.63113e+07 2.63124e+07 2.63135e+07 2.63144e+07 2.63152e+07
2.62761e+07 2.62777e+07 2.62791e+07 2.62803e+07 2.62815e+07 2.62826e+07 2.62837e+07 2.62848e+07 2.6286e+07 2.62871e+07 2.62884e+07 2.62899e+07
2.62502e+07 2.62515e+07 2.62528e+07 2.6254e+07 2.62551e+07 2.62562e+07 2.62573e+07 2.62583e+07 2.62595e+07 2.62607e+07 2.62621e+07 2.62638e+07
2.62243e+07 2.62255e+07 2.62266e+07 2.62276e+07 2.62287e+07 2.62297e+07 2.62308e+07 2.62318e+07 2.62329e+07 2.62341e+07 2.62355e+07 2.62372e+07
2.61985e+07 2.61995e+07 2.62004e+07 2.62014e+07 2.62023e+07 2.62033e+07 2.62042e+07 2.62052e+07 2.62062e+07 2.62073e+07 2.62085e+07 2.621e+07
2.61728e+07 2.61735e+07 2.61743e+07 2.61751e+07 2.61759e+07 2.61768e+07 2.61777e+07 2.61786e+07 2.61795e+07 2.61804e+07 2.61813e+07 2.61819e+07
2.6147e+07 2.61475e+07 2.61481e+07 2.61488e+07 2.61495e+07 2.61503e+07 2.61512e+07 2.6152e+07 2.61528e+07 2.61536e+07 2.61542e+07 2.61546e+07
</DataArray>
<DataArray type="Float32" Name="density_l" NumberOfComponents="1" format="ascii">
1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.34 1082.34 1082.34
1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32
1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.32
1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.31
1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29
1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28
1082.27 1082.27 1082.27 1082.27 1082.27 1082.27 1082.27 1082.27 1082.27 1082.27 1082.27 1082.27
1082.26 1082.26 1082.26 1082.26 1082.26 1082.26 1082.26 1082.26 1082.26 1082.26 1082.26 1082.26
<DataArray type="Float32" Name="density_liquid" NumberOfComponents="1" format="ascii">
1082.41 1082.41 1082.41 1082.42 1082.42 1082.42 1082.42 1082.42 1082.42 1082.42 1082.42 1082.42
1082.4 1082.4 1082.4 1082.4 1082.4 1082.41 1082.41 1082.41 1082.41 1082.41 1082.41 1082.42
1082.37 1082.39 1082.39 1082.39 1082.39 1082.39 1082.39 1082.4 1082.4 1082.4 1082.41 1084.57
1082.36 1082.38 1082.38 1082.38 1082.38 1082.38 1082.38 1082.38 1082.39 1082.39 1082.4 1084.56
1082.35 1082.37 1082.37 1082.37 1082.37 1082.37 1082.37 1082.37 1082.37 1082.37 1082.39 1084.55
1082.34 1082.36 1082.36 1082.36 1082.36 1082.36 1082.36 1082.36 1082.36 1082.36 1082.37 1084.53
1082.33 1082.35 1082.35 1082.35 1082.35 1082.35 1082.35 1082.35 1082.35 1082.35 1082.35 1082.36
1082.32 1082.34 1082.34 1082.34 1082.34 1082.34 1082.34 1082.34 1082.34 1082.34 1082.34 1082.34
</DataArray>
<DataArray type="Float32" Name="density_g" NumberOfComponents="1" format="ascii">
969.079 969.081 969.083 969.085 969.086 969.088 969.089 969.09 969.092 969.094 969.096 969.098
968.959 968.962 968.964 968.966 968.967 968.968 968.969 968.971 968.973 968.975 968.978 968.981
968.84 968.843 968.845 968.846 968.848 968.849 968.85 968.852 968.854 968.857 968.861 968.865
968.723 968.725 968.727 968.728 968.729 968.73 968.731 968.733 968.735 968.738 968.743 968.748
968.606 968.608 968.609 968.609 968.61 968.611 968.612 968.614 968.616 968.619 968.624 968.629
968.49 968.491 968.491 968.491 968.492 968.492 968.493 968.495 968.496 968.499 968.503 968.507
968.374 968.373 968.373 968.373 968.373 968.373 968.374 968.375 968.377 968.378 968.381 968.383
968.257 968.256 968.255 968.254 968.254 968.254 968.255 968.256 968.257 968.258 968.259 968.26
<DataArray type="Float32" Name="density_gas" NumberOfComponents="1" format="ascii">
969.153 969.159 969.165 969.171 969.176 969.181 969.186 969.191 969.196 969.2 969.204 969.206
969.033 969.04 969.046 969.051 969.057 969.062 969.067 969.072 969.077 969.082 969.086 969.086
968.595 968.921 968.927 968.932 968.938 968.943 968.948 968.953 968.958 968.963 968.965 967.032
968.477 968.802 968.808 968.813 968.818 968.823 968.828 968.833 968.838 968.844 968.846 966.912
968.36 968.685 968.69 968.695 968.699 968.704 968.709 968.713 968.718 968.724 968.726 966.791
968.243 968.568 968.572 968.576 968.581 968.585 968.589 968.594 968.598 968.603 968.604 966.668
968.127 968.451 968.454 968.458 968.462 968.465 968.469 968.474 968.478 968.482 968.485 968.484
968.01 968.333 968.336 968.339 968.342 968.346 968.35 968.353 968.357 968.36 968.363 968.365
</DataArray>
<DataArray type="Float32" Name="saturation_l" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="saturation_liquid" NumberOfComponents="1" format="ascii">
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
@@ -53,7 +53,7 @@
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
</DataArray>
<DataArray type="Float32" Name="saturation_g" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="saturation_gas" NumberOfComponents="1" format="ascii">
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
@@ -63,7 +63,7 @@
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
</DataArray>
<DataArray type="Float32" Name="relativePerm_l" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="relativePerm_liquid" NumberOfComponents="1" format="ascii">
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
@@ -73,7 +73,7 @@
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
</DataArray>
<DataArray type="Float32" Name="relativePerm_g" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="relativePerm_gas" NumberOfComponents="1" format="ascii">
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
@@ -94,54 +94,54 @@
0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3
</DataArray>
<DataArray type="Float32" Name="temperature" NumberOfComponents="1" format="ascii">
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.151
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.151
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.151
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.151
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.233 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.151 293.653
293.233 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.151 293.654
293.233 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.151 293.654
293.233 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.151 293.653
293.233 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.151
293.233 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
</DataArray>
<DataArray type="Float32" Name="moleFrac_l^Brine" NumberOfComponents="1" format="ascii">
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.994995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.994995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.994995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.994995
<DataArray type="Float32" Name="moleFrac_liquid^Brine" NumberOfComponents="1" format="ascii">
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.994981
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.994978 0.989583
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.994975 0.989583
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.994975 0.989583
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.994979 0.989583
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.994979
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
</DataArray>
<DataArray type="Float32" Name="moleFrac_l^CO2" NumberOfComponents="1" format="ascii">
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.00500542
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.00500542
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.00500542
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.00500542
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
<DataArray type="Float32" Name="moleFrac_liquid^CO2" NumberOfComponents="1" format="ascii">
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.00500002
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.00500005 0.00501858
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.00500006 0.00502189 0.0104172
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.00500007 0.00502495 0.0104172
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.00500007 0.00502472 0.0104173
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.00500005 0.00502111 0.0104173
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.00500006 0.00502117
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.00500004
</DataArray>
<DataArray type="Float32" Name="moleFrac_g^Brine" NumberOfComponents="1" format="ascii">
0.00327801 0.00327802 0.00327802 0.00327803 0.00327803 0.00327804 0.00327804 0.00327805 0.00327806 0.00327806 0.00327807 0.00327808
0.0032776 0.00327761 0.00327762 0.00327762 0.00327763 0.00327763 0.00327764 0.00327764 0.00327765 0.00327766 0.00327767 0.00327768
0.0032772 0.0032772 0.00327721 0.00327722 0.00327722 0.00327723 0.00327723 0.00327724 0.00327724 0.00327726 0.00327727 0.00327732
0.0032768 0.0032768 0.00327681 0.00327681 0.00327682 0.00327682 0.00327682 0.00327683 0.00327684 0.00327685 0.00327687 0.00327692
0.0032764 0.0032764 0.0032764 0.00327641 0.00327641 0.00327641 0.00327642 0.00327642 0.00327643 0.00327644 0.00327646 0.00327652
0.00327601 0.003276 0.003276 0.003276 0.003276 0.00327601 0.00327601 0.00327602 0.00327602 0.00327603 0.00327605 0.0032761
0.00327561 0.0032756 0.0032756 0.0032756 0.0032756 0.0032756 0.0032756 0.00327561 0.00327561 0.00327562 0.00327563 0.00327564
0.00327522 0.0032752 0.00327519 0.00327519 0.00327519 0.00327519 0.00327519 0.0032752 0.0032752 0.00327521 0.00327521 0.00327521
<DataArray type="Float32" Name="moleFrac_gas^Brine" NumberOfComponents="1" format="ascii">
0.00327827 0.00327829 0.00327831 0.00327834 0.00327836 0.00327838 0.00327839 0.00327841 0.00327843 0.00327845 0.00327846 0.00327847
0.00327787 0.00327789 0.00327791 0.00327793 0.00327795 0.00327797 0.00327799 0.003278 0.00327802 0.00327804 0.00327806 0.00327809
0.00328526 0.00327748 0.0032775 0.00327752 0.00327754 0.00327756 0.00327758 0.0032776 0.00327762 0.00327764 0.00327768 0.00330738
0.00328488 0.00327708 0.0032771 0.00327712 0.00327714 0.00327716 0.00327717 0.00327719 0.00327721 0.00327723 0.00327728 0.00330699
0.00328449 0.00327668 0.0032767 0.00327671 0.00327673 0.00327675 0.00327676 0.00327678 0.0032768 0.00327682 0.00327687 0.00330658
0.0032841 0.00327628 0.00327629 0.00327631 0.00327632 0.00327634 0.00327636 0.00327637 0.00327639 0.00327641 0.00327645 0.00330613
0.0032837 0.00327588 0.00327589 0.0032759 0.00327592 0.00327593 0.00327595 0.00327596 0.00327598 0.00327599 0.00327601 0.00327604
0.00328331 0.00327548 0.00327548 0.0032755 0.00327551 0.00327552 0.00327554 0.00327555 0.00327556 0.00327558 0.00327559 0.00327559
</DataArray>
<DataArray type="Float32" Name="moleFrac_g^CO2" NumberOfComponents="1" format="ascii">
0.259415 0.259414 0.259414 0.259414 0.259413 0.259413 0.259413 0.259413 0.259413 0.259412 0.259412 0.259412
0.259434 0.259434 0.259433 0.259433 0.259433 0.259433 0.259432 0.259432 0.259432 0.259431 0.259431 0.259431
0.259453 0.259453 0.259452 0.259452 0.259452 0.259452 0.259451 0.259451 0.259451 0.25945 0.25945 0.259731
0.259472 0.259472 0.259471 0.259471 0.259471 0.259471 0.259471 0.25947 0.25947 0.259469 0.259469 0.25975
0.259491 0.25949 0.25949 0.25949 0.25949 0.25949 0.25949 0.259489 0.259489 0.259488 0.259488 0.259769
0.259509 0.259509 0.259509 0.259509 0.259509 0.259509 0.259508 0.259508 0.259508 0.259508 0.259507 0.259788
0.259528 0.259527 0.259528 0.259528 0.259528 0.259527 0.259527 0.259527 0.259527 0.259527 0.259526 0.259526
0.259546 0.259546 0.259546 0.259546 0.259546 0.259546 0.259546 0.259546 0.259546 0.259546 0.259545 0.259545
<DataArray type="Float32" Name="moleFrac_gas^CO2" NumberOfComponents="1" format="ascii">
0.259403 0.259402 0.259401 0.2594 0.259399 0.259398 0.259397 0.259397 0.259396 0.259395 0.259395 0.259395
0.259422 0.259421 0.25942 0.259419 0.259418 0.259417 0.259417 0.259416 0.259415 0.259414 0.259416 0.260378
0.259553 0.25944 0.259439 0.259438 0.259438 0.259437 0.259436 0.259435 0.259434 0.259437 0.26057 0.54193
0.259572 0.259459 0.259458 0.259457 0.259457 0.259456 0.259455 0.259454 0.259454 0.259456 0.260748 0.541974
0.259591 0.259478 0.259477 0.259476 0.259476 0.259475 0.259474 0.259474 0.259473 0.259476 0.260755 0.542017
0.25961 0.259497 0.259496 0.259495 0.259495 0.259494 0.259493 0.259493 0.259492 0.259494 0.260587 0.542061
0.259628 0.259515 0.259515 0.259514 0.259514 0.259513 0.259512 0.259512 0.259511 0.25951 0.259513 0.260609
0.259647 0.259534 0.259533 0.259533 0.259532 0.259532 0.259531 0.259531 0.25953 0.25953 0.259529 0.259531
</DataArray>
</CellData>
<Points>

View File

@@ -2,48 +2,48 @@
<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian">
<UnstructuredGrid>
<Piece NumberOfCells="96" NumberOfPoints="117">
<CellData Scalars="pressure_l">
<DataArray type="Float32" Name="pressure_l" NumberOfComponents="1" format="ascii">
2.60984e+07 2.60983e+07 2.60982e+07 2.60983e+07 2.60984e+07 2.60986e+07 2.60991e+07 2.60999e+07 2.61004e+07 2.61006e+07 2.61006e+07 2.61004e+07
2.60722e+07 2.60721e+07 2.60721e+07 2.60721e+07 2.60722e+07 2.60724e+07 2.60728e+07 2.60736e+07 2.60741e+07 2.60743e+07 2.60743e+07 2.60741e+07
2.60461e+07 2.60461e+07 2.60461e+07 2.60461e+07 2.60461e+07 2.60462e+07 2.60465e+07 2.6047e+07 2.60473e+07 2.60474e+07 2.60474e+07 2.60473e+07
2.602e+07 2.60199e+07 2.60199e+07 2.60199e+07 2.602e+07 2.602e+07 2.60202e+07 2.60205e+07 2.60208e+07 2.60209e+07 2.60209e+07 2.60208e+07
2.59938e+07 2.59937e+07 2.59937e+07 2.59937e+07 2.59938e+07 2.59938e+07 2.59939e+07 2.59943e+07 2.59945e+07 2.59947e+07 2.59947e+07 2.59945e+07
2.59675e+07 2.59675e+07 2.59675e+07 2.59675e+07 2.59675e+07 2.59676e+07 2.59677e+07 2.59682e+07 2.59686e+07 2.59688e+07 2.59688e+07 2.59686e+07
2.59413e+07 2.59412e+07 2.59412e+07 2.59412e+07 2.59412e+07 2.59413e+07 2.59414e+07 2.59417e+07 2.59423e+07 2.59426e+07 2.59426e+07 2.59423e+07
2.59149e+07 2.59149e+07 2.59149e+07 2.59149e+07 2.59149e+07 2.59149e+07 2.59149e+07 2.59151e+07 2.59153e+07 2.59154e+07 2.59154e+07 2.59153e+07
<CellData Scalars="pressure_liquid">
<DataArray type="Float32" Name="pressure_liquid" NumberOfComponents="1" format="ascii">
2.61061e+07 2.61069e+07 2.61078e+07 2.61088e+07 2.61099e+07 2.61112e+07 2.61126e+07 2.61145e+07 2.61153e+07 2.61158e+07 2.61161e+07 2.61162e+07
2.60799e+07 2.60807e+07 2.60817e+07 2.60827e+07 2.60839e+07 2.60852e+07 2.60868e+07 2.60887e+07 2.60895e+07 2.609e+07 2.60904e+07 2.60905e+07
2.60538e+07 2.60547e+07 2.60558e+07 2.60569e+07 2.60581e+07 2.60595e+07 2.60611e+07 2.60629e+07 2.60635e+07 2.60639e+07 2.60643e+07 2.60644e+07
2.60276e+07 2.60287e+07 2.60297e+07 2.60309e+07 2.60322e+07 2.60337e+07 2.60353e+07 2.6037e+07 2.60376e+07 2.6038e+07 2.60383e+07 2.60385e+07
2.60014e+07 2.60025e+07 2.60036e+07 2.60048e+07 2.60062e+07 2.60077e+07 2.60093e+07 2.60112e+07 2.60117e+07 2.60123e+07 2.60126e+07 2.60127e+07
2.59752e+07 2.59763e+07 2.59774e+07 2.59786e+07 2.598e+07 2.59815e+07 2.59832e+07 2.59852e+07 2.5986e+07 2.59867e+07 2.5987e+07 2.59871e+07
2.59489e+07 2.595e+07 2.59511e+07 2.59523e+07 2.59537e+07 2.59551e+07 2.59567e+07 2.59584e+07 2.59599e+07 2.59607e+07 2.59611e+07 2.59611e+07
2.59226e+07 2.59236e+07 2.59247e+07 2.59259e+07 2.59272e+07 2.59287e+07 2.59301e+07 2.59316e+07 2.59329e+07 2.59337e+07 2.59342e+07 2.59342e+07
</DataArray>
<DataArray type="Float32" Name="pressure_g" NumberOfComponents="1" format="ascii">
2.61034e+07 2.61033e+07 2.61032e+07 2.61033e+07 2.61034e+07 2.61036e+07 2.61041e+07 2.61049e+07 2.61054e+07 2.61056e+07 2.61056e+07 2.61054e+07
2.60822e+07 2.60821e+07 2.60821e+07 2.60821e+07 2.60822e+07 2.60824e+07 2.60828e+07 2.60836e+07 2.60841e+07 2.60843e+07 2.60843e+07 2.60841e+07
2.60561e+07 2.60561e+07 2.60561e+07 2.60561e+07 2.60561e+07 2.60562e+07 2.60565e+07 2.6057e+07 2.60573e+07 2.60574e+07 2.60574e+07 2.60573e+07
2.603e+07 2.60299e+07 2.60299e+07 2.60299e+07 2.603e+07 2.603e+07 2.60302e+07 2.60305e+07 2.60308e+07 2.60309e+07 2.60309e+07 2.60308e+07
2.60038e+07 2.60037e+07 2.60037e+07 2.60037e+07 2.60038e+07 2.60038e+07 2.60039e+07 2.60043e+07 2.60045e+07 2.60047e+07 2.60047e+07 2.60045e+07
2.59775e+07 2.59775e+07 2.59775e+07 2.59775e+07 2.59775e+07 2.59776e+07 2.59777e+07 2.59782e+07 2.59786e+07 2.59788e+07 2.59788e+07 2.59786e+07
2.59513e+07 2.59512e+07 2.59512e+07 2.59512e+07 2.59512e+07 2.59513e+07 2.59514e+07 2.59517e+07 2.59523e+07 2.59526e+07 2.59526e+07 2.59523e+07
2.59249e+07 2.59249e+07 2.59249e+07 2.59249e+07 2.59249e+07 2.59249e+07 2.59249e+07 2.59251e+07 2.59253e+07 2.59254e+07 2.59254e+07 2.59253e+07
<DataArray type="Float32" Name="pressure_gas" NumberOfComponents="1" format="ascii">
2.61111e+07 2.61119e+07 2.61128e+07 2.61138e+07 2.61149e+07 2.61162e+07 2.61176e+07 2.61195e+07 2.61203e+07 2.61208e+07 2.61211e+07 2.61212e+07
2.60899e+07 2.60907e+07 2.60917e+07 2.60927e+07 2.60939e+07 2.60952e+07 2.60968e+07 2.60987e+07 2.60995e+07 2.61e+07 2.61004e+07 2.61005e+07
2.60638e+07 2.60647e+07 2.60658e+07 2.60669e+07 2.60681e+07 2.60695e+07 2.60711e+07 2.60729e+07 2.60735e+07 2.60739e+07 2.60743e+07 2.60744e+07
2.60376e+07 2.60387e+07 2.60397e+07 2.60409e+07 2.60422e+07 2.60437e+07 2.60453e+07 2.6047e+07 2.60476e+07 2.6048e+07 2.60483e+07 2.60485e+07
2.60114e+07 2.60125e+07 2.60136e+07 2.60148e+07 2.60162e+07 2.60177e+07 2.60193e+07 2.60212e+07 2.60217e+07 2.60223e+07 2.60226e+07 2.60227e+07
2.59852e+07 2.59863e+07 2.59874e+07 2.59886e+07 2.599e+07 2.59915e+07 2.59932e+07 2.59952e+07 2.5996e+07 2.59967e+07 2.5997e+07 2.59971e+07
2.59589e+07 2.596e+07 2.59611e+07 2.59623e+07 2.59637e+07 2.59651e+07 2.59667e+07 2.59684e+07 2.59699e+07 2.59707e+07 2.59711e+07 2.59711e+07
2.59326e+07 2.59336e+07 2.59347e+07 2.59359e+07 2.59372e+07 2.59387e+07 2.59401e+07 2.59416e+07 2.59429e+07 2.59437e+07 2.59442e+07 2.59442e+07
</DataArray>
<DataArray type="Float32" Name="density_l" NumberOfComponents="1" format="ascii">
1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1019.1 1019.1 1019.1 1019.1
1082.24 1082.24 1082.24 1082.24 1082.24 1082.24 1082.24 1082.24 1019.09 1019.09 1019.09 1019.09
1082.22 1082.22 1082.22 1082.22 1082.22 1082.22 1082.22 1082.23 1019.08 1019.08 1019.08 1019.08
1082.21 1082.21 1082.21 1082.21 1082.21 1082.21 1082.21 1082.21 1019.07 1019.07 1019.07 1019.07
1082.2 1082.2 1082.2 1082.2 1082.2 1082.2 1082.2 1082.2 1019.06 1019.06 1019.06 1019.06
1082.19 1082.19 1082.19 1082.19 1082.19 1082.19 1082.19 1082.19 1019.05 1019.05 1019.05 1019.05
1082.18 1082.18 1082.18 1082.18 1082.18 1082.18 1082.18 1082.18 1082.18 1082.18 1082.18 1082.18
1082.17 1082.17 1082.17 1082.17 1082.17 1082.17 1082.17 1082.17 1082.17 1082.17 1082.17 1082.17
<DataArray type="Float32" Name="density_liquid" NumberOfComponents="1" format="ascii">
1082.32 1082.32 1082.33 1082.33 1082.33 1082.33 1082.33 1082.19 1019.29 1019.21 1019.21 1019.29
1082.31 1082.31 1082.31 1082.31 1082.32 1082.32 1082.32 1082.28 1019.28 1019.21 1019.21 1019.28
1082.3 1082.3 1082.3 1082.3 1082.3 1082.31 1082.31 1082.27 1019.27 1019.2 1019.2 1019.27
1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.3 1082.26 1019.26 1019.19 1019.19 1019.27
1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.25 1019.25 1019.18 1019.18 1019.26
1082.27 1082.27 1082.27 1082.27 1082.27 1082.27 1082.27 1082.24 1019.32 1019.25 1019.25 1019.32
1082.26 1082.26 1082.26 1082.26 1082.26 1082.26 1082.26 1082.26 1082.24 1082.24 1082.24 1082.24
1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25
</DataArray>
<DataArray type="Float32" Name="density_g" NumberOfComponents="1" format="ascii">
968.134 968.134 968.133 968.134 968.134 968.135 968.137 968.14 525.206 525.209 525.209 525.206
968.038 968.038 968.037 968.038 968.038 968.039 968.041 968.044 524.838 524.842 524.842 524.838
967.92 967.919 967.919 967.919 967.92 967.92 967.921 967.923 524.374 524.377 524.377 524.374
967.801 967.801 967.801 967.801 967.801 967.801 967.802 967.803 523.916 523.918 523.918 523.916
967.682 967.682 967.682 967.682 967.682 967.682 967.683 967.684 523.462 523.464 523.464 523.462
967.563 967.563 967.562 967.562 967.563 967.563 967.563 967.565 523.014 523.017 523.017 523.014
967.443 967.443 967.443 967.443 967.443 967.443 967.444 967.445 967.448 967.449 967.449 967.448
967.324 967.323 967.323 967.323 967.323 967.323 967.324 967.324 967.326 967.326 967.326 967.326
<DataArray type="Float32" Name="density_gas" NumberOfComponents="1" format="ascii">
968.169 968.173 968.177 968.181 968.186 968.192 968.194 966.307 525.773 525.471 525.476 525.791
968.073 968.077 968.081 968.086 968.091 968.097 968.104 967.63 525.415 525.112 525.118 525.431
967.954 967.959 967.963 967.968 967.974 967.98 967.987 967.562 524.965 524.661 524.666 524.985
967.836 967.84 967.845 967.85 967.856 967.863 967.87 967.451 524.517 524.213 524.218 524.539
967.717 967.721 967.726 967.732 967.738 967.745 967.752 967.321 524.07 523.767 523.773 524.088
967.597 967.602 967.607 967.613 967.619 967.626 967.633 967.145 523.938 523.637 523.643 523.956
967.478 967.483 967.488 967.493 967.499 967.506 967.513 967.52 967.129 967.16 967.167 967.16
967.359 967.363 967.368 967.373 967.379 967.386 967.392 967.399 967.405 967.408 967.41 967.411
</DataArray>
<DataArray type="Float32" Name="saturation_l" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="saturation_liquid" NumberOfComponents="1" format="ascii">
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
@@ -53,7 +53,7 @@
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
</DataArray>
<DataArray type="Float32" Name="saturation_g" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="saturation_gas" NumberOfComponents="1" format="ascii">
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
@@ -63,7 +63,7 @@
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
</DataArray>
<DataArray type="Float32" Name="relativePerm_l" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="relativePerm_liquid" NumberOfComponents="1" format="ascii">
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
@@ -73,7 +73,7 @@
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
</DataArray>
<DataArray type="Float32" Name="relativePerm_g" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="relativePerm_gas" NumberOfComponents="1" format="ascii">
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
@@ -94,16 +94,16 @@
0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3
</DataArray>
<DataArray type="Float32" Name="temperature" NumberOfComponents="1" format="ascii">
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 393.15 393.15 393.15 393.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 393.15 393.15 393.15 393.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 393.15 393.15 393.15 393.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 393.15 393.15 393.15 393.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 393.15 393.15 393.15 393.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 393.15 393.15 393.15 393.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.151 293.64 393.066 393.15 393.15 393.065
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.275 393.066 393.15 393.15 393.066
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.262 393.066 393.15 393.15 393.064
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.26 393.066 393.15 393.15 393.064
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.264 393.065 393.15 393.15 393.065
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.278 392.981 393.066 393.066 392.981
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.253 293.246 293.244 293.246
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
</DataArray>
<DataArray type="Float32" Name="moleFrac_l^Brine" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="moleFrac_liquid^Brine" NumberOfComponents="1" format="ascii">
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
@@ -113,7 +113,7 @@
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
</DataArray>
<DataArray type="Float32" Name="moleFrac_l^CO2" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="moleFrac_liquid^CO2" NumberOfComponents="1" format="ascii">
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
@@ -123,25 +123,25 @@
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
</DataArray>
<DataArray type="Float32" Name="moleFrac_g^Brine" NumberOfComponents="1" format="ascii">
0.00327478 0.00327478 0.00327478 0.00327478 0.00327478 0.00327479 0.00327479 0.00327484 0.029733 0.0297331 0.0297331 0.029733
0.00327375 0.00327375 0.00327375 0.00327375 0.00327375 0.00327375 0.00327376 0.00327378 0.0297213 0.0297214 0.0297214 0.0297213
0.00327335 0.00327335 0.00327335 0.00327335 0.00327335 0.00327335 0.00327335 0.00327337 0.0297151 0.0297152 0.0297152 0.0297151
0.00327294 0.00327294 0.00327294 0.00327294 0.00327294 0.00327294 0.00327294 0.00327296 0.029709 0.0297091 0.0297091 0.029709
0.00327253 0.00327253 0.00327253 0.00327253 0.00327253 0.00327254 0.00327254 0.00327255 0.029703 0.0297031 0.0297031 0.029703
0.00327213 0.00327213 0.00327213 0.00327213 0.00327213 0.00327213 0.00327213 0.00327215 0.029697 0.0296971 0.0296971 0.029697
0.00327172 0.00327172 0.00327172 0.00327172 0.00327172 0.00327172 0.00327172 0.00327172 0.00327175 0.00327175 0.00327175 0.00327175
0.00327131 0.00327131 0.00327131 0.00327131 0.00327131 0.00327131 0.00327131 0.00327131 0.00327131 0.00327132 0.00327132 0.00327131
<DataArray type="Float32" Name="moleFrac_gas^Brine" NumberOfComponents="1" format="ascii">
0.0032749 0.00327492 0.00327493 0.00327495 0.00327497 0.00327499 0.00327512 0.00332156 0.0296904 0.0297367 0.0297368 0.0296904
0.00327387 0.00327388 0.0032739 0.00327392 0.00327394 0.00327396 0.00327399 0.0032858 0.0296786 0.0297252 0.0297252 0.0296788
0.00327347 0.00327348 0.0032735 0.00327352 0.00327354 0.00327356 0.00327359 0.0032842 0.0296726 0.0297192 0.0297192 0.0296722
0.00327306 0.00327308 0.0032731 0.00327312 0.00327314 0.00327316 0.00327319 0.00328361 0.0296667 0.0297132 0.0297133 0.0296659
0.00327265 0.00327267 0.00327269 0.00327271 0.00327273 0.00327276 0.00327279 0.00328352 0.0296607 0.0297073 0.0297073 0.0296608
0.00327225 0.00327226 0.00327228 0.0032723 0.00327233 0.00327235 0.00327239 0.00328451 0.0296085 0.029655 0.0296551 0.0296088
0.00327184 0.00327185 0.00327187 0.00327189 0.00327192 0.00327194 0.00327197 0.00327201 0.0032817 0.00328106 0.00328094 0.00328112
0.00327143 0.00327144 0.00327146 0.00327148 0.0032715 0.00327153 0.00327155 0.00327158 0.0032716 0.00327162 0.00327162 0.00327163
</DataArray>
<DataArray type="Float32" Name="moleFrac_g^CO2" NumberOfComponents="1" format="ascii">
0.259566 0.259566 0.259566 0.259566 0.259566 0.259566 0.259565 0.259565 0.302146 0.302145 0.302145 0.302146
0.259535 0.259535 0.259535 0.259535 0.259535 0.259535 0.259535 0.259534 0.302216 0.302215 0.302215 0.302216
0.259554 0.259554 0.259554 0.259554 0.259554 0.259554 0.259554 0.259554 0.302346 0.302345 0.302345 0.302346
0.259573 0.259573 0.259573 0.259573 0.259573 0.259573 0.259573 0.259573 0.302475 0.302474 0.302474 0.302475
0.259592 0.259592 0.259592 0.259592 0.259592 0.259592 0.259592 0.259592 0.302602 0.302601 0.302601 0.302602
0.259611 0.259611 0.259611 0.259611 0.259611 0.259611 0.259611 0.259611 0.302728 0.302727 0.302727 0.302728
0.25963 0.25963 0.25963 0.25963 0.25963 0.25963 0.25963 0.25963 0.25963 0.25963 0.25963 0.25963
0.259649 0.25965 0.25965 0.25965 0.25965 0.25965 0.259649 0.259649 0.259649 0.259649 0.259649 0.259649
<DataArray type="Float32" Name="moleFrac_gas^CO2" NumberOfComponents="1" format="ascii">
0.25956 0.25956 0.259559 0.259558 0.259557 0.259557 0.259557 0.260221 0.302203 0.302071 0.302069 0.302199
0.25953 0.259529 0.259528 0.259528 0.259527 0.259526 0.259525 0.259693 0.302271 0.302138 0.302136 0.302266
0.259549 0.259548 0.259547 0.259547 0.259546 0.259545 0.259544 0.259694 0.302397 0.302265 0.302263 0.302395
0.259568 0.259567 0.259566 0.259566 0.259565 0.259564 0.259562 0.259711 0.302523 0.302391 0.302389 0.302522
0.259587 0.259586 0.259585 0.259584 0.259583 0.259582 0.259581 0.259734 0.302649 0.302516 0.302514 0.302644
0.259606 0.259605 0.259604 0.259603 0.259602 0.259601 0.2596 0.259773 0.302903 0.30277 0.302768 0.302898
0.259625 0.259624 0.259623 0.259622 0.259621 0.25962 0.259619 0.259618 0.259757 0.259747 0.259744 0.259747
0.259644 0.259643 0.259642 0.259641 0.25964 0.259639 0.259638 0.259637 0.259637 0.259636 0.259636 0.259636
</DataArray>
</CellData>
<Points>

View File

@@ -2,48 +2,48 @@
<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian">
<UnstructuredGrid>
<Piece NumberOfCells="96" NumberOfPoints="117">
<CellData Scalars="pressure_l">
<DataArray type="Float32" Name="pressure_l" NumberOfComponents="1" format="ascii">
2.60999e+07 2.60991e+07 2.60987e+07 2.60985e+07 2.60984e+07 2.60984e+07 2.60985e+07 2.60986e+07 2.60988e+07 2.60991e+07 2.60993e+07 2.60994e+07
2.60736e+07 2.60728e+07 2.60724e+07 2.60722e+07 2.60722e+07 2.60722e+07 2.60722e+07 2.60723e+07 2.60724e+07 2.60725e+07 2.60726e+07 2.60726e+07
2.6047e+07 2.60465e+07 2.60462e+07 2.60461e+07 2.60461e+07 2.60461e+07 2.60461e+07 2.60461e+07 2.60462e+07 2.60462e+07 2.60462e+07 2.60462e+07
2.60205e+07 2.60202e+07 2.602e+07 2.602e+07 2.602e+07 2.60199e+07 2.60199e+07 2.602e+07 2.602e+07 2.602e+07 2.602e+07 2.602e+07
2.59943e+07 2.59939e+07 2.59938e+07 2.59938e+07 2.59937e+07 2.59937e+07 2.59937e+07 2.59937e+07 2.59937e+07 2.59937e+07 2.59938e+07 2.59938e+07
2.59682e+07 2.59677e+07 2.59676e+07 2.59675e+07 2.59675e+07 2.59675e+07 2.59675e+07 2.59675e+07 2.59675e+07 2.59675e+07 2.59675e+07 2.59675e+07
2.59417e+07 2.59414e+07 2.59413e+07 2.59412e+07 2.59412e+07 2.59412e+07 2.59412e+07 2.59412e+07 2.59412e+07 2.59412e+07 2.59412e+07 2.59412e+07
2.59151e+07 2.59149e+07 2.59149e+07 2.59149e+07 2.59149e+07 2.59149e+07 2.59149e+07 2.59149e+07 2.59149e+07 2.59149e+07 2.59149e+07 2.59149e+07
<CellData Scalars="pressure_liquid">
<DataArray type="Float32" Name="pressure_liquid" NumberOfComponents="1" format="ascii">
2.61161e+07 2.61163e+07 2.61168e+07 2.61174e+07 2.61181e+07 2.61188e+07 2.61196e+07 2.61204e+07 2.61212e+07 2.61218e+07 2.61224e+07 2.61227e+07
2.60903e+07 2.60903e+07 2.60907e+07 2.60912e+07 2.60918e+07 2.60924e+07 2.60931e+07 2.60938e+07 2.60944e+07 2.6095e+07 2.60954e+07 2.60957e+07
2.60645e+07 2.60646e+07 2.60648e+07 2.60651e+07 2.60656e+07 2.60661e+07 2.60666e+07 2.60671e+07 2.60676e+07 2.6068e+07 2.60684e+07 2.60685e+07
2.60386e+07 2.60386e+07 2.60388e+07 2.6039e+07 2.60393e+07 2.60397e+07 2.60401e+07 2.60405e+07 2.60409e+07 2.60412e+07 2.60415e+07 2.60416e+07
2.60127e+07 2.60127e+07 2.60127e+07 2.60128e+07 2.6013e+07 2.60133e+07 2.60136e+07 2.60139e+07 2.60142e+07 2.60145e+07 2.60146e+07 2.60147e+07
2.59869e+07 2.59866e+07 2.59865e+07 2.59865e+07 2.59867e+07 2.59869e+07 2.59871e+07 2.59874e+07 2.59876e+07 2.59878e+07 2.59879e+07 2.5988e+07
2.59606e+07 2.59603e+07 2.59602e+07 2.59602e+07 2.59603e+07 2.59604e+07 2.59606e+07 2.59608e+07 2.5961e+07 2.59612e+07 2.59613e+07 2.59613e+07
2.5934e+07 2.59338e+07 2.59337e+07 2.59337e+07 2.59338e+07 2.59339e+07 2.59341e+07 2.59342e+07 2.59344e+07 2.59346e+07 2.59347e+07 2.59347e+07
</DataArray>
<DataArray type="Float32" Name="pressure_g" NumberOfComponents="1" format="ascii">
2.61049e+07 2.61041e+07 2.61037e+07 2.61035e+07 2.61034e+07 2.61034e+07 2.61035e+07 2.61036e+07 2.61038e+07 2.61041e+07 2.61043e+07 2.61044e+07
2.60836e+07 2.60828e+07 2.60824e+07 2.60822e+07 2.60822e+07 2.60822e+07 2.60822e+07 2.60823e+07 2.60824e+07 2.60825e+07 2.60826e+07 2.60826e+07
2.6057e+07 2.60565e+07 2.60562e+07 2.60561e+07 2.60561e+07 2.60561e+07 2.60561e+07 2.60561e+07 2.60562e+07 2.60562e+07 2.60562e+07 2.60562e+07
2.60305e+07 2.60302e+07 2.603e+07 2.603e+07 2.603e+07 2.60299e+07 2.60299e+07 2.603e+07 2.603e+07 2.603e+07 2.603e+07 2.603e+07
2.60043e+07 2.60039e+07 2.60038e+07 2.60038e+07 2.60037e+07 2.60037e+07 2.60037e+07 2.60037e+07 2.60037e+07 2.60037e+07 2.60038e+07 2.60038e+07
2.59782e+07 2.59777e+07 2.59776e+07 2.59775e+07 2.59775e+07 2.59775e+07 2.59775e+07 2.59775e+07 2.59775e+07 2.59775e+07 2.59775e+07 2.59775e+07
2.59517e+07 2.59514e+07 2.59513e+07 2.59512e+07 2.59512e+07 2.59512e+07 2.59512e+07 2.59512e+07 2.59512e+07 2.59512e+07 2.59512e+07 2.59512e+07
2.59251e+07 2.59249e+07 2.59249e+07 2.59249e+07 2.59249e+07 2.59249e+07 2.59249e+07 2.59249e+07 2.59249e+07 2.59249e+07 2.59249e+07 2.59249e+07
<DataArray type="Float32" Name="pressure_gas" NumberOfComponents="1" format="ascii">
2.61211e+07 2.61213e+07 2.61218e+07 2.61224e+07 2.61231e+07 2.61238e+07 2.61246e+07 2.61254e+07 2.61262e+07 2.61268e+07 2.61274e+07 2.61277e+07
2.61003e+07 2.61003e+07 2.61007e+07 2.61012e+07 2.61018e+07 2.61024e+07 2.61031e+07 2.61038e+07 2.61044e+07 2.6105e+07 2.61054e+07 2.61057e+07
2.60745e+07 2.60746e+07 2.60748e+07 2.60751e+07 2.60756e+07 2.60761e+07 2.60766e+07 2.60771e+07 2.60776e+07 2.6078e+07 2.60784e+07 2.60785e+07
2.60486e+07 2.60486e+07 2.60488e+07 2.6049e+07 2.60493e+07 2.60497e+07 2.60501e+07 2.60505e+07 2.60509e+07 2.60512e+07 2.60515e+07 2.60516e+07
2.60227e+07 2.60227e+07 2.60227e+07 2.60228e+07 2.6023e+07 2.60233e+07 2.60236e+07 2.60239e+07 2.60242e+07 2.60245e+07 2.60246e+07 2.60247e+07
2.59969e+07 2.59966e+07 2.59965e+07 2.59965e+07 2.59967e+07 2.59969e+07 2.59971e+07 2.59974e+07 2.59976e+07 2.59978e+07 2.59979e+07 2.5998e+07
2.59706e+07 2.59703e+07 2.59702e+07 2.59702e+07 2.59703e+07 2.59704e+07 2.59706e+07 2.59708e+07 2.5971e+07 2.59712e+07 2.59713e+07 2.59713e+07
2.5944e+07 2.59438e+07 2.59437e+07 2.59437e+07 2.59438e+07 2.59439e+07 2.59441e+07 2.59442e+07 2.59444e+07 2.59446e+07 2.59447e+07 2.59447e+07
</DataArray>
<DataArray type="Float32" Name="density_l" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="density_liquid" NumberOfComponents="1" format="ascii">
1082.29 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33 1082.33
1082.29 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32 1082.32
1082.28 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31 1082.31
1082.27 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3 1082.3
1082.26 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29 1082.29
1082.25 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28 1082.28
1082.27 1082.26 1082.26 1082.26 1082.26 1082.26 1082.27 1082.27 1082.27 1082.27 1082.27 1082.27
1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25 1082.25
1082.24 1082.24 1082.24 1082.24 1082.24 1082.24 1082.24 1082.24 1082.24 1082.24 1082.24 1082.24
1082.23 1082.22 1082.22 1082.22 1082.22 1082.22 1082.22 1082.22 1082.22 1082.22 1082.22 1082.22
1082.21 1082.21 1082.21 1082.21 1082.21 1082.21 1082.21 1082.21 1082.21 1082.21 1082.21 1082.21
1082.2 1082.2 1082.2 1082.2 1082.2 1082.2 1082.2 1082.2 1082.2 1082.2 1082.2 1082.2
1082.19 1082.19 1082.19 1082.19 1082.19 1082.19 1082.19 1082.19 1082.19 1082.19 1082.19 1082.19
1082.18 1082.18 1082.18 1082.18 1082.18 1082.18 1082.18 1082.18 1082.18 1082.18 1082.18 1082.18
1082.17 1082.17 1082.17 1082.17 1082.17 1082.17 1082.17 1082.17 1082.17 1082.17 1082.17 1082.17
</DataArray>
<DataArray type="Float32" Name="density_g" NumberOfComponents="1" format="ascii">
968.14 968.137 968.136 968.135 968.134 968.134 968.135 968.135 968.136 968.137 968.138 968.139
968.044 968.041 968.039 968.038 968.038 968.038 968.038 968.038 968.039 968.039 968.04 968.04
967.923 967.921 967.92 967.92 967.919 967.919 967.919 967.92 967.92 967.92 967.92 967.92
967.803 967.802 967.801 967.801 967.801 967.801 967.801 967.801 967.801 967.801 967.801 967.801
967.684 967.683 967.682 967.682 967.682 967.682 967.682 967.682 967.682 967.682 967.682 967.682
967.565 967.563 967.563 967.563 967.562 967.562 967.562 967.562 967.562 967.562 967.562 967.562
967.445 967.444 967.443 967.443 967.443 967.443 967.443 967.443 967.443 967.443 967.443 967.443
967.324 967.324 967.323 967.323 967.323 967.323 967.323 967.323 967.323 967.323 967.323 967.323
<DataArray type="Float32" Name="density_gas" NumberOfComponents="1" format="ascii">
967.656 968.215 968.217 968.22 968.223 968.227 968.23 968.234 968.237 968.24 968.242 968.244
967.763 968.12 968.121 968.124 968.126 968.129 968.132 968.135 968.138 968.141 968.143 968.144
967.679 968.003 968.004 968.005 968.007 968.01 968.012 968.014 968.017 968.018 968.02 968.021
967.562 967.885 967.886 967.887 967.888 967.89 967.892 967.893 967.895 967.897 967.898 967.898
967.442 967.767 967.767 967.768 967.769 967.77 967.771 967.773 967.774 967.775 967.776 967.776
967.28 967.648 967.648 967.648 967.649 967.65 967.651 967.652 967.653 967.654 967.655 967.655
967.53 967.529 967.529 967.529 967.529 967.53 967.531 967.531 967.532 967.533 967.534 967.534
967.41 967.409 967.409 967.409 967.409 967.409 967.41 967.411 967.412 967.412 967.413 967.413
</DataArray>
<DataArray type="Float32" Name="saturation_l" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="saturation_liquid" NumberOfComponents="1" format="ascii">
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
@@ -53,7 +53,7 @@
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
</DataArray>
<DataArray type="Float32" Name="saturation_g" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="saturation_gas" NumberOfComponents="1" format="ascii">
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
@@ -63,7 +63,7 @@
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
</DataArray>
<DataArray type="Float32" Name="relativePerm_l" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="relativePerm_liquid" NumberOfComponents="1" format="ascii">
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
@@ -73,7 +73,7 @@
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
</DataArray>
<DataArray type="Float32" Name="relativePerm_g" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="relativePerm_gas" NumberOfComponents="1" format="ascii">
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
@@ -94,16 +94,16 @@
0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3
</DataArray>
<DataArray type="Float32" Name="temperature" NumberOfComponents="1" format="ascii">
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.294 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.242 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.234 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.234 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.234 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.246 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15 293.15
</DataArray>
<DataArray type="Float32" Name="moleFrac_l^Brine" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="moleFrac_liquid^Brine" NumberOfComponents="1" format="ascii">
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
@@ -113,7 +113,7 @@
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995 0.995
</DataArray>
<DataArray type="Float32" Name="moleFrac_l^CO2" NumberOfComponents="1" format="ascii">
<DataArray type="Float32" Name="moleFrac_liquid^CO2" NumberOfComponents="1" format="ascii">
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
@@ -123,25 +123,25 @@
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005
</DataArray>
<DataArray type="Float32" Name="moleFrac_g^Brine" NumberOfComponents="1" format="ascii">
0.00327484 0.00327479 0.00327479 0.00327478 0.00327478 0.00327478 0.00327478 0.00327479 0.00327479 0.00327479 0.0032748 0.0032748
0.00327378 0.00327376 0.00327375 0.00327375 0.00327375 0.00327375 0.00327375 0.00327375 0.00327375 0.00327376 0.00327376 0.00327376
0.00327337 0.00327335 0.00327335 0.00327335 0.00327335 0.00327335 0.00327335 0.00327335 0.00327335 0.00327335 0.00327335 0.00327335
0.00327296 0.00327295 0.00327294 0.00327294 0.00327294 0.00327294 0.00327294 0.00327294 0.00327294 0.00327294 0.00327294 0.00327294
0.00327255 0.00327254 0.00327254 0.00327253 0.00327253 0.00327253 0.00327253 0.00327253 0.00327253 0.00327253 0.00327253 0.00327253
0.00327215 0.00327213 0.00327213 0.00327213 0.00327213 0.00327213 0.00327213 0.00327213 0.00327213 0.00327213 0.00327213 0.00327213
0.00327172 0.00327172 0.00327172 0.00327172 0.00327172 0.00327172 0.00327172 0.00327172 0.00327172 0.00327172 0.00327172 0.00327172
0.00327131 0.00327131 0.00327131 0.00327131 0.00327131 0.00327131 0.00327131 0.00327131 0.00327131 0.00327131 0.00327131 0.00327131
<DataArray type="Float32" Name="moleFrac_gas^Brine" NumberOfComponents="1" format="ascii">
0.00328871 0.00327508 0.00327508 0.00327509 0.0032751 0.00327511 0.00327513 0.00327514 0.00327515 0.00327516 0.00327517 0.00327518
0.00328275 0.00327405 0.00327405 0.00327406 0.00327407 0.00327408 0.00327409 0.0032741 0.00327411 0.00327412 0.00327413 0.00327413
0.00328152 0.00327365 0.00327365 0.00327365 0.00327366 0.00327367 0.00327368 0.00327369 0.0032737 0.0032737 0.00327371 0.00327371
0.00328111 0.00327325 0.00327325 0.00327325 0.00327325 0.00327326 0.00327327 0.00327327 0.00327328 0.00327329 0.00327329 0.00327329
0.00328075 0.00327284 0.00327284 0.00327284 0.00327285 0.00327285 0.00327286 0.00327286 0.00327287 0.00327287 0.00327287 0.00327288
0.00328145 0.00327244 0.00327243 0.00327243 0.00327244 0.00327244 0.00327244 0.00327245 0.00327245 0.00327246 0.00327246 0.00327246
0.00327204 0.00327203 0.00327202 0.00327202 0.00327203 0.00327203 0.00327203 0.00327203 0.00327204 0.00327204 0.00327204 0.00327204
0.00327162 0.00327161 0.00327161 0.00327161 0.00327161 0.00327162 0.00327162 0.00327162 0.00327162 0.00327163 0.00327163 0.00327163
</DataArray>
<DataArray type="Float32" Name="moleFrac_g^CO2" NumberOfComponents="1" format="ascii">
0.259565 0.259565 0.259566 0.259566 0.259566 0.259566 0.259566 0.259566 0.259566 0.259565 0.259565 0.259565
0.259534 0.259535 0.259535 0.259535 0.259535 0.259535 0.259535 0.259535 0.259535 0.259535 0.259535 0.259535
0.259554 0.259554 0.259554 0.259554 0.259554 0.259554 0.259554 0.259554 0.259554 0.259554 0.259554 0.259554
0.259573 0.259573 0.259573 0.259573 0.259573 0.259573 0.259573 0.259573 0.259573 0.259573 0.259573 0.259573
0.259592 0.259592 0.259592 0.259592 0.259592 0.259592 0.259592 0.259592 0.259592 0.259592 0.259592 0.259592
0.259611 0.259611 0.259611 0.259611 0.259611 0.259611 0.259611 0.259611 0.259611 0.259611 0.259611 0.259611
0.25963 0.25963 0.25963 0.25963 0.25963 0.25963 0.25963 0.25963 0.25963 0.25963 0.25963 0.25963
0.259649 0.259649 0.25965 0.25965 0.25965 0.25965 0.25965 0.25965 0.25965 0.25965 0.25965 0.25965
<DataArray type="Float32" Name="moleFrac_gas^CO2" NumberOfComponents="1" format="ascii">
0.259749 0.259553 0.259552 0.259552 0.259552 0.259551 0.25955 0.25955 0.259549 0.259549 0.259548 0.259548
0.259647 0.259522 0.259522 0.259522 0.259521 0.259521 0.25952 0.25952 0.259519 0.259519 0.259519 0.259518
0.259654 0.259541 0.259541 0.259541 0.25954 0.25954 0.25954 0.259539 0.259539 0.259539 0.259538 0.259538
0.259673 0.25956 0.25956 0.25956 0.25956 0.259559 0.259559 0.259559 0.259558 0.259558 0.259558 0.259558
0.259693 0.259579 0.259579 0.259579 0.259579 0.259578 0.259578 0.259578 0.259578 0.259578 0.259577 0.259577
0.259727 0.259598 0.259598 0.259598 0.259598 0.259598 0.259597 0.259597 0.259597 0.259597 0.259597 0.259597
0.259617 0.259617 0.259617 0.259617 0.259617 0.259617 0.259617 0.259616 0.259616 0.259616 0.259616 0.259616
0.259636 0.259636 0.259636 0.259636 0.259636 0.259636 0.259636 0.259636 0.259635 0.259635 0.259635 0.259635
</DataArray>
</CellData>
<Points>