#1606 Add option to export completions for all wells or only checked wells

This commit is contained in:
Bjørnar Grip Fjær
2017-06-15 11:37:00 +02:00
parent 14f91736b7
commit 6da356fa27
3 changed files with 36 additions and 5 deletions

View File

@@ -28,6 +28,14 @@ namespace caf
addItem(RicExportCompletionDataSettingsUi::SPLIT_ON_WELL_AND_COMPLETION_TYPE, "SPLIT_ON_WELL_AND_COMPLETION_TYPE", "Split on Well and Completion Type");
setDefault(RicExportCompletionDataSettingsUi::UNIFIED_FILE);
}
template<>
void RicExportCompletionDataSettingsUi::WellSelectionType::setUp()
{
addItem(RicExportCompletionDataSettingsUi::ALL_WELLS, "ALL_WELLS", "All Wells");
addItem(RicExportCompletionDataSettingsUi::CHECKED_WELLS, "CHECKED_WELLS", "Checked Wells");
setDefault(RicExportCompletionDataSettingsUi::ALL_WELLS);
}
}
@@ -41,6 +49,7 @@ RicExportCompletionDataSettingsUi::RicExportCompletionDataSettingsUi()
CAF_PDM_InitObject("RimExportCompletionDataSettings", "", "", "");
CAF_PDM_InitFieldNoDefault(&fileSplit, "FileSplit", "File Split", "", "", "");
CAF_PDM_InitFieldNoDefault(&wellSelection, "WellSelection", "Well Selection", "", "", "");
CAF_PDM_InitField(&timeStep, "TimeStepIndex", 0, "Time Step", "", "", "");

View File

@@ -36,14 +36,20 @@ public:
SPLIT_ON_WELL,
SPLIT_ON_WELL_AND_COMPLETION_TYPE,
};
typedef caf::AppEnum<ExportSplit> ExportSplitType;
enum WellSelection {
ALL_WELLS,
CHECKED_WELLS,
};
typedef caf::AppEnum<WellSelection> WellSelectionType;
RicExportCompletionDataSettingsUi();
caf::PdmField<ExportSplitType> fileSplit;
caf::PdmField<WellSelectionType> wellSelection;
caf::PdmField<bool> computeTransmissibility;
caf::PdmField<bool> includePerforations;

View File

@@ -147,9 +147,25 @@ void RicWellPathExportCompletionDataFeature::exportCompletions(const std::vector
return;
}
std::vector<RimWellPath*> usedWellPaths;
if (exportSettings.wellSelection == RicExportCompletionDataSettingsUi::ALL_WELLS)
{
usedWellPaths = wellPaths;
}
else if (exportSettings.wellSelection == RicExportCompletionDataSettingsUi::CHECKED_WELLS)
{
for (auto wellPath : wellPaths)
{
if (wellPath->showWellPath)
{
usedWellPaths.push_back(wellPath);
}
}
}
{
bool unitSystemMismatch = false;
for (const RimWellPath* wellPath : wellPaths)
for (const RimWellPath* wellPath : usedWellPaths)
{
if (wellPath->unitSystem() == RiaEclipseUnitTools::UNITS_FIELD && exportSettings.caseToApply->eclipseCaseData()->unitsType() != RigEclipseCaseData::UNITS_FIELD)
{
@@ -172,7 +188,7 @@ void RicWellPathExportCompletionDataFeature::exportCompletions(const std::vector
std::map<IJKCellIndex, std::vector<RigCompletionData> > completionData;
for (auto wellPath : wellPaths)
for (auto wellPath : usedWellPaths)
{
// Generate completion data
@@ -210,7 +226,7 @@ void RicWellPathExportCompletionDataFeature::exportCompletions(const std::vector
}
else if (exportSettings.fileSplit == RicExportCompletionDataSettingsUi::SPLIT_ON_WELL)
{
for (auto wellPath : wellPaths)
for (auto wellPath : usedWellPaths)
{
std::vector<RigCompletionData> wellCompletions;
for (auto completion : completions)
@@ -227,7 +243,7 @@ void RicWellPathExportCompletionDataFeature::exportCompletions(const std::vector
}
else if (exportSettings.fileSplit == RicExportCompletionDataSettingsUi::SPLIT_ON_WELL_AND_COMPLETION_TYPE)
{
for (auto wellPath : wellPaths)
for (auto wellPath : usedWellPaths)
{
{
std::vector<RigCompletionData> fishbonesCompletions = getCompletionsForWellAndCompletionType(completions, wellPath->completions()->wellNameForExport(), RigCompletionData::FISHBONES);