#2447 Fracture : Show fracture legend when only ellipse fractures are present

This commit is contained in:
Magne Sjaastad
2018-02-06 12:42:13 +01:00
parent d420b74326
commit a283a468c2
9 changed files with 50 additions and 13 deletions

View File

@@ -25,3 +25,16 @@ QString RiaDefines::conductivityResultName()
{
return "CONDUCTIVITY";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaDefines::unitStringConductivity(RiaEclipseUnitTools::UnitSystem unitSystem)
{
switch (unitSystem)
{
case RiaEclipseUnitTools::UNITS_METRIC: return "md-m";
case RiaEclipseUnitTools::UNITS_FIELD: return "md-ft";
default: return "";
}
}

View File

@@ -18,9 +18,12 @@
#pragma once
#include "RiaEclipseUnitTools.h"
#include <QString>
namespace RiaDefines
{
QString conductivityResultName();
QString unitStringConductivity(RiaEclipseUnitTools::UnitSystem unitSystem);
};

View File

@@ -57,6 +57,7 @@ void RicNewEllipseFractureTemplateFeature::onActionTriggered(bool isChecked)
ellipseFractureTemplate->name = "Ellipse Fracture Template";
ellipseFractureTemplate->fractureTemplateUnit = fracDefColl->defaultUnitsForFracTemplates();
ellipseFractureTemplate->setDefaultValuesFromUnit();
ellipseFractureTemplate->loadDataAndUpdate();
fracDefColl->updateConnectedEditors();

View File

@@ -18,6 +18,7 @@
#include "RimEllipseFractureTemplate.h"
#include "RiaApplication.h"
#include "RiaEclipseUnitTools.h"
#include "RiaFractureDefines.h"
#include "RiaLogging.h"
@@ -28,10 +29,12 @@
#include "RigStatisticsMath.h"
#include "RigTesselatorTools.h"
#include "RimEclipseView.h"
#include "RimFracture.h"
#include "RimFractureContainment.h"
#include "RimFractureTemplate.h"
#include "RimProject.h"
#include "RimStimPlanColors.h"
#include "cafPdmObject.h"
@@ -72,6 +75,9 @@ RimEllipseFractureTemplate::~RimEllipseFractureTemplate()
void RimEllipseFractureTemplate::loadDataAndUpdate()
{
setupFractureGridCells();
RimEclipseView* activeView = dynamic_cast<RimEclipseView*>(RiaApplication::instance()->activeReservoirView());
if (activeView) activeView->loadDataAndUpdate();
}
//--------------------------------------------------------------------------------------------------
@@ -324,6 +330,19 @@ void RimEllipseFractureTemplate::appendDataToResultStatistics(const QString& uiR
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<std::pair<QString, QString>> RimEllipseFractureTemplate::uiResultNamesWithUnit() const
{
std::vector<std::pair<QString, QString>> propertyNamesAndUnits;
QString condUnit = RiaDefines::unitStringConductivity(fractureTemplateUnit());
propertyNamesAndUnits.push_back(std::make_pair(RiaDefines::conductivityResultName(), condUnit));
return propertyNamesAndUnits;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -63,6 +63,9 @@ public:
MinMaxAccumulator& minMaxAccumulator,
PosNegAccumulator& posNegAccumulator) const override;
virtual std::vector<std::pair<QString, QString>> uiResultNamesWithUnit() const override;
protected:
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering);
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;

View File

@@ -92,6 +92,9 @@ public:
MinMaxAccumulator& minMaxAccumulator,
PosNegAccumulator& posNegAccumulator) const = 0;
virtual std::vector<std::pair<QString, QString> > uiResultNamesWithUnit() const = 0;
protected:
caf::PdmChildField<RimFractureContainment*> m_fractureContainment;

View File

@@ -75,17 +75,13 @@ std::vector<std::pair<QString, QString> > RimFractureTemplateCollection::stimPla
for (const RimFractureTemplate* f : fractureDefinitions())
{
auto stimPlanFracture = dynamic_cast<const RimStimPlanFractureTemplate*>(f);
if (stimPlanFracture)
{
std::vector<std::pair<QString, QString> > namesAndUnits = stimPlanFracture->uiResultNamesWithUnit();
std::vector<std::pair<QString, QString> > namesAndUnits = f->uiResultNamesWithUnit();
for (auto nameAndUnit : namesAndUnits)
for (const auto& nameAndUnit : namesAndUnits)
{
nameSet.insert(nameAndUnit);
}
}
}
std::vector<std::pair<QString, QString>> names(nameSet.begin(), nameSet.end());

View File

@@ -76,7 +76,7 @@ public:
// Result Access
std::vector<double> timeSteps();
std::vector<std::pair<QString, QString> > uiResultNamesWithUnit() const;
std::vector<std::pair<QString, QString> > uiResultNamesWithUnit() const override;
std::vector<std::vector<double>> resultValues(const QString& uiResultName, const QString& unitName, size_t timeStepIndex) const;
std::vector<double> fractureGridResults(const QString& resultName, const QString& unitName, size_t timeStepIndex) const;
bool hasConductivity() const;

View File

@@ -18,7 +18,7 @@
#include "RigStimPlanFractureDefinition.h"
#include "RiaFractureDefines.h"
#include "RiaLogging.h"
#include "RigFractureCell.h"
#include "RigFractureGrid.h"
@@ -215,9 +215,8 @@ cvf::ref<RigFractureGrid> RigStimPlanFractureDefinition::createFractureGrid(cons
bool wellCenterStimPlanCellFound = false;
QString condUnit;
if ( fractureTemplateUnit == RiaEclipseUnitTools::UNITS_METRIC ) condUnit = "md-m";
if ( fractureTemplateUnit == RiaEclipseUnitTools::UNITS_FIELD ) condUnit = "md-ft";
QString condUnit = RiaDefines::unitStringConductivity(fractureTemplateUnit);
std::vector<std::vector<double>> conductivityValuesAtTimeStep = this->getMirroredDataAtTimeIndex(resultName,
condUnit,
m_activeTimeStepIndex);