Add TableManager argument to FieldProps constructor

This commit is contained in:
Joakim Hove
2019-11-14 07:14:54 +01:00
parent 8cd72f1ff0
commit 7fbbb6d71a
9 changed files with 21 additions and 14 deletions

View File

@@ -26,12 +26,13 @@ namespace Opm {
class EclipseGrid;
class Deck;
class FieldProps;
class TableManager;
class FieldPropsManager {
public:
// The default constructor should be removed when the FieldPropsManager is mandatory
FieldPropsManager() = default;
FieldPropsManager(const Deck& deck, const EclipseGrid& grid);
FieldPropsManager(const Deck& deck, const EclipseGrid& grid, const TableManager& tables);
void reset_grid(const EclipseGrid& grid);
/*

View File

@@ -337,7 +337,7 @@ namespace Opm {
std::vector<PvtoTable> m_pvtoTables;
std::vector<Rock2dTable> m_rock2dTables;
std::vector<Rock2dtrTable> m_rock2dtrTables;
PvtwTable m_pvtwTable;
PvtwTable m_pvtwTable;
PvcdoTable m_pvcdoTable;
DensityTable m_densityTable;
RockTable m_rockTable;

View File

@@ -139,7 +139,7 @@ void assert_field_properties(const EclipseGrid& grid, const FieldPropsManager& f
m_inputGrid( deck, nullptr ),
m_eclipseProperties( deck, m_tables, m_inputGrid ),
#ifdef ENABLE_3DPROPS_TESTING
field_props( deck, m_inputGrid),
field_props( deck, m_inputGrid, m_tables),
#endif
m_simulationConfig( m_eclipseConfig.getInitConfig().restartRequested(), deck, m_eclipseProperties ),
m_transMult( GridDims(deck), deck, m_eclipseProperties )

View File

@@ -23,6 +23,7 @@
#include <opm/parser/eclipse/Parser/ParserKeywords/P.hpp>
#include <opm/parser/eclipse/Deck/Deck.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/TableManager.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/EclipseGrid.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/BoxManager.hpp>
@@ -284,9 +285,10 @@ void handle_box_keyword(const EclipseGrid& grid, const DeckKeyword& deckKeyword,
FieldProps::FieldProps(const Deck& deck, const EclipseGrid& grid_arg) :
FieldProps::FieldProps(const Deck& deck, const EclipseGrid& grid_arg, const TableManager& table_arg) :
unit_system(deck.getActiveUnitSystem()),
grid(std::addressof(grid_arg)),
tables(table_arg),
active_size(grid_arg.getNumActive()),
actnum(grid_arg.getACTNUM()),
default_region(default_region_keyword(deck))

View File

@@ -30,6 +30,7 @@ namespace Opm {
class Deck;
class EclipseGrid;
class TableManager;
class FieldProps {
public:
@@ -105,7 +106,7 @@ public:
};
FieldProps(const Deck& deck, const EclipseGrid& grid);
FieldProps(const Deck& deck, const EclipseGrid& grid, const TableManager& table_arg);
void reset_grid(const EclipseGrid& grid);
template <typename T>
@@ -168,6 +169,7 @@ private:
const UnitSystem unit_system;
const EclipseGrid* grid; // A reseatable pointer to const.
const TableManager& tables;
std::size_t active_size;
std::vector<int> actnum;
const std::string default_region;

View File

@@ -26,8 +26,8 @@
namespace Opm {
FieldPropsManager::FieldPropsManager(const Deck& deck, const EclipseGrid& grid_arg) :
fp(std::make_shared<FieldProps>(deck, grid_arg))
FieldPropsManager::FieldPropsManager(const Deck& deck, const EclipseGrid& grid_arg, const TableManager& tables) :
fp(std::make_shared<FieldProps>(deck, grid_arg, tables))
{}
void FieldPropsManager::reset_grid(const EclipseGrid& grid) {

View File

@@ -35,6 +35,7 @@
#include <opm/parser/eclipse/EclipseState/Schedule/Well/Connection.hpp>
#include <opm/parser/eclipse/EclipseState/Schedule/Well/WellConnections.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/EclipseGrid.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/TableManager.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/FieldPropsManager.hpp>
#include <opm/parser/eclipse/EclipseState/Eclipse3DProperties.hpp>
@@ -149,7 +150,7 @@ Opm::WellConnections loadCOMPDAT(const std::string& compdat_keyword) {
Opm::Parser parser;
const auto deck = parser.parseString(compdat_keyword);
Opm::Eclipse3DProperties props(deck, tables, grid );
Opm::FieldPropsManager field_props(deck, grid);
Opm::FieldPropsManager field_props(deck, grid, Opm::TableManager());
const auto& keyword = deck.getKeyword("COMPDAT", 0);
Opm::WellConnections connections1(10,10);
Opm::WellConnections connections2(10,10);

View File

@@ -271,7 +271,7 @@ struct Setup
tablemanager(deck),
grid(deck),
props(deck, tablemanager, grid),
fp(deck, grid)
fp(deck, grid, tablemanager)
{
}
};

View File

@@ -33,6 +33,7 @@
#include <opm/parser/eclipse/Deck/Section.hpp>
#include <opm/parser/eclipse/Deck/Deck.hpp>
#include <opm/parser/eclipse/Deck/DeckKeyword.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/TableManager.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/FieldPropsManager.hpp>
#include <opm/parser/eclipse/EclipseState/Grid/EclipseGrid.hpp>
@@ -42,7 +43,7 @@ using namespace Opm;
BOOST_AUTO_TEST_CASE(CreateFieldProps) {
EclipseGrid grid(10,10,10);
Deck deck;
FieldPropsManager fpm(deck, grid);
FieldPropsManager fpm(deck, grid, TableManager());
BOOST_CHECK(!fpm.try_get<double>("PORO"));
BOOST_CHECK(!fpm.try_get<double>("PORO"));
BOOST_CHECK_THROW(fpm.get<double>("PORO"), std::out_of_range);
@@ -78,7 +79,7 @@ PERMX
actnum[i] = 0;
EclipseGrid grid(EclipseGrid(10,10,10), actnum);
Deck deck = Parser{}.parseString(deck_string);
FieldPropsManager fpm(deck, grid);
FieldPropsManager fpm(deck, grid, TableManager());
BOOST_CHECK(!fpm.has<double>("NO-PORO"));
BOOST_CHECK(fpm.has<double>("PORO"));
@@ -107,7 +108,7 @@ COPY
EclipseGrid grid(EclipseGrid(10,10,10));
Deck deck = Parser{}.parseString(deck_string);
BOOST_CHECK_THROW( FieldPropsManager(deck, grid), std::invalid_argument);
BOOST_CHECK_THROW( FieldPropsManager(deck, grid, TableManager()), std::invalid_argument);
}
BOOST_AUTO_TEST_CASE(GRID_RESET) {
@@ -121,7 +122,7 @@ SATNUM
std::vector<int> actnum1 = {1,1,1,0,0,0,1,1,1};
EclipseGrid grid(3,1,3); grid.resetACTNUM(actnum1);
Deck deck = Parser{}.parseString(deck_string);
FieldPropsManager fpm(deck, grid);
FieldPropsManager fpm(deck, grid, TableManager());
const auto& s1 = fpm.get<int>("SATNUM");
BOOST_CHECK_EQUAL(s1.size(), 6);
BOOST_CHECK_EQUAL(s1[0], 0);
@@ -163,7 +164,7 @@ ADDREG
std::vector<int> actnum1 = {1,1,0,0,1,1};
EclipseGrid grid(3,2,1); grid.resetACTNUM(actnum1);
Deck deck = Parser{}.parseString(deck_string);
FieldPropsManager fpm(deck, grid);
FieldPropsManager fpm(deck, grid, TableManager());
const auto& poro = fpm.get<double>("PORO");
BOOST_CHECK_EQUAL(poro.size(), 4);
BOOST_CHECK_EQUAL(poro[0], 0.10);