mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1976 RFT/PLT Plot. Prevent multiple well paths from associate to the same sim well
This commit is contained in:
parent
85e2a5d3f3
commit
b62d4448d9
@ -909,8 +909,8 @@ RimWellPath* RimProject::wellPathFromSimulationWell(const QString& simWellName,
|
||||
auto wellPathColl = oilField->wellPathCollection();
|
||||
for (const auto& path : wellPathColl->wellPaths)
|
||||
{
|
||||
if (QString::compare(path->relatedSimulationWell(), simWellName) == 0 &&
|
||||
(branchIndex < 0 || path->relatedSimulationWellBranch() == branchIndex))
|
||||
if (QString::compare(path->associatedSimulationWell(), simWellName) == 0 &&
|
||||
(branchIndex < 0 || path->associatedSimulationWellBranch() == branchIndex))
|
||||
{
|
||||
return path;
|
||||
}
|
||||
@ -919,6 +919,23 @@ RimWellPath* RimProject::wellPathFromSimulationWell(const QString& simWellName,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimWellPath*> RimProject::allWellPaths() const
|
||||
{
|
||||
std::vector<RimWellPath*> paths;
|
||||
for (const auto& oilField : oilFields())
|
||||
{
|
||||
auto wellPathColl = oilField->wellPathCollection();
|
||||
for (const auto& path : wellPathColl->wellPaths)
|
||||
{
|
||||
paths.push_back(path);
|
||||
}
|
||||
}
|
||||
return paths;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -127,6 +127,7 @@ public:
|
||||
std::vector<QString> simulationWellNames() const;
|
||||
std::vector<const RigWellPath*> simulationWellBranches(const QString& simWellName);
|
||||
RimWellPath* wellPathFromSimulationWell(const QString& simWellName, int branchIndex = -1);
|
||||
std::vector<RimWellPath*> allWellPaths() const;
|
||||
|
||||
std::vector<RimGeoMechCase*> geoMechCases() const;
|
||||
|
||||
|
@ -316,9 +316,22 @@ QList<caf::PdmOptionItemInfo> RimWellPath::calculateValueOptions(const caf::PdmF
|
||||
if (fieldNeedingOptions == &m_simWellName)
|
||||
{
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
|
||||
// Find simulation wells already assigned to a well path
|
||||
std::set<QString> associatedSimWells;
|
||||
for (const auto& wellPath : proj->allWellPaths())
|
||||
{
|
||||
if (wellPath->isAssociatedWithSimulationWell() && wellPath != this)
|
||||
{
|
||||
associatedSimWells.insert(wellPath->associatedSimulationWell());
|
||||
}
|
||||
}
|
||||
|
||||
options.push_back(caf::PdmOptionItemInfo(SIM_WELL_NONE_UI_TEXT, ""));
|
||||
for (const auto& wellName : proj->simulationWellNames())
|
||||
{
|
||||
if (associatedSimWells.count(wellName) > 0) continue;
|
||||
|
||||
options.push_back(caf::PdmOptionItemInfo(wellName, wellName));
|
||||
}
|
||||
}
|
||||
@ -655,7 +668,7 @@ RimWellPath* RimWellPath::fromFilePath(QString filePath)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const QString RimWellPath::relatedSimulationWell() const
|
||||
const QString RimWellPath::associatedSimulationWell() const
|
||||
{
|
||||
return m_simWellName;
|
||||
}
|
||||
@ -663,7 +676,7 @@ const QString RimWellPath::relatedSimulationWell() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int RimWellPath::relatedSimulationWellBranch() const
|
||||
int RimWellPath::associatedSimulationWellBranch() const
|
||||
{
|
||||
return m_branchIndex;
|
||||
}
|
||||
|
@ -115,8 +115,8 @@ public:
|
||||
RiaEclipseUnitTools::UnitSystem unitSystem() const;
|
||||
static RimWellPath* fromFilePath(QString filePath);
|
||||
|
||||
const QString relatedSimulationWell() const;
|
||||
int relatedSimulationWellBranch() const;
|
||||
const QString associatedSimulationWell() const;
|
||||
int associatedSimulationWellBranch() const;
|
||||
bool tryAssociateWithSimulationWell();
|
||||
bool isAssociatedWithSimulationWell() const;
|
||||
bool tryMatchName(QString wellPathName, const std::vector<QString>& simWellNames);
|
||||
|
Loading…
Reference in New Issue
Block a user