mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Suppot EQUIL + WATER + GAS
This commit is contained in:
106
tests/equil_co2store_go.DATA
Normal file
106
tests/equil_co2store_go.DATA
Normal file
@@ -0,0 +1,106 @@
|
||||
NOECHO
|
||||
|
||||
RUNSPEC ======
|
||||
|
||||
OIL
|
||||
GAS
|
||||
CO2STORE
|
||||
|
||||
TABDIMS
|
||||
1 1 40 20 1 20 /
|
||||
|
||||
DIMENS
|
||||
1 1 20
|
||||
/
|
||||
|
||||
WELLDIMS
|
||||
30 10 2 30 /
|
||||
|
||||
START
|
||||
1 'JAN' 1990 /
|
||||
|
||||
NSTACK
|
||||
25 /
|
||||
|
||||
EQLDIMS
|
||||
-- NTEQUL
|
||||
1 /
|
||||
|
||||
|
||||
FMTOUT
|
||||
FMTIN
|
||||
|
||||
GRID ======
|
||||
|
||||
DXV
|
||||
1.0
|
||||
/
|
||||
|
||||
DYV
|
||||
1.0
|
||||
/
|
||||
|
||||
DZV
|
||||
20*5.0
|
||||
/
|
||||
|
||||
|
||||
PORO
|
||||
20*0.2
|
||||
/
|
||||
|
||||
|
||||
PERMZ
|
||||
20*1.0
|
||||
/
|
||||
|
||||
PERMY
|
||||
20*100.0
|
||||
/
|
||||
|
||||
PERMX
|
||||
20*100.0
|
||||
/
|
||||
|
||||
BOX
|
||||
1 1 1 1 1 1 /
|
||||
|
||||
TOPS
|
||||
0.0
|
||||
/
|
||||
|
||||
PROPS ======
|
||||
|
||||
SGOF
|
||||
0 0 1 0.1
|
||||
0.9 1 0 0.5
|
||||
/
|
||||
|
||||
ROCK
|
||||
--RefPres Comp
|
||||
1. 5.0E-5 /
|
||||
|
||||
SOLUTION ======
|
||||
|
||||
EQUIL
|
||||
100 150 1000 1* 50 0.2 1* 1* 0
|
||||
/
|
||||
|
||||
RPTSOL
|
||||
'PRES' 'PGAS' 'SOIL' 'SGAS' 'RS' 'RESTART=2' /
|
||||
|
||||
SUMMARY ======
|
||||
RUNSUM
|
||||
|
||||
SEPARATE
|
||||
|
||||
SCHEDULE ======
|
||||
|
||||
TSTEP
|
||||
1 /
|
||||
|
||||
RPTSCHED
|
||||
'PRES' 'PGAS' 'SOIL' 'SGAS' 'RS' 'RESTART=3' 'NEWTON=2' /
|
||||
|
||||
|
||||
END
|
111
tests/equil_co2store_gw.DATA
Normal file
111
tests/equil_co2store_gw.DATA
Normal file
@@ -0,0 +1,111 @@
|
||||
NOECHO
|
||||
|
||||
RUNSPEC ======
|
||||
|
||||
WATER
|
||||
GAS
|
||||
CO2STORE
|
||||
|
||||
TABDIMS
|
||||
1 1 40 20 1 20 /
|
||||
|
||||
DIMENS
|
||||
1 1 20
|
||||
/
|
||||
|
||||
WELLDIMS
|
||||
30 10 2 30 /
|
||||
|
||||
START
|
||||
1 'JAN' 1990 /
|
||||
|
||||
NSTACK
|
||||
25 /
|
||||
|
||||
EQLDIMS
|
||||
-- NTEQUL
|
||||
1 /
|
||||
|
||||
|
||||
FMTOUT
|
||||
FMTIN
|
||||
|
||||
GRID ======
|
||||
|
||||
DXV
|
||||
1.0
|
||||
/
|
||||
|
||||
DYV
|
||||
1.0
|
||||
/
|
||||
|
||||
DZV
|
||||
20*5.0
|
||||
/
|
||||
|
||||
|
||||
PORO
|
||||
20*0.2
|
||||
/
|
||||
|
||||
|
||||
PERMZ
|
||||
20*1.0
|
||||
/
|
||||
|
||||
PERMY
|
||||
20*100.0
|
||||
/
|
||||
|
||||
PERMX
|
||||
20*100.0
|
||||
/
|
||||
|
||||
BOX
|
||||
1 1 1 1 1 1 /
|
||||
|
||||
TOPS
|
||||
0.0
|
||||
/
|
||||
|
||||
PROPS ======
|
||||
|
||||
SWFN
|
||||
0.1 0 0.5
|
||||
1 1 0.1
|
||||
/
|
||||
|
||||
SGFN
|
||||
0 0 0.0
|
||||
0.9 1 0.0
|
||||
/
|
||||
|
||||
ROCK
|
||||
--RefPres Comp
|
||||
1. 5.0E-5 /
|
||||
|
||||
SOLUTION ======
|
||||
|
||||
EQUIL
|
||||
100 150 50 0.2 1000 1* 1* 1* 0
|
||||
/
|
||||
|
||||
RPTSOL
|
||||
'PRES' 'PGAS' 'PWAT' 'SWAT' 'SGAS' 'RSW' 'RESTART=2' /
|
||||
|
||||
SUMMARY ======
|
||||
RUNSUM
|
||||
|
||||
SEPARATE
|
||||
|
||||
SCHEDULE ======
|
||||
|
||||
TSTEP
|
||||
1 /
|
||||
|
||||
RPTSCHED
|
||||
'PRES' 'PGAS' 'PWAT' 'SWAT' 'SGAS' 'RSW' 'RESTART=3' 'NEWTON=2' /
|
||||
|
||||
|
||||
END
|
@@ -790,6 +790,49 @@ BOOST_AUTO_TEST_CASE(DeckWithLiveOil)
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DeckWithCO2STORE)
|
||||
{
|
||||
using TypeTag = Opm::Properties::TTag::TestEquilTypeTag;
|
||||
using FluidSystem = Opm::GetPropType<TypeTag, Opm::Properties::FluidSystem>;
|
||||
auto simulator1 = initSimulator<TypeTag>("equil_co2store_go.DATA");
|
||||
EquilFixture::Initializer comp_go(*simulator1->problem().materialLawManager(),
|
||||
simulator1->vanguard().eclState(),
|
||||
simulator1->vanguard().grid(),
|
||||
simulator1->vanguard().gridView(),
|
||||
simulator1->vanguard().cartesianMapper(), 9.80665);
|
||||
|
||||
auto simulator2 = initSimulator<TypeTag>("equil_co2store_gw.DATA");
|
||||
EquilFixture::Initializer comp_gw(*simulator2->problem().materialLawManager(),
|
||||
simulator2->vanguard().eclState(),
|
||||
simulator2->vanguard().grid(),
|
||||
simulator2->vanguard().gridView(),
|
||||
simulator2->vanguard().cartesianMapper(), 9.80665);
|
||||
|
||||
Opm::GridManager gm(simulator2->vanguard().eclState().getInputGrid());
|
||||
const UnstructuredGrid& grid = *(gm.c_grid());
|
||||
|
||||
const double reltol = 1.0e-5;
|
||||
const auto& pressures_go = comp_go.press();
|
||||
BOOST_REQUIRE_EQUAL(pressures_go.size(), 3U);
|
||||
BOOST_REQUIRE_EQUAL(int(pressures_go[0].size()), grid.number_of_cells);
|
||||
|
||||
const auto& pressures_gw = comp_gw.press();
|
||||
BOOST_REQUIRE_EQUAL(pressures_gw.size(), 3U);
|
||||
BOOST_REQUIRE_EQUAL(int(pressures_gw[0].size()), grid.number_of_cells);
|
||||
|
||||
const auto& sats_go = comp_go.saturation();
|
||||
const auto& sats_gw = comp_gw.saturation();
|
||||
|
||||
for (int i = 0; i < grid.number_of_cells; ++i) {
|
||||
BOOST_CHECK_CLOSE(pressures_go[FluidSystem::gasPhaseIdx][i], pressures_gw[FluidSystem::gasPhaseIdx][i], reltol);
|
||||
BOOST_CHECK_CLOSE(pressures_go[FluidSystem::oilPhaseIdx][i], pressures_gw[FluidSystem::waterPhaseIdx][i], reltol);
|
||||
|
||||
BOOST_CHECK_CLOSE(sats_go[FluidSystem::gasPhaseIdx][i], sats_gw[FluidSystem::gasPhaseIdx][i], reltol);
|
||||
BOOST_CHECK_CLOSE(sats_go[FluidSystem::oilPhaseIdx][i], sats_gw[FluidSystem::waterPhaseIdx][i], reltol);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DeckWithWetGas)
|
||||
{
|
||||
using TypeTag = Opm::Properties::TTag::TestEquilTypeTag;
|
||||
|
Reference in New Issue
Block a user