Removed constructor from ScheduleGrid, added perm prop to tests

Changed (BASE_SIM.DATA, BASE_SIM_THPRES.DATA, RESTART_SIM.DATA),  testblackoilstate3.DATA and testrft.DATA since they affect the tests in test_Restart.cpp, test_restartwellinfo.cpp and test_RFT.cpp respectively.
This commit is contained in:
Daniel 2021-11-03 15:47:30 +01:00
parent 931cebb12f
commit 45dd77938b
17 changed files with 397 additions and 22 deletions

View File

@ -28,7 +28,6 @@ class FieldPropsManager;
class ScheduleGrid {
public:
ScheduleGrid(const EclipseGrid& ecl_grid, CompletedCells& completed_cells);
ScheduleGrid(const EclipseGrid& ecl_grid, const FieldPropsManager& fpm, CompletedCells& completed_cells);
explicit ScheduleGrid(CompletedCells& completed_cells);

View File

@ -161,7 +161,7 @@ namespace Opm {
this->restart_output.clearRemainingEvents(0);
//const ScheduleGridWrapper gridWrapper { grid } ;
ScheduleGrid grid(ecl_grid, this->completed_cells);
ScheduleGrid grid(ecl_grid, fp, this->completed_cells);
if (rst) {
auto restart_step = this->m_static.rst_info.report_step;

View File

@ -17,16 +17,12 @@
along with OPM. If not, see <http://www.gnu.org/licenses/>.
*/
#include <fmt/format.h>
#include <opm/parser/eclipse/EclipseState/Schedule/CompletedCells.hpp>
#include <opm/parser/eclipse/EclipseState/Schedule/ScheduleGrid.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/EclipseGrid.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/FieldPropsManager.hpp>
Opm::ScheduleGrid::ScheduleGrid(const Opm::EclipseGrid& ecl_grid, Opm::CompletedCells& completed_cells)
: grid(&ecl_grid)
, cells(completed_cells)
{}
Opm::ScheduleGrid::ScheduleGrid(const Opm::EclipseGrid& ecl_grid, const Opm::FieldPropsManager& fpm, Opm::CompletedCells& completed_cells)
: grid(&ecl_grid)
, fp(&fpm)
@ -37,6 +33,16 @@ Opm::ScheduleGrid::ScheduleGrid(Opm::CompletedCells& completed_cells)
: cells(completed_cells)
{}
namespace {
double try_get_value(const Opm::FieldPropsManager& fp, const std::string& kw, std::size_t active_index) {
if (fp.has_double(kw))
return fp.try_get<double>(kw)->at(active_index);
else
throw std::logic_error(fmt::format("FieldPropsManager is missing keyword '{}'", kw));
}
}
const Opm::CompletedCells::Cell& Opm::ScheduleGrid::get_cell(std::size_t i, std::size_t j, std::size_t k) const {
if (this->grid) {
auto [valid, cell] = this->cells.try_get(i,j,k);
@ -47,13 +53,10 @@ const Opm::CompletedCells::Cell& Opm::ScheduleGrid::get_cell(std::size_t i, std:
CompletedCells::Cell::Props props;
props.active_index = this->grid->getActiveIndex(i,j,k);
if (this->fp){
props.permx = this->fp->try_get<double>("PERMX")->at(props.active_index);
props.permy = this->fp->try_get<double>("PERMY")->at(props.active_index);
props.permz = this->fp->try_get<double>("PERMZ")->at(props.active_index);
}
props.permx = try_get_value(*this->fp, "PERMX", props.active_index);
props.permy = try_get_value(*this->fp, "PERMY", props.active_index);
props.permz = try_get_value(*this->fp, "PERMZ", props.active_index);
cell.props = props;
}
}
return cell;

View File

@ -33,6 +33,12 @@ TOPS
PORO
1000*0.2 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SOLUTION

View File

@ -37,6 +37,12 @@ TOPS
PORO
1000*0.2 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
PROPS

View File

@ -33,6 +33,12 @@ TOPS
PORO
1000*0.2 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SOLUTION
RESTART

View File

@ -1212,6 +1212,15 @@ TSTEP
BOOST_AUTO_TEST_CASE(Action_WELPI) {
const auto deck_string = std::string{ R"(
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE

View File

@ -59,7 +59,7 @@ Opm::WellConnections loadCOMPDAT(const std::string& compdat_keyword) {
Opm::WellConnections connections(Opm::Connection::Order::TRACK, 10,10);
Opm::CompletedCells cells(grid);
for (const auto& rec : keyword)
connections.loadCOMPDAT(rec, Opm::ScheduleGrid(grid, cells), field_props, "WELL", {});
connections.loadCOMPDAT(rec, Opm::ScheduleGrid(grid, field_props, cells), field_props, "WELL", {});
return connections;
}
@ -177,7 +177,18 @@ BOOST_AUTO_TEST_CASE(ActiveCompletions) {
BOOST_AUTO_TEST_CASE(loadCOMPDATTEST) {
Opm::UnitSystem units(Opm::UnitSystem::UnitType::UNIT_TYPE_METRIC); // Unit system used in deck FIRST_SIM.DATA.
{
const std::string deck = R"(COMPDAT
const std::string deck = R"(GRID
PERMX
1000*0.10 /
COPY
'PERMX' 'PERMZ' /
'PERMX' 'PERMY' /
/
SCHEDULE
COMPDAT
-- CF Diam Kh Skin Df
'WELL' 1 1 1 1 'OPEN' 1* 1.168 0.311 107.872 1* 1* 'Z' 21.925 /
/)";

View File

@ -98,6 +98,15 @@ BOOST_AUTO_TEST_CASE(createDeckWithGEFAC) {
std::string input =
"START -- 0 \n"
"19 JUN 2007 / \n"
"GRID\n"
"PORO\n"
"1000*0.1 /\n"
"PERMX \n"
"1000*1 /\n"
"PERMY \n"
"1000*0.1 /\n"
"PERMZ \n"
"1000*0.01 /\n"
"SCHEDULE\n"
"WELSPECS\n"
@ -135,6 +144,15 @@ BOOST_AUTO_TEST_CASE(createDeckWithWGRUPCONandWCONPROD) {
std::string input =
"START -- 0 \n"
"19 JUN 2007 / \n"
"GRID\n"
"PORO\n"
"1000*0.1 /\n"
"PERMX \n"
"1000*1 /\n"
"PERMY \n"
"1000*0.1 /\n"
"PERMZ \n"
"1000*0.01 /\n"
"SCHEDULE\n"
"WELSPECS\n"

View File

@ -45,6 +45,14 @@ RUNSPEC
MESSAGES
5* 10 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
MESSAGES
5* 77 /
SCHEDULE

View File

@ -67,6 +67,19 @@ BOOST_AUTO_TEST_CASE(AICDWellTest) {
BOOST_CHECK_EQUAL( 7U , connection_set.size() );
const std::string compsegs_string = R"(
GRID
PORO
8000*0.1 /
PERMX
8000*1 /
PERMY
8000*0.1 /
PERMZ
8000*0.01 /
SCHEDULE
WELSEGS
'PROD01' 2512.5 2512.5 1.0e-5 'ABS' 'HF-' 'HO' /
2 2 1 1 2537.5 2537.5 0.3 0.00010 /
@ -109,7 +122,8 @@ WSEGAICD
parseContext.update(Opm::ParseContext::SCHEDULE_COMPSEGS_INVALID, Opm::InputError::THROW_EXCEPTION);
parseContext.update(Opm::ParseContext::SCHEDULE_COMPSEGS_NOT_SUPPORTED, Opm::InputError::THROW_EXCEPTION);
Opm::CompletedCells cells(grid);
const auto& [new_connection_set, new_segment_set] = Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, cells), parseContext, errorGuard);
Opm::FieldPropsManager fp(deck, Opm::Phases{true, true, true}, grid, Opm::TableManager());
const auto& [new_connection_set, new_segment_set] = Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, fp, cells), parseContext, errorGuard);
// checking the ICD segment
const Opm::DeckKeyword wsegaicd = deck.getKeyword("WSEGAICD");
@ -213,6 +227,19 @@ BOOST_AUTO_TEST_CASE(MultisegmentWellTest) {
BOOST_CHECK_EQUAL( 7U , connection_set.size() );
const std::string compsegs_string = R"(
GRID
PORO
8000*0.1 /
PERMX
8000*1 /
PERMY
8000*0.1 /
PERMZ
8000*0.01 /
SCHEDULE
WELSEGS
'PROD01' 2512.5 2512.5 1.0e-5 'ABS' 'HF-' 'HO' /
2 2 1 1 2537.5 2537.5 0.3 0.00010 /
@ -252,9 +279,10 @@ WSEGSICD
Opm::ErrorGuard errorGuard;
Opm::ParseContext parseContext;
Opm::CompletedCells cells(grid);
Opm::FieldPropsManager fp(deck, Opm::Phases{true, true, true}, grid, Opm::TableManager());
parseContext.update(Opm::ParseContext::SCHEDULE_COMPSEGS_INVALID, Opm::InputError::THROW_EXCEPTION);
parseContext.update(Opm::ParseContext::SCHEDULE_COMPSEGS_NOT_SUPPORTED, Opm::InputError::THROW_EXCEPTION);
const auto& [new_connection_set, new_segment_set] = Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, cells), parseContext, errorGuard);
const auto& [new_connection_set, new_segment_set] = Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, fp, cells), parseContext, errorGuard);
// checking the ICD segment
const Opm::DeckKeyword wsegsicd = deck.getKeyword("WSEGSICD");
@ -366,6 +394,16 @@ BOOST_AUTO_TEST_CASE(WrongDistanceCOMPSEGS) {
BOOST_CHECK_EQUAL( 7U , connection_set.size() );
const std::string compsegs_string =
"GRID \n"
"PORO \n"
"8000*0.1 /\n"
"PERMX \n"
"8000*1 /\n"
"PERMY \n"
"8000*0.1 /\n"
"PERMZ \n"
"8000*0.01 /\n"
"SCHEDULE \n"
"WELSEGS \n"
"'PROD01' 2512.5 2512.5 1.0e-5 'ABS' 'H--' 'HO' /\n"
"2 2 1 1 2537.5 2537.5 0.3 0.00010 /\n"
@ -400,11 +438,12 @@ BOOST_AUTO_TEST_CASE(WrongDistanceCOMPSEGS) {
Opm::ErrorGuard errorGuard;
Opm::ParseContext parseContext;
Opm::CompletedCells cells(grid);
Opm::FieldPropsManager fp(deck, Opm::Phases{true, true, true}, grid, Opm::TableManager());
parseContext.update(Opm::ParseContext::SCHEDULE_COMPSEGS_INVALID, Opm::InputError::THROW_EXCEPTION);
BOOST_CHECK_THROW(Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, cells), parseContext, errorGuard), Opm::OpmInputError);
BOOST_CHECK_THROW(Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, fp, cells), parseContext, errorGuard), Opm::OpmInputError);
parseContext.update(Opm::ParseContext::SCHEDULE_COMPSEGS_INVALID, Opm::InputError::IGNORE);
BOOST_CHECK_NO_THROW(Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, cells), parseContext, errorGuard));
BOOST_CHECK_NO_THROW(Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, fp, cells), parseContext, errorGuard));
}
BOOST_AUTO_TEST_CASE(NegativeDepthCOMPSEGS) {
@ -424,6 +463,16 @@ BOOST_AUTO_TEST_CASE(NegativeDepthCOMPSEGS) {
BOOST_CHECK_EQUAL( 7U , connection_set.size() );
const std::string compsegs_string =
"GRID \n"
"PORO \n"
"8000*0.1 /\n"
"PERMX \n"
"8000*1 /\n"
"PERMY \n"
"8000*0.1 /\n"
"PERMZ \n"
"8000*0.01 /\n"
"SCHEDULE \n"
"WELSEGS \n"
"'PROD01' 2512.5 2512.5 1.0e-5 'ABS' 'H--' 'HO' /\n"
"2 2 1 1 2537.5 2537.5 0.3 0.00010 /\n"
@ -458,11 +507,12 @@ BOOST_AUTO_TEST_CASE(NegativeDepthCOMPSEGS) {
Opm::ErrorGuard errorGuard;
Opm::ParseContext parseContext;
Opm::CompletedCells cells(grid);
Opm::FieldPropsManager fp(deck, Opm::Phases{true, true, true}, grid, Opm::TableManager());
parseContext.update(Opm::ParseContext::SCHEDULE_COMPSEGS_NOT_SUPPORTED, Opm::InputError::THROW_EXCEPTION);
BOOST_CHECK_THROW(Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, cells), parseContext, errorGuard), Opm::OpmInputError);
BOOST_CHECK_THROW(Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, fp, cells), parseContext, errorGuard), Opm::OpmInputError);
parseContext.update(Opm::ParseContext::SCHEDULE_COMPSEGS_NOT_SUPPORTED, Opm::InputError::IGNORE);
BOOST_CHECK_NO_THROW( Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, cells), parseContext, errorGuard) );
BOOST_CHECK_NO_THROW( Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, fp, cells), parseContext, errorGuard) );
}
BOOST_AUTO_TEST_CASE(testwsegvalv) {
@ -482,6 +532,16 @@ BOOST_AUTO_TEST_CASE(testwsegvalv) {
BOOST_CHECK_EQUAL( 7U , connection_set.size() );
const std::string compsegs_string =
"GRID \n"
"PORO \n"
"8000*0.1 /\n"
"PERMX \n"
"8000*1 /\n"
"PERMY \n"
"8000*0.1 /\n"
"PERMZ \n"
"8000*0.01 /\n"
"SCHEDULE \n"
"WELSEGS \n"
"'PROD01' 2512.5 2512.5 1.0e-5 'ABS' 'HF-' 'HO' /\n"
"2 2 1 1 2537.5 2537.5 0.3 0.00010 /\n"
@ -522,9 +582,10 @@ BOOST_AUTO_TEST_CASE(testwsegvalv) {
Opm::ErrorGuard errorGuard;
Opm::ParseContext parseContext;
Opm::CompletedCells cells(grid);
Opm::FieldPropsManager fp(deck, Opm::Phases{true, true, true}, grid, Opm::TableManager());
parseContext.update(Opm::ParseContext::SCHEDULE_COMPSEGS_INVALID, Opm::InputError::THROW_EXCEPTION);
parseContext.update(Opm::ParseContext::SCHEDULE_COMPSEGS_NOT_SUPPORTED, Opm::InputError::THROW_EXCEPTION);
BOOST_CHECK_NO_THROW( Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, cells), parseContext, errorGuard));
BOOST_CHECK_NO_THROW( Opm::Compsegs::processCOMPSEGS(compsegs, connection_set, segment_set, Opm::ScheduleGrid(grid, fp, cells), parseContext, errorGuard));
// checking the WSEGVALV segment
const Opm::DeckKeyword wsegvalv = deck.getKeyword("WSEGVALV");

View File

@ -59,6 +59,15 @@ using namespace Opm;
std::string deck0 = R"(
START -- 0
10 MAI 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
@ -98,6 +107,15 @@ DATES -- 7
std::string WTEST_deck = R"(
START -- 0
10 MAI 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
WELSPECS
'DEFAULT' 'OP' 30 37 3.33 'OIL' 7*/

View File

@ -135,6 +135,15 @@ static std::string createDeckWTEST() {
std::string input = R"(
START -- 0
10 MAI 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
WELSPECS
'DEFAULT' 'OP' 30 37 3.33 'OIL' 7*/
@ -228,6 +237,15 @@ static std::string createDeckForTestingCrossFlow() {
std::string input = R"(
START -- 0
10 MAI 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
WELSPECS
'DEFAULT' 'OP' 30 37 3.33 'OIL' 7*/
@ -329,6 +347,15 @@ static std::string createDeckWithWellsAndCompletionData() {
std::string input = R"(
START -- 0
1 NOV 1979 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
1 DES 1979/
@ -645,6 +672,15 @@ static std::string createDeckWithWellsAndConnectionDataWithWELOPEN() {
std::string input = R"(
START -- 0
1 NOV 1979 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
1 DES 1979/
@ -744,6 +780,15 @@ BOOST_AUTO_TEST_CASE(CreateScheduleDeckWithWELOPEN_TryToOpenWellWithShutCompleti
std::string input = R"(
START -- 0
1 NOV 1979 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
1 DES 1979/
@ -787,6 +832,15 @@ BOOST_AUTO_TEST_CASE(CreateScheduleDeckWithWELOPEN_CombineShutCompletionsAndAddN
std::string input = R"(
START -- 0
1 NOV 1979 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
1 DES 1979/
@ -853,6 +907,15 @@ BOOST_AUTO_TEST_CASE(createDeckWithWeltArg) {
std::string input = R"(
START -- 0
19 JUN 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
10 OKT 2008 /
@ -959,6 +1022,15 @@ BOOST_AUTO_TEST_CASE(createDeckWithWeltArg_UDA) {
std::string input = R"(
START -- 0
19 JUN 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
10 OKT 2008 /
@ -1087,6 +1159,15 @@ BOOST_AUTO_TEST_CASE(createDeckWithWPIMULT) {
std::string input = R"(
START -- 0
19 JUN 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
10 OKT 2008 /
@ -1424,6 +1505,15 @@ BOOST_AUTO_TEST_CASE(changeBhpLimitInHistoryModeWithWeltarg) {
std::string input = R"(
START -- 0
19 JUN 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
10 OKT 2008 /
@ -1505,6 +1595,15 @@ BOOST_AUTO_TEST_CASE(changeModeWithWHISTCTL) {
std::string input = R"(
START -- 0
19 JUN 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
10 OKT 2008 /
@ -1638,6 +1737,15 @@ BOOST_AUTO_TEST_CASE(fromWCONHISTtoWCONPROD) {
std::string input = R"(
START -- 0
19 JUN 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
10 OKT 2008 /
@ -1694,6 +1802,15 @@ BOOST_AUTO_TEST_CASE(WHISTCTL_NEW_WELL) {
std::string input = R"(
START -- 0
19 JUN 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
WHISTCTL
GRAT/
@ -2802,6 +2919,15 @@ BOOST_AUTO_TEST_CASE(handleWEFAC) {
std::string input = R"(
START -- 0
19 JUN 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
10 OKT 2008 /
@ -3452,6 +3578,15 @@ BOOST_AUTO_TEST_CASE(TESTGuideRateConfig) {
std::string input = R"(
START -- 0
10 MAI 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
WELSPECS
'W1' 'G1' 1 2 3.33 'OIL' 7*/
@ -4400,6 +4535,12 @@ DEPTHZ
PORO
300*0.3 /
PERMX
300*1 /
PERMY
300*0.1 /
PERMZ
300*0.01 /
SCHEDULE
WELSPECS -- 0
@ -4599,6 +4740,12 @@ DEPTHZ
PORO
300*0.3 /
PERMX
300*1 /
PERMY
300*0.1 /
PERMZ
300*0.01 /
SCHEDULE

View File

@ -69,6 +69,15 @@ BOOST_AUTO_TEST_CASE(WellCOMPDATtestTRACK) {
std::string input =
"START -- 0 \n"
"19 JUN 2007 / \n"
"GRID\n"
"PORO\n"
"1000*0.1 /\n"
"PERMX \n"
"1000*1 /\n"
"PERMY \n"
"1000*0.1 /\n"
"PERMZ \n"
"1000*0.01 /\n"
"SCHEDULE\n"
"DATES -- 1\n"
" 10 OKT 2008 / \n"
@ -118,6 +127,15 @@ BOOST_AUTO_TEST_CASE(WellCOMPDATtestDEPTH) {
std::string input = R"(
START -- 0
19 JUN 2007 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
DATES -- 1
10 OKT 2008 /
@ -169,6 +187,15 @@ BOOST_AUTO_TEST_CASE(WellCOMPDATtestDefaultTRACK) {
std::string input =
"START -- 0 \n"
"19 JUN 2007 / \n"
"GRID\n"
"PORO\n"
"1000*0.1 /\n"
"PERMX \n"
"1000*1 /\n"
"PERMY \n"
"1000*0.1 /\n"
"PERMZ \n"
"1000*0.01 /\n"
"SCHEDULE\n"
"DATES -- 1\n"
" 10 OKT 2008 / \n"
@ -209,6 +236,15 @@ BOOST_AUTO_TEST_CASE(WellCOMPDATtestINPUT) {
std::string input =
"START -- 0 \n"
"19 JUN 2007 / \n"
"GRID\n"
"PORO\n"
"1000*0.1 /\n"
"PERMX \n"
"1000*1 /\n"
"PERMY \n"
"1000*0.1 /\n"
"PERMZ \n"
"1000*0.01 /\n"
"SCHEDULE\n"
"DATES -- 1\n"
" 10 OKT 2008 / \n"
@ -881,6 +917,15 @@ BOOST_AUTO_TEST_CASE(WELOPEN) {
std::string input =
"START -- 0 \n"
"19 JUN 2007 / \n"
"GRID\n"
"PORO\n"
"1000*0.1 /\n"
"PERMX \n"
"1000*1 /\n"
"PERMY \n"
"1000*0.1 /\n"
"PERMZ \n"
"1000*0.01 /\n"
"SCHEDULE\n"
"DATES -- 1\n"
" 10 OKT 2008 / \n"
@ -1025,6 +1070,15 @@ REGIONS
PVTNUM
1000*77 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
WELSPECS
@ -1153,6 +1207,16 @@ REGIONS
PVTNUM
1000*77 /
GRID
PORO
1000*0.1 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE
WELSPECS

View File

@ -86,6 +86,12 @@ TOPS
PORO
1000*0.2 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SOLUTION

View File

@ -42,6 +42,13 @@ DEPTHZ
PORO
1000*0.2 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
SCHEDULE

View File

@ -16,6 +16,12 @@ TOPS
PORO
1000*0.2 /
PERMX
1000*1 /
PERMY
1000*0.1 /
PERMZ
1000*0.01 /
START -- 0
1 NOV 1979 /