Merge pull request #2074 from joakim-hove/handlercontext-units

Make section and keyword index optional in Schedule handlerContext
This commit is contained in:
Joakim Hove
2020-11-05 12:40:53 +01:00
committed by GitHub
3 changed files with 69 additions and 55 deletions
@@ -107,7 +107,6 @@ namespace Opm
class SCHEDULESection;
class SummaryState;
class TimeMap;
class UnitSystem;
class ErrorGuard;
class WListManager;
class UDQConfig;
@@ -336,6 +335,7 @@ namespace Opm
reconstructDynMap<Map2>(splitvfpprod.first, splitvfpprod.second, vfpprod_tables);
reconstructDynMap<Map2>(splitvfpinj.first, splitvfpinj.second, vfpinj_tables);
}
unit_system.serializeOp(serializer);
}
private:
@@ -366,13 +366,13 @@ namespace Opm
RFTConfig rft_config;
DynamicState<int> m_nupcol;
RestartConfig restart_config;
UnitSystem unit_system;
std::optional<int> exit_status;
std::map<std::string,Events> wellgroup_events;
void load_rst(const RestartIO::RstState& rst,
const EclipseGrid& grid,
const FieldPropsManager& fp,
const UnitSystem& unit_system);
const FieldPropsManager& fp);
void addWell(Well well, std::size_t report_step);
void addWell(const std::string& wellName,
const std::string& group,
@@ -386,8 +386,7 @@ namespace Opm
int pvt_table,
Well::GasInflowEquation gas_inflow,
std::size_t timeStep,
Connection::Order wellConnectionOrder,
const UnitSystem& unit_system);
Connection::Order wellConnectionOrder);
DynamicState<std::shared_ptr<RPTConfig>> rpt_config;
void updateNetwork(std::shared_ptr<Network::ExtNetwork> network, std::size_t report_step);
@@ -404,9 +403,9 @@ namespace Opm
void addACTIONX(const Action::ActionX& action, std::size_t currentStep);
void addGroupToGroup( const std::string& parent_group, const std::string& child_group, std::size_t timeStep);
void addGroupToGroup( const std::string& parent_group, const Group& child_group, std::size_t timeStep);
void addGroup(const std::string& groupName , std::size_t timeStep, const UnitSystem& unit_system);
void addGroup(const std::string& groupName , std::size_t timeStep);
void addGroup(const Group& group, std::size_t timeStep);
void addWell(const std::string& wellName, const DeckRecord& record, std::size_t timeStep, Connection::Order connection_order, const UnitSystem& unit_system);
void addWell(const std::string& wellName, const DeckRecord& record, std::size_t timeStep, Connection::Order connection_order);
void checkUnhandledKeywords( const SCHEDULESection& ) const;
void checkIfAllConnectionsIsShut(std::size_t currentStep);
void updateUDQ(const DeckKeyword& keyword, std::size_t current_step);
@@ -449,7 +448,7 @@ namespace Opm
}
static std::string formatDate(std::time_t t);
std::string simulationDays(const UnitSystem&, std::size_t currentStep) const;
std::string simulationDays(std::size_t currentStep) const;
void applyEXIT(const DeckKeyword&, std::size_t currentStep);
void applyMESSAGES(const DeckKeyword&, std::size_t currentStep);
@@ -458,12 +457,24 @@ namespace Opm
void applyWRFTPLT(const DeckKeyword&, std::size_t currentStep);
struct HandlerContext {
const SCHEDULESection& section;
const DeckKeyword& keyword;
const std::size_t keywordIndex;
const std::size_t currentStep;
const EclipseGrid& grid;
const FieldPropsManager& fieldPropsManager;
const SCHEDULESection * section = nullptr;
std::optional<std::size_t> keywordIndex;
HandlerContext(const DeckKeyword& keyword_,
const std::size_t currentStep_,
const EclipseGrid& grid_,
const FieldPropsManager& fieldPropsManager_) :
keyword(keyword_),
currentStep(currentStep_),
grid(grid_),
fieldPropsManager(fieldPropsManager_)
{}
};
/**