Ignore Default Regions in MULTREGT

The MULTREGT keyword has an independent way of defining the default
region--the default value of item 6--and does not need the default
GRIDOPTS-base region protocol of the other *REG keywords.
This commit is contained in:
Bård Skaflestad
2023-08-28 17:20:29 +02:00
parent f6676fcc1a
commit 53e2758649
2 changed files with 5 additions and 14 deletions

View File

@@ -108,7 +108,6 @@ namespace Opm {
{
serializer(gridDims);
serializer(default_region);
serializer(m_records);
serializer(m_searchMap);
@@ -123,7 +122,6 @@ namespace Opm {
GridDims gridDims{};
const FieldPropsManager* fp{nullptr};
std::string default_region{};
std::vector<MULTREGTRecord> m_records{};
std::map<std::string, MULTREGTSearchMap> m_searchMap{};

View File

@@ -145,9 +145,8 @@ namespace Opm {
MULTREGTScanner::MULTREGTScanner(const GridDims& gridDims_arg,
const FieldPropsManager* fp_arg,
const std::vector<const DeckKeyword*>& keywords)
: gridDims { gridDims_arg }
, fp { fp_arg }
, default_region { this->fp->default_region() }
: gridDims { gridDims_arg }
, fp { fp_arg }
{
for (const auto* keywordRecordPtr : keywords) {
this->addKeyword(*keywordRecordPtr);
@@ -206,7 +205,6 @@ namespace Opm {
std::forward_as_tuple(std::make_pair(1, 2)),
std::forward_as_tuple(0));
result.regions = {{"test3", {11}}};
result.default_region = "test4";
return result;
}
@@ -214,7 +212,6 @@ namespace Opm {
bool MULTREGTScanner::operator==(const MULTREGTScanner& data) const
{
return (this->gridDims == data.gridDims)
&& (this->default_region == data.default_region)
&& (this->m_records == data.m_records)
&& (this->m_searchMap == data.m_searchMap)
&& (this->regions == data.regions)
@@ -225,7 +222,6 @@ namespace Opm {
{
this->gridDims = data.gridDims;
this->fp = data.fp;
this->default_region = data.default_region;
this->m_records = data.m_records;
this->m_searchMap = data.m_searchMap;
@@ -345,7 +341,6 @@ namespace Opm {
for (const auto& deckRecord : deckKeyword) {
std::vector<int> src_regions;
std::vector<int> target_regions;
std::string region_name = this->default_region;
const auto& srcItem = deckRecord.getItem<Kw::SRC_REGION>();
const auto& targetItem = deckRecord.getItem<Kw::TARGET_REGION>();
@@ -355,11 +350,9 @@ namespace Opm {
const auto directions = FaceDir::FromMULTREGTString(deckRecord.getItem<Kw::DIRECTIONS>().get<std::string>(0));
const auto nnc_behaviour = MULTREGT::NNCBehaviourFromString(deckRecord.getItem<Kw::NNC_MULT>().get<std::string>(0));
if (regionItem.defaultApplied(0)) {
if (!m_records.empty())
region_name = m_records.back().region_name;
} else
region_name = MULTREGT::RegionNameFromDeckValue( regionItem.get<std::string>(0) );
const auto region_name = (!this->m_records.empty() && regionItem.defaultApplied(0))
? this->m_records.back().region_name
: MULTREGT::RegionNameFromDeckValue(regionItem.get<std::string>(0));
if (srcItem.defaultApplied(0) || srcItem.get<int>(0) < 0) {
src_regions = unique(this->fp->get_int(region_name));