From dcc52eb22571df9d1c7b22f5378fcf77c8395609 Mon Sep 17 00:00:00 2001 From: Joakim Hove Date: Wed, 22 Jan 2020 10:48:13 +0100 Subject: [PATCH] Add testdata --- CMakeLists_files.cmake | 3 + tests/SPE1CASE2.DATA | 442 ++++++++++++++++++++++++++ tests/SPE1CASE2.X0060 | Bin 0 -> 19832 bytes tests/SPE1CASE2_RESTART.DATA | 426 +++++++++++++++++++++++++ tests/parser/ScheduleRestartTests.cpp | 54 ++++ 5 files changed, 925 insertions(+) create mode 100644 tests/SPE1CASE2.DATA create mode 100644 tests/SPE1CASE2.X0060 create mode 100644 tests/SPE1CASE2_RESTART.DATA create mode 100644 tests/parser/ScheduleRestartTests.cpp diff --git a/CMakeLists_files.cmake b/CMakeLists_files.cmake index 3e0c16c55..d8c5f1bc6 100644 --- a/CMakeLists_files.cmake +++ b/CMakeLists_files.cmake @@ -409,6 +409,9 @@ if(ENABLE_ECL_OUTPUT) tests/include_sgof.txt tests/include_swof.txt tests/include_grid_3x5x4.grdecl + tests/SPE1CASE2.DATA + tests/SPE1CASE2_RESTART.DATA + tests/SPE1CASE2.X0060 ) endif() diff --git a/tests/SPE1CASE2.DATA b/tests/SPE1CASE2.DATA new file mode 100644 index 000000000..e25de920f --- /dev/null +++ b/tests/SPE1CASE2.DATA @@ -0,0 +1,442 @@ +-- This reservoir simulation deck is made available under the Open Database +-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in +-- individual contents of the database are licensed under the Database Contents +-- License: http://opendatacommons.org/licenses/dbcl/1.0/ + +-- Copyright (C) 2015 Statoil + +-- This simulation is based on the data given in +-- 'Comparison of Solutions to a Three-Dimensional +-- Black-Oil Reservoir Simulation Problem' by Aziz S. Odeh, +-- Journal of Petroleum Technology, January 1981 + +--------------------------------------------------------------------------- +------------------------ SPE1 - CASE 2 ------------------------------------ +--------------------------------------------------------------------------- + +RUNSPEC +-- ------------------------------------------------------------------------- + +TITLE + SPE1 - CASE 2 + +DIMENS + 10 10 3 / + +-- The number of equilibration regions is inferred from the EQLDIMS +-- keyword. +EQLDIMS +/ + +-- The number of PVTW tables is inferred from the TABDIMS keyword; +-- when no data is included in the keyword the default values are used. +TABDIMS +/ + + +OIL +GAS +WATER +DISGAS +-- As seen from figure 4 in Odeh, GOR is increasing with time, +-- which means that dissolved gas is present + + +FIELD + +START + 1 'JAN' 2015 / + +WELLDIMS +-- Item 1: maximum number of wells in the model +-- - there are two wells in the problem; injector and producer +-- Item 2: maximum number of grid blocks connected to any one well +-- - must be one as the wells are located at specific grid blocks +-- Item 3: maximum number of groups in the model +-- - we are dealing with only one 'group' +-- Item 4: maximum number of wells in any one group +-- - there must be two wells in a group as there are two wells in total + 2 1 1 2 / + +UNIFOUT + +GRID + +-- The INIT keyword is used to request an .INIT file. The .INIT file +-- is written before the simulation actually starts, and contains grid +-- properties and saturation tables as inferred from the input +-- deck. There are no other keywords which can be used to configure +-- exactly what is written to the .INIT file. +INIT + +-- ------------------------------------------------------------------------- +NOECHO + +DX +-- There are in total 300 cells with length 1000ft in x-direction + 300*1000 / +DY +-- There are in total 300 cells with length 1000ft in y-direction + 300*1000 / +DZ +-- The layers are 20, 30 and 50 ft thick, in each layer there are 100 cells + 100*20 100*30 100*50 / + +TOPS +-- The depth of the top of each grid block + 100*8325 / + +PORO +-- Constant porosity of 0.3 throughout all 300 grid cells + 300*0.3 / + +PERMX +-- The layers have perm. 500mD, 50mD and 200mD, respectively. + 100*500 100*50 100*200 / + +PERMY +-- Equal to PERMX + 100*500 100*50 100*200 / + +PERMZ +-- Cannot find perm. in z-direction in Odeh's paper +-- For the time being, we will assume PERMZ equal to PERMX and PERMY: + 100*500 100*50 100*200 / +ECHO + +PROPS +-- ------------------------------------------------------------------------- + +PVTW +-- Item 1: pressure reference (psia) +-- Item 2: water FVF (rb per bbl or rb per stb) +-- Item 3: water compressibility (psi^{-1}) +-- Item 4: water viscosity (cp) +-- Item 5: water 'viscosibility' (psi^{-1}) + +-- Using values from Norne: +-- In METRIC units: +-- 277.0 1.038 4.67E-5 0.318 0.0 / +-- In FIELD units: + 4017.55 1.038 3.22E-6 0.318 0.0 / + +ROCK +-- Item 1: reference pressure (psia) +-- Item 2: rock compressibility (psi^{-1}) + +-- Using values from table 1 in Odeh: + 14.7 3E-6 / + +SWOF +-- Column 1: water saturation +-- - this has been set to (almost) equally spaced values from 0.12 to 1 +-- Column 2: water relative permeability +-- - generated from the Corey-type approx. formula +-- the coeffisient is set to 10e-5, S_{orw}=0 and S_{wi}=0.12 +-- Column 3: oil relative permeability when only oil and water are present +-- - we will use the same values as in column 3 in SGOF. +-- This is not really correct, but since only the first +-- two values are of importance, this does not really matter +-- Column 4: corresponding water-oil capillary pressure (psi) + +0.12 0 1 0 +0.18 4.64876033057851E-008 1 0 +0.24 0.000000186 0.997 0 +0.3 4.18388429752066E-007 0.98 0 +0.36 7.43801652892562E-007 0.7 0 +0.42 1.16219008264463E-006 0.35 0 +0.48 1.67355371900826E-006 0.2 0 +0.54 2.27789256198347E-006 0.09 0 +0.6 2.97520661157025E-006 0.021 0 +0.66 3.7654958677686E-006 0.01 0 +0.72 4.64876033057851E-006 0.001 0 +0.78 0.000005625 0.0001 0 +0.84 6.69421487603306E-006 0 0 +0.91 8.05914256198347E-006 0 0 +1 0.00001 0 0 / + + +SGOF +-- Column 1: gas saturation +-- Column 2: gas relative permeability +-- Column 3: oil relative permeability when oil, gas and connate water are present +-- Column 4: oil-gas capillary pressure (psi) +-- - stated to be zero in Odeh's paper + +-- Values in column 1-3 are taken from table 3 in Odeh's paper: +0 0 1 0 +0.001 0 1 0 +0.02 0 0.997 0 +0.05 0.005 0.980 0 +0.12 0.025 0.700 0 +0.2 0.075 0.350 0 +0.25 0.125 0.200 0 +0.3 0.190 0.090 0 +0.4 0.410 0.021 0 +0.45 0.60 0.010 0 +0.5 0.72 0.001 0 +0.6 0.87 0.0001 0 +0.7 0.94 0.000 0 +0.85 0.98 0.000 0 +0.88 0.984 0.000 0 / +--1.00 1.0 0.000 0 / +-- Warning from Eclipse: first sat. value in SWOF + last sat. value in SGOF +-- must not be greater than 1, but Eclipse still runs +-- Flow needs the sum to be excactly 1 so I added a row with gas sat. = 0.88 +-- The corresponding krg value was estimated by assuming linear rel. between +-- gas sat. and krw. between gas sat. 0.85 and 1.00 (the last two values given) + +DENSITY +-- Density (lb per ft³) at surface cond. of +-- oil, water and gas, respectively (in that order) + +-- Using values from Norne: +-- In METRIC units: +-- 859.5 1033.0 0.854 / +-- In FIELD units: + 53.66 64.49 0.0533 / + +PVDG +-- Column 1: gas phase pressure (psia) +-- Column 2: gas formation volume factor (rb per Mscf) +-- - in Odeh's paper the units are said to be given in rb per bbl, +-- but this is assumed to be a mistake: FVF-values in Odeh's paper +-- are given in rb per scf, not rb per bbl. This will be in +-- agreement with conventions +-- Column 3: gas viscosity (cP) + +-- Using values from lower right table in Odeh's table 2: +14.700 166.666 0.008000 +264.70 12.0930 0.009600 +514.70 6.27400 0.011200 +1014.7 3.19700 0.014000 +2014.7 1.61400 0.018900 +2514.7 1.29400 0.020800 +3014.7 1.08000 0.022800 +4014.7 0.81100 0.026800 +5014.7 0.64900 0.030900 +9014.7 0.38600 0.047000 / + +PVTO +-- Column 1: dissolved gas-oil ratio (Mscf per stb) +-- Column 2: bubble point pressure (psia) +-- Column 3: oil FVF for saturated oil (rb per stb) +-- Column 4: oil viscosity for saturated oil (cP) + +-- Use values from top left table in Odeh's table 2: +0.0010 14.7 1.0620 1.0400 / +0.0905 264.7 1.1500 0.9750 / +0.1800 514.7 1.2070 0.9100 / +0.3710 1014.7 1.2950 0.8300 / +0.6360 2014.7 1.4350 0.6950 / +0.7750 2514.7 1.5000 0.6410 / +0.9300 3014.7 1.5650 0.5940 / +1.2700 4014.7 1.6950 0.5100 + 9014.7 1.5790 0.7400 / +1.6180 5014.7 1.8270 0.4490 + 9014.7 1.7370 0.6310 / +-- It is required to enter data for undersaturated oil for the highest GOR +-- (i.e. the last row) in the PVTO table. +-- In order to fulfill this requirement, values for oil FVF and viscosity +-- at 9014.7psia and GOR=1.618 for undersaturated oil have been approximated: +-- It has been assumed that there is a linear relation between the GOR +-- and the FVF when keeping the pressure constant at 9014.7psia. +-- From Odeh we know that (at 9014.7psia) the FVF is 2.357 at GOR=2.984 +-- for saturated oil and that the FVF is 1.579 at GOR=1.27 for undersaturated oil, +-- so it is possible to use the assumption described above. +-- An equivalent approximation for the viscosity has been used. +/ + +SOLUTION +-- ------------------------------------------------------------------------- + +EQUIL +-- Item 1: datum depth (ft) +-- Item 2: pressure at datum depth (psia) +-- - Odeh's table 1 says that initial reservoir pressure is +-- 4800 psi at 8400ft, which explains choice of item 1 and 2 +-- Item 3: depth of water-oil contact (ft) +-- - chosen to be directly under the reservoir +-- Item 4: oil-water capillary pressure at the water oil contact (psi) +-- - given to be 0 in Odeh's paper +-- Item 5: depth of gas-oil contact (ft) +-- - chosen to be directly above the reservoir +-- Item 6: gas-oil capillary pressure at gas-oil contact (psi) +-- - given to be 0 in Odeh's paper +-- Item 7: RSVD-table +-- Item 8: RVVD-table +-- Item 9: Set to 0 as this is the only value supported by OPM + +-- Item #: 1 2 3 4 5 6 7 8 9 + 8400 4800 8450 0 8300 0 1 0 0 / + +RSVD +-- Dissolved GOR is initially constant with depth through the reservoir. +-- The reason is that the initial reservoir pressure given is higher +---than the bubble point presssure of 4014.7psia, meaning that there is no +-- free gas initially present. +8300 1.270 +8450 1.270 / + +SUMMARY +-- ------------------------------------------------------------------------- + +-- 1a) Oil rate vs time +FOPR +-- Field Oil Production Rate + +-- 1b) GOR vs time +WGOR +-- Well Gas-Oil Ratio + 'PROD' +/ +-- Using FGOR instead of WGOR:PROD results in the same graph +FGOR + +-- 2a) Pressures of the cell where the injector and producer are located +BPR +1 1 1 / +10 10 3 / +/ + +-- 2b) Gas saturation at grid points given in Odeh's paper +BGSAT +1 1 1 / +1 1 2 / +1 1 3 / +10 1 1 / +10 1 2 / +10 1 3 / +10 10 1 / +10 10 2 / +10 10 3 / +/ + +-- In order to compare Eclipse with Flow: +WBHP + 'INJ' + 'PROD' +/ +WGIR + 'INJ' + 'PROD' +/ +WGIT + 'INJ' + 'PROD' +/ +WGPR + 'INJ' + 'PROD' +/ +WGPT + 'INJ' + 'PROD' +/ +WOIR + 'INJ' + 'PROD' +/ +WOIT + 'INJ' + 'PROD' +/ +WOPR + 'INJ' + 'PROD' +/ +WOPT + 'INJ' + 'PROD' +/ +WWIR + 'INJ' + 'PROD' +/ +WWIT + 'INJ' + 'PROD' +/ +WWPR + 'INJ' + 'PROD' +/ +WWPT + 'INJ' + 'PROD' +/ +SCHEDULE +-- ------------------------------------------------------------------------- +RPTSCHED + 'PRES' 'SGAS' 'RS' 'WELLS' / + +RPTRST + 'BASIC=1' / + + +-- If no resolution (i.e. case 1), the two following lines must be added: +--DRSDT +-- 0 / +-- Since this is Case 2, the two lines above have been commented out. +-- if DRSDT is set to 0, GOR cannot rise and free gas does not +-- dissolve in undersaturated oil -> constant bubble point pressure + +WELSPECS +-- Item #: 1 2 3 4 5 6 + 'PROD' 'G1' 10 10 8400 'OIL' / + 'INJ' 'G1' 1 1 8335 'GAS' / +/ +-- Coordinates in item 3-4 are retrieved from Odeh's figure 1 and 2 +-- Note that the depth at the midpoint of the well grid blocks +-- has been used as reference depth for bottom hole pressure in item 5 + +COMPDAT +-- Item #: 1 2 3 4 5 6 7 8 9 + 'PROD' 10 10 3 3 'OPEN' 1* 1* 0.5 / + 'INJ' 1 1 1 1 'OPEN' 1* 1* 0.5 / +/ +-- Coordinates in item 2-5 are retreived from Odeh's figure 1 and 2 +-- Item 9 is the well bore internal diameter, +-- the radius is given to be 0.25ft in Odeh's paper + + +WCONPROD +-- Item #:1 2 3 4 5 9 + 'PROD' 'OPEN' 'ORAT' 20000 4* 1000 / +/ +-- It is stated in Odeh's paper that the maximum oil prod. rate +-- is 20 000stb per day which explains the choice of value in item 4. +-- The items > 4 are defaulted with the exception of item 9, +-- the BHP lower limit, which is given to be 1000psia in Odeh's paper + +WCONINJE +-- Item #:1 2 3 4 5 6 7 + 'INJ' 'GAS' 'OPEN' 'RATE' 100000 1* 9014 / +/ +-- Stated in Odeh that gas inj. rate (item 5) is 100MMscf per day +-- BHP upper limit (item 7) should not be exceeding the highest +-- pressure in the PVT table=9014.7psia (default is 100 000psia) + +TSTEP +--Advance the simulater once a month for TEN years: +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 / + +DATES + 31 'DEC' 2019 / +/ + +TSTEP +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 / + +--Advance the simulator once a year for TEN years: +--10*365 / + +END diff --git a/tests/SPE1CASE2.X0060 b/tests/SPE1CASE2.X0060 new file mode 100644 index 0000000000000000000000000000000000000000..c0066fba2c5f5abf344d98f860ccbdf523dbaf5e GIT binary patch literal 19832 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 KiASO~ul8S7SpRSU literal 0 HcmV?d00001 diff --git a/tests/SPE1CASE2_RESTART.DATA b/tests/SPE1CASE2_RESTART.DATA new file mode 100644 index 000000000..065d944f3 --- /dev/null +++ b/tests/SPE1CASE2_RESTART.DATA @@ -0,0 +1,426 @@ +-- This reservoir simulation deck is made available under the Open Database +-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in +-- individual contents of the database are licensed under the Database Contents +-- License: http://opendatacommons.org/licenses/dbcl/1.0/ + +-- Copyright (C) 2015 Statoil + +-- This simulation is based on the data given in +-- 'Comparison of Solutions to a Three-Dimensional +-- Black-Oil Reservoir Simulation Problem' by Aziz S. Odeh, +-- Journal of Petroleum Technology, January 1981 + +--------------------------------------------------------------------------- +------------------------ SPE1 - CASE 2 ------------------------------------ +--------------------------------------------------------------------------- + +RUNSPEC +-- ------------------------------------------------------------------------- + +TITLE + SPE1 - CASE 2 + +DIMENS + 10 10 3 / + +-- The number of equilibration regions is inferred from the EQLDIMS +-- keyword. +EQLDIMS +/ + +-- The number of PVTW tables is inferred from the TABDIMS keyword; +-- when no data is included in the keyword the default values are used. +TABDIMS +/ + + +OIL +GAS +WATER +DISGAS +-- As seen from figure 4 in Odeh, GOR is increasing with time, +-- which means that dissolved gas is present + + +FIELD + +START + 1 'JAN' 2015 / + +WELLDIMS +-- Item 1: maximum number of wells in the model +-- - there are two wells in the problem; injector and producer +-- Item 2: maximum number of grid blocks connected to any one well +-- - must be one as the wells are located at specific grid blocks +-- Item 3: maximum number of groups in the model +-- - we are dealing with only one 'group' +-- Item 4: maximum number of wells in any one group +-- - there must be two wells in a group as there are two wells in total + 2 1 1 2 / + +UNIFOUT + +GRID + +-- The INIT keyword is used to request an .INIT file. The .INIT file +-- is written before the simulation actually starts, and contains grid +-- properties and saturation tables as inferred from the input +-- deck. There are no other keywords which can be used to configure +-- exactly what is written to the .INIT file. +INIT + +-- ------------------------------------------------------------------------- +NOECHO + +DX +-- There are in total 300 cells with length 1000ft in x-direction + 300*1000 / +DY +-- There are in total 300 cells with length 1000ft in y-direction + 300*1000 / +DZ +-- The layers are 20, 30 and 50 ft thick, in each layer there are 100 cells + 100*20 100*30 100*50 / + +TOPS +-- The depth of the top of each grid block + 100*8325 / + +PORO +-- Constant porosity of 0.3 throughout all 300 grid cells + 300*0.3 / + +PERMX +-- The layers have perm. 500mD, 50mD and 200mD, respectively. + 100*500 100*50 100*200 / + +PERMY +-- Equal to PERMX + 100*500 100*50 100*200 / + +PERMZ +-- Cannot find perm. in z-direction in Odeh's paper +-- For the time being, we will assume PERMZ equal to PERMX and PERMY: + 100*500 100*50 100*200 / +ECHO + +PROPS +-- ------------------------------------------------------------------------- + +PVTW +-- Item 1: pressure reference (psia) +-- Item 2: water FVF (rb per bbl or rb per stb) +-- Item 3: water compressibility (psi^{-1}) +-- Item 4: water viscosity (cp) +-- Item 5: water 'viscosibility' (psi^{-1}) + +-- Using values from Norne: +-- In METRIC units: +-- 277.0 1.038 4.67E-5 0.318 0.0 / +-- In FIELD units: + 4017.55 1.038 3.22E-6 0.318 0.0 / + +ROCK +-- Item 1: reference pressure (psia) +-- Item 2: rock compressibility (psi^{-1}) + +-- Using values from table 1 in Odeh: + 14.7 3E-6 / + +SWOF +-- Column 1: water saturation +-- - this has been set to (almost) equally spaced values from 0.12 to 1 +-- Column 2: water relative permeability +-- - generated from the Corey-type approx. formula +-- the coeffisient is set to 10e-5, S_{orw}=0 and S_{wi}=0.12 +-- Column 3: oil relative permeability when only oil and water are present +-- - we will use the same values as in column 3 in SGOF. +-- This is not really correct, but since only the first +-- two values are of importance, this does not really matter +-- Column 4: corresponding water-oil capillary pressure (psi) + +0.12 0 1 0 +0.18 4.64876033057851E-008 1 0 +0.24 0.000000186 0.997 0 +0.3 4.18388429752066E-007 0.98 0 +0.36 7.43801652892562E-007 0.7 0 +0.42 1.16219008264463E-006 0.35 0 +0.48 1.67355371900826E-006 0.2 0 +0.54 2.27789256198347E-006 0.09 0 +0.6 2.97520661157025E-006 0.021 0 +0.66 3.7654958677686E-006 0.01 0 +0.72 4.64876033057851E-006 0.001 0 +0.78 0.000005625 0.0001 0 +0.84 6.69421487603306E-006 0 0 +0.91 8.05914256198347E-006 0 0 +1 0.00001 0 0 / + + +SGOF +-- Column 1: gas saturation +-- Column 2: gas relative permeability +-- Column 3: oil relative permeability when oil, gas and connate water are present +-- Column 4: oil-gas capillary pressure (psi) +-- - stated to be zero in Odeh's paper + +-- Values in column 1-3 are taken from table 3 in Odeh's paper: +0 0 1 0 +0.001 0 1 0 +0.02 0 0.997 0 +0.05 0.005 0.980 0 +0.12 0.025 0.700 0 +0.2 0.075 0.350 0 +0.25 0.125 0.200 0 +0.3 0.190 0.090 0 +0.4 0.410 0.021 0 +0.45 0.60 0.010 0 +0.5 0.72 0.001 0 +0.6 0.87 0.0001 0 +0.7 0.94 0.000 0 +0.85 0.98 0.000 0 +0.88 0.984 0.000 0 / +--1.00 1.0 0.000 0 / +-- Warning from Eclipse: first sat. value in SWOF + last sat. value in SGOF +-- must not be greater than 1, but Eclipse still runs +-- Flow needs the sum to be excactly 1 so I added a row with gas sat. = 0.88 +-- The corresponding krg value was estimated by assuming linear rel. between +-- gas sat. and krw. between gas sat. 0.85 and 1.00 (the last two values given) + +DENSITY +-- Density (lb per ft³) at surface cond. of +-- oil, water and gas, respectively (in that order) + +-- Using values from Norne: +-- In METRIC units: +-- 859.5 1033.0 0.854 / +-- In FIELD units: + 53.66 64.49 0.0533 / + +PVDG +-- Column 1: gas phase pressure (psia) +-- Column 2: gas formation volume factor (rb per Mscf) +-- - in Odeh's paper the units are said to be given in rb per bbl, +-- but this is assumed to be a mistake: FVF-values in Odeh's paper +-- are given in rb per scf, not rb per bbl. This will be in +-- agreement with conventions +-- Column 3: gas viscosity (cP) + +-- Using values from lower right table in Odeh's table 2: +14.700 166.666 0.008000 +264.70 12.0930 0.009600 +514.70 6.27400 0.011200 +1014.7 3.19700 0.014000 +2014.7 1.61400 0.018900 +2514.7 1.29400 0.020800 +3014.7 1.08000 0.022800 +4014.7 0.81100 0.026800 +5014.7 0.64900 0.030900 +9014.7 0.38600 0.047000 / + +PVTO +-- Column 1: dissolved gas-oil ratio (Mscf per stb) +-- Column 2: bubble point pressure (psia) +-- Column 3: oil FVF for saturated oil (rb per stb) +-- Column 4: oil viscosity for saturated oil (cP) + +-- Use values from top left table in Odeh's table 2: +0.0010 14.7 1.0620 1.0400 / +0.0905 264.7 1.1500 0.9750 / +0.1800 514.7 1.2070 0.9100 / +0.3710 1014.7 1.2950 0.8300 / +0.6360 2014.7 1.4350 0.6950 / +0.7750 2514.7 1.5000 0.6410 / +0.9300 3014.7 1.5650 0.5940 / +1.2700 4014.7 1.6950 0.5100 + 9014.7 1.5790 0.7400 / +1.6180 5014.7 1.8270 0.4490 + 9014.7 1.7370 0.6310 / +-- It is required to enter data for undersaturated oil for the highest GOR +-- (i.e. the last row) in the PVTO table. +-- In order to fulfill this requirement, values for oil FVF and viscosity +-- at 9014.7psia and GOR=1.618 for undersaturated oil have been approximated: +-- It has been assumed that there is a linear relation between the GOR +-- and the FVF when keeping the pressure constant at 9014.7psia. +-- From Odeh we know that (at 9014.7psia) the FVF is 2.357 at GOR=2.984 +-- for saturated oil and that the FVF is 1.579 at GOR=1.27 for undersaturated oil, +-- so it is possible to use the assumption described above. +-- An equivalent approximation for the viscosity has been used. +/ + +SOLUTION +-- ------------------------------------------------------------------------- + +RESTART + 'SPE1CASE2' 60 / + +RSVD +-- Dissolved GOR is initially constant with depth through the reservoir. +-- The reason is that the initial reservoir pressure given is higher +---than the bubble point presssure of 4014.7psia, meaning that there is no +-- free gas initially present. +8300 1.270 +8450 1.270 / + +SUMMARY +-- ------------------------------------------------------------------------- + +-- 1a) Oil rate vs time +FOPR +-- Field Oil Production Rate + +-- 1b) GOR vs time +WGOR +-- Well Gas-Oil Ratio + 'PROD' +/ +-- Using FGOR instead of WGOR:PROD results in the same graph +FGOR + +-- 2a) Pressures of the cell where the injector and producer are located +BPR +1 1 1 / +10 10 3 / +/ + +-- 2b) Gas saturation at grid points given in Odeh's paper +BGSAT +1 1 1 / +1 1 2 / +1 1 3 / +10 1 1 / +10 1 2 / +10 1 3 / +10 10 1 / +10 10 2 / +10 10 3 / +/ + +-- In order to compare Eclipse with Flow: +WBHP + 'INJ' + 'PROD' +/ +WGIR + 'INJ' + 'PROD' +/ +WGIT + 'INJ' + 'PROD' +/ +WGPR + 'INJ' + 'PROD' +/ +WGPT + 'INJ' + 'PROD' +/ +WOIR + 'INJ' + 'PROD' +/ +WOIT + 'INJ' + 'PROD' +/ +WOPR + 'INJ' + 'PROD' +/ +WOPT + 'INJ' + 'PROD' +/ +WWIR + 'INJ' + 'PROD' +/ +WWIT + 'INJ' + 'PROD' +/ +WWPR + 'INJ' + 'PROD' +/ +WWPT + 'INJ' + 'PROD' +/ +SCHEDULE +SKIPREST +-- ------------------------------------------------------------------------- +RPTSCHED + 'PRES' 'SGAS' 'RS' 'WELLS' / + +RPTRST + 'BASIC=1' / + + +-- If no resolution (i.e. case 1), the two following lines must be added: +--DRSDT +-- 0 / +-- Since this is Case 2, the two lines above have been commented out. +-- if DRSDT is set to 0, GOR cannot rise and free gas does not +-- dissolve in undersaturated oil -> constant bubble point pressure + +WELSPECS +-- Item #: 1 2 3 4 5 6 + 'PROD' 'G1' 10 10 8400 'OIL' / + 'INJ' 'G1' 1 1 8335 'GAS' / +/ +-- Coordinates in item 3-4 are retrieved from Odeh's figure 1 and 2 +-- Note that the depth at the midpoint of the well grid blocks +-- has been used as reference depth for bottom hole pressure in item 5 + +COMPDAT +-- Item #: 1 2 3 4 5 6 7 8 9 + 'PROD' 10 10 3 3 'OPEN' 1* 1* 0.5 / + 'INJ' 1 1 1 1 'OPEN' 1* 1* 0.5 / +/ +-- Coordinates in item 2-5 are retreived from Odeh's figure 1 and 2 +-- Item 9 is the well bore internal diameter, +-- the radius is given to be 0.25ft in Odeh's paper + + +WCONPROD +-- Item #:1 2 3 4 5 9 + 'PROD' 'OPEN' 'ORAT' 20000 4* 1000 / +/ +-- It is stated in Odeh's paper that the maximum oil prod. rate +-- is 20 000stb per day which explains the choice of value in item 4. +-- The items > 4 are defaulted with the exception of item 9, +-- the BHP lower limit, which is given to be 1000psia in Odeh's paper + +WCONINJE +-- Item #:1 2 3 4 5 6 7 + 'INJ' 'GAS' 'OPEN' 'RATE' 100000 1* 9014 / +/ +-- Stated in Odeh that gas inj. rate (item 5) is 100MMscf per day +-- BHP upper limit (item 7) should not be exceeding the highest +-- pressure in the PVT table=9014.7psia (default is 100 000psia) + +TSTEP +--Advance the simulater once a month for TEN years: +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 / + +DATES + 31 'DEC' 2019 / +/ + +TSTEP +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 +31 28 31 30 31 30 31 31 30 31 30 31 / + +--Advance the simulator once a year for TEN years: +--10*365 / + +END diff --git a/tests/parser/ScheduleRestartTests.cpp b/tests/parser/ScheduleRestartTests.cpp new file mode 100644 index 000000000..0db8f28fc --- /dev/null +++ b/tests/parser/ScheduleRestartTests.cpp @@ -0,0 +1,54 @@ +/* + Copyright 2013 Statoil ASA. + + 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 3 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 . + */ + +#define BOOST_TEST_MODULE ScheduleTests + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +using namespace Opm; + + +BOOST_AUTO_TEST_CASE(LoadRestartSim) { + Parser parser; + auto deck = parser.parseFile("SPE1CASE2.DATA"); + auto restart_deck = parser.parseFile("SPE1CASE2_RESTART.DATA"); + EclIO::ERst rst_file("SPECASE2.X0060"); + auto rst_state = RestartIO::RstState::load(rst_file, 60); + + EclipseState ecl_state(deck); + Schedule sched(deck, ecl_state); + Schedule restart_sched(deck, ecl_state, &rst_state); +}