opm-common
Loading...
Searching...
No Matches
Opm::Schedule Class Reference

Public Member Functions

 Schedule (std::shared_ptr< const Python > python_handle)
 Schedule (const Deck &deck, const EclipseGrid &grid, const FieldPropsManager &fp, const NumericalAquifers &numAquifers, const Runspec &runspec, const ParseContext &parseContext, ErrorGuard &errors, std::shared_ptr< const Python > python, const bool lowActionParsingStrictness=false, const bool slave_mode=false, const bool keepKeywords=true, const std::optional< int > &output_interval={}, const RestartIO::RstState *rst=nullptr, const TracerConfig *tracer_config=nullptr)
 Construct a Schedule object from a deck.
template<typename T>
 Schedule (const Deck &deck, const EclipseGrid &grid, const FieldPropsManager &fp, const NumericalAquifers &numAquifers, const Runspec &runspec, const ParseContext &parseContext, T &&errors, std::shared_ptr< const Python > python, const bool lowActionParsingStrictness=false, const bool slave_mode=false, const bool keepKeywords=true, const std::optional< int > &output_interval={}, const RestartIO::RstState *rst=nullptr, const TracerConfig *tracer_config=nullptr)
 Schedule (const Deck &deck, const EclipseGrid &grid, const FieldPropsManager &fp, const NumericalAquifers &numAquifers, const Runspec &runspec, std::shared_ptr< const Python > python, const bool lowActionParsingStrictness=false, const bool slave_mode=false, const bool keepKeywords=true, const std::optional< int > &output_interval={}, const RestartIO::RstState *rst=nullptr, const TracerConfig *tracer_config=nullptr)
 Schedule (const Deck &deck, const EclipseState &es, const ParseContext &parseContext, ErrorGuard &errors, std::shared_ptr< const Python > python, const bool lowActionParsingStrictness=false, const bool slave_mode=false, const bool keepKeywords=true, const std::optional< int > &output_interval={}, const RestartIO::RstState *rst=nullptr)
template<typename T>
 Schedule (const Deck &deck, const EclipseState &es, const ParseContext &parseContext, T &&errors, std::shared_ptr< const Python > python, const bool lowActionParsingStrictness=false, const bool slave_mode=false, const bool keepKeywords=true, const std::optional< int > &output_interval={}, const RestartIO::RstState *rst=nullptr)
 Schedule (const Deck &deck, const EclipseState &es, std::shared_ptr< const Python > python, const bool lowActionParsingStrictness=false, const bool slave_mode=false, const bool keepKeywords=true, const std::optional< int > &output_interval={}, const RestartIO::RstState *rst=nullptr)
 Schedule (const Deck &deck, const EclipseState &es, const std::optional< int > &output_interval={}, const RestartIO::RstState *rst=nullptr)
std::time_t getStartTime () const
std::time_t posixStartTime () const
std::time_t posixEndTime () const
std::time_t simTime (std::size_t timeStep) const
double seconds (std::size_t timeStep) const
double stepLength (std::size_t timeStep) const
std::optional< int > exitStatus () const
const UnitSystemgetUnits () const
const Runspecrunspec () const
std::size_t numWells () const
std::size_t numWells (std::size_t timestep) const
bool hasWell (const std::string &wellName) const
bool hasWell (const std::string &wellName, std::size_t timeStep) const
WellMatcher wellMatcher (std::size_t report_step) const
std::function< std::unique_ptr< SegmentMatcher >()> segmentMatcherFactory (std::size_t report_step) const
std::vector< std::string > wellNames (const std::string &pattern, std::size_t timeStep, const std::vector< std::string > &matching_wells={}) const
std::vector< std::string > wellNames (const std::string &pattern) const
std::vector< std::string > wellNames (std::size_t timeStep) const
std::vector< std::string > wellNames () const
bool hasGroup (const std::string &groupName, std::size_t timeStep) const
 Query for group existence at particular time.
std::vector< std::string > groupNames (const std::string &pattern, std::size_t timeStep) const
 Retrieve names of all groups at particular time whose names match a pattern.
const std::vector< std::string > & groupNames (std::size_t timeStep) const
 Retrieve names of all groups at a particular time.
std::vector< std::string > groupNames (const std::string &pattern) const
 Retrieve names of all groups matching a pattern.
const std::vector< std::string > & groupNames () const
 Retrieve names of all groups in model.
std::vector< const Group * > restart_groups (std::size_t timeStep) const
 Retrieve collection of group objects suiteable for restart file output.
std::vector< std::string > changed_wells (std::size_t reportStep, std::size_t initialStep=0) const
const WellgetWell (std::size_t well_index, std::size_t timeStep) const
const WellgetWell (const std::string &wellName, std::size_t timeStep) const
const WellgetWellatEnd (const std::string &well_name) const
std::unordered_set< int > getAquiferFluxSchedule () const
std::vector< WellgetWells (std::size_t timeStep) const
std::vector< WellgetWellsatEnd () const
std::vector< WellgetActiveWellsAtEnd () const
std::vector< std::string > getInactiveWellNamesAtEnd () const
const std::unordered_map< std::string, std::set< int > > & getPossibleFutureConnections () const
void shut_well (const std::string &well_name, std::size_t report_step)
void shut_well (const std::string &well_name)
void stop_well (const std::string &well_name, std::size_t report_step)
void stop_well (const std::string &well_name)
void open_well (const std::string &well_name, std::size_t report_step)
void open_well (const std::string &well_name)
void clear_event (ScheduleEvents::Events, std::size_t report_step)
void add_event (ScheduleEvents::Events, std::size_t report_step)
void applyWellProdIndexScaling (const std::string &well_name, const std::size_t reportStep, const double scalingFactor)
void clearEvents (const std::size_t report_step)
 Clear out all registered events at a given report step.
WellProducerCMode getGlobalWhistctlMmode (std::size_t timestep) const
const UDQConfiggetUDQConfig (std::size_t timeStep) const
GTNode groupTree (std::size_t report_step) const
GTNode groupTree (const std::string &root_node, std::size_t report_step) const
const GroupgetGroup (const std::string &groupName, std::size_t timeStep) const
std::optional< std::size_t > first_RFT () const
void filterConnections (const ActiveGridCells &grid)
std::size_t size () const
bool write_rst_file (std::size_t report_step) const
const std::map< std::string, int > & rst_keywords (size_t timestep) const
SimulatorUpdate applyAction (std::size_t reportStep, const Action::ActionX &action, const Action::Result::MatchingEntities &matches, const std::unordered_map< std::string, double > &wellpi, const bool iterateSchedule)
SimulatorUpdate applyAction (std::size_t reportStep, const Action::ActionX &action, const Action::Result::MatchingEntities &matches, const std::unordered_map< std::string, float > &wellpi, const bool iterateSchedule)
SimulatorUpdate runPyAction (std::size_t reportStep, const Action::PyAction &pyaction, Action::State &action_state, EclipseState &ecl_state, SummaryState &summary_state)
SimulatorUpdate runPyAction (std::size_t reportStep, const Action::PyAction &pyaction, Action::State &action_state, EclipseState &ecl_state, SummaryState &summary_state, const std::unordered_map< std::string, double > &target_wellpi)
SimulatorUpdate runPyAction (std::size_t reportStep, const Action::PyAction &pyaction, Action::State &action_state, EclipseState &ecl_state, SummaryState &summary_state, const std::unordered_map< std::string, float > &target_wellpi)
SimulatorUpdate modifyCompletions (const std::size_t reportStep, const std::map< std::string, std::vector< Connection > > &extraConns)
const GasLiftOptglo (std::size_t report_step) const
bool operator== (const Schedule &data) const
std::shared_ptr< const Pythonpython () const
const std::optional< RPTConfig > & initialReportConfiguration () const
 Retrieve initial report configuration object.
const ScheduleStateback () const
const ScheduleStateoperator[] (std::size_t index) const
std::vector< ScheduleState >::const_iterator begin () const
std::vector< ScheduleState >::const_iterator end () const
void create_next (const time_point &start_time, const std::optional< time_point > &end_time)
void create_next (const ScheduleBlock &block)
void create_first (const time_point &start_time, const std::optional< time_point > &end_time)
void treat_critical_as_non_critical (bool value)
void applyKeywords (std::vector< std::unique_ptr< DeckKeyword > > &keywords, std::unordered_map< std::string, double > &target_wellpi, bool action_mode, std::size_t report_step)
void applyKeywords (std::vector< std::unique_ptr< DeckKeyword > > &keywords, std::unordered_map< std::string, double > &target_wellpi, bool action_mode)
template<class Serializer>
void serializeOp (Serializer &serializer)
template<typename T>
std::vector< std::pair< std::size_t, T > > unique () const
void dump_deck (std::ostream &os) const

Static Public Member Functions

static Schedule serializationTestObject ()
static bool cmp (const Schedule &sched1, const Schedule &sched2, std::size_t report_step)

Friends

class HandlerContext
std::ostream & operator<< (std::ostream &os, const Schedule &sched)

Constructor & Destructor Documentation

◆ Schedule()

Opm::Schedule::Schedule ( const Deck & deck,
const EclipseGrid & grid,
const FieldPropsManager & fp,
const NumericalAquifers & numAquifers,
const Runspec & runspec,
const ParseContext & parseContext,
ErrorGuard & errors,
std::shared_ptr< const Python > python,
const bool lowActionParsingStrictness = false,
const bool slave_mode = false,
const bool keepKeywords = true,
const std::optional< int > & output_interval = {},
const RestartIO::RstState * rst = nullptr,
const TracerConfig * tracer_config = nullptr )

Construct a Schedule object from a deck.

Parameters
deckDeck to construct Schedule from
gridEclipse grid description
fpField property manager
numAquifersNumerical aquifers to use
runspecRun specification parameters to use
parseContextParsing context
errorsError configuration
pythonPython interpreter to use
lowActionParsingStrictnessReduce parsing strictness for actions
slave_modeSlave mode flag
keepKeywordsKeep the schdule keywords even if there are no actions
output_intervalOutput interval to use
rstRestart state to use
tracer_configTracer configuration to use

Member Function Documentation

◆ groupNames() [1/4]

const std::vector< std::string > & Opm::Schedule::groupNames ( ) const

Retrieve names of all groups in model.

Includes FIELD group.

◆ groupNames() [2/4]

std::vector< std::string > Opm::Schedule::groupNames ( const std::string & pattern) const

Retrieve names of all groups matching a pattern.

Parameters
[in]patternGroup name pattern. Expected to be a group name root such as 'PR*' or a fully specified group name such as 'PROD'.
Returns
Names of all groups in simulation run matching the pattern.

◆ groupNames() [3/4]

std::vector< std::string > Opm::Schedule::groupNames ( const std::string & pattern,
std::size_t timeStep ) const

Retrieve names of all groups at particular time whose names match a pattern.

Parameters
[in]patternGroup name pattern. Expected to be a group name root such as 'PR*' or a fully specified group name such as 'PROD'.
[in]timeStepZero-based report step index.
Returns
Names of all groups at timeStep whose names match the pattern.

◆ groupNames() [4/4]

const std::vector< std::string > & Opm::Schedule::groupNames ( std::size_t timeStep) const

Retrieve names of all groups at a particular time.

Parameters
[in]timeStepZero-based report step index.
Returns
Names of all groups in simulation which are active at time timeStep.

◆ hasGroup()

bool Opm::Schedule::hasGroup ( const std::string & groupName,
std::size_t timeStep ) const

Query for group existence at particular time.

Parameters
[in]groupNameFully specified group name.
[in]timeStepZero-based report step index.
Returns
Whether or not group groupName exists at time timeStep.

◆ initialReportConfiguration()

const std::optional< RPTConfig > & Opm::Schedule::initialReportConfiguration ( ) const

Retrieve initial report configuration object.

Populated by RPTSOL keyword in the SOLUTION section.

Returns
Initial configuration object. Nullopt if there is no RPTSOL information in the SOLUTION section.

◆ restart_groups()

std::vector< const Group * > Opm::Schedule::restart_groups ( std::size_t timeStep) const

Retrieve collection of group objects suiteable for restart file output.

The collection is sized and ordered as follows

  1. The number of elements is WELLDIMS::MAXGROUPS + 1
  2. The elements are sorted according to group.insert_index().
  3. Nullptr represents an unused slot.
  4. The very last element corresponds to the FIELD group.
Parameters
[in]timeStepZero-based report step index.

The documentation for this class was generated from the following files:
  • opm/input/eclipse/Schedule/Schedule.hpp
  • opm/input/eclipse/Schedule/Schedule.cpp