treat AQUFLUX keyword in SCHEDULE as individual events
We only check these keywords at the report step that the keywords are specified. Not totally sure how it will affect the RESTART, while it is not hard to switch back.
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
|
||||
#include <cstddef>
|
||||
#include <vector>
|
||||
#include <unordered_set>
|
||||
|
||||
namespace Opm {
|
||||
class TableManager;
|
||||
@@ -56,7 +57,7 @@ public:
|
||||
void loadFromRestart(const RestartIO::RstAquifer& aquifers,
|
||||
const TableManager& tables);
|
||||
|
||||
void appendAqufluxSchedule(const std::vector<int>& ids);
|
||||
void appendAqufluxSchedule(const std::unordered_set<int>& ids);
|
||||
|
||||
static AquiferConfig serializationTestObject();
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ namespace Opm {
|
||||
// For the ease of the implementation, we create inactive aquifer in the AquiferConfig.
|
||||
// At the moment, it only works for Constant Flux Aquifers(AQUFLUX) as indicated by the function name
|
||||
// When we know and decide to handle the same for AQUFETP and AQUCT, this part will be refactored
|
||||
void appendAqufluxSchedule(const std::vector<int> ids);
|
||||
void appendAqufluxSchedule(const std::unordered_set<int>& ids);
|
||||
|
||||
template<class Serializer>
|
||||
void serializeOp(Serializer& serializer)
|
||||
|
||||
@@ -261,8 +261,8 @@ namespace Opm
|
||||
const Well& getWell(std::size_t well_index, std::size_t timeStep) const;
|
||||
const Well& getWell(const std::string& wellName, std::size_t timeStep) const;
|
||||
const Well& getWellatEnd(const std::string& well_name) const;
|
||||
// get the list of the constant flux aquifer through the whole schedule
|
||||
std::vector<int> getAquiferFluxListEnd() const;
|
||||
// get the list of the constant flux aquifer specified in the whole schedule
|
||||
std::unordered_set<int> getAquiferFluxSchedule() const;
|
||||
std::vector<Well> getWells(std::size_t timeStep) const;
|
||||
std::vector<Well> getWellsatEnd() const;
|
||||
void shut_well(const std::string& well_name, std::size_t report_step);
|
||||
@@ -367,7 +367,6 @@ namespace Opm
|
||||
this->template pack_unpack_map<int, VFPInjTable>(serializer);
|
||||
this->template pack_unpack_map<std::string, Group>(serializer);
|
||||
this->template pack_unpack_map<std::string, Well>(serializer);
|
||||
this->template pack_unpack_map<int, AquiferFlux>(serializer);
|
||||
}
|
||||
|
||||
template <typename T, class Serializer>
|
||||
|
||||
@@ -467,8 +467,6 @@ namespace Opm {
|
||||
return this->groups;
|
||||
else if constexpr ( std::is_same_v<T, Well> )
|
||||
return this->wells;
|
||||
else if constexpr ( std::is_same_v<T, AquiferFlux> )
|
||||
return this->aqufluxs;
|
||||
else
|
||||
static_assert(always_false2<K,T>::value, "Template type <K,T> not supported in get_map()");
|
||||
}
|
||||
@@ -478,7 +476,7 @@ namespace Opm {
|
||||
map_member<std::string, Group> groups;
|
||||
map_member<std::string, Well> wells;
|
||||
// constant flux aquifers
|
||||
map_member<int, AquiferFlux> aqufluxs;
|
||||
std::unordered_map<int, AquiferFlux> aqufluxs;
|
||||
std::unordered_map<std::string, double> target_wellpi;
|
||||
std::optional<NextStep> next_tstep;
|
||||
|
||||
@@ -506,6 +504,7 @@ namespace Opm {
|
||||
serializer(m_message_limits);
|
||||
serializer(m_whistctl_mode);
|
||||
serializer(target_wellpi);
|
||||
serializer(aqufluxs);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user