#1087 - pre-proto - Moving enum for unit system to RimDefines, and establishing default unit system for fracture template collection (used when creating new templates).

This commit is contained in:
astridkbjorke 2017-02-16 15:22:03 +01:00
parent 86bd033fa8
commit fa638243ab
10 changed files with 42 additions and 100 deletions

View File

@ -24,12 +24,15 @@
#include "RifEclipseExportTools.h"
#include "RifEclipseExportTools.h"
#include "RimDefines.h"
#include "RimEclipseCase.h"
#include "RimEclipseView.h"
#include "RimEllipseFractureTemplate.h"
#include "RimFracture.h"
#include "RimFractureExportSettings.h"
#include "RimView.h"
#include "RimWellPathCollection.h"
#include "RiuMainWindow.h"
#include "cafPdmObjectHandle.h"
@ -42,7 +45,6 @@
#include <QMessageBox>
#include <QString>
#include <QFileInfo>
#include "RimEllipseFractureTemplate.h"
CAF_CMD_SOURCE_INIT(RicConvertFractureTemplateUnitFeature, "RicConvertFractureTemplateUnitFeature");
@ -81,11 +83,11 @@ void RicConvertFractureTemplateUnitFeature::setupActionLook(QAction* actionToSet
RimEllipseFractureTemplate* ellipseFractureTemplate = nullptr;
objHandle->firstAncestorOrThisOfType(ellipseFractureTemplate);
if (ellipseFractureTemplate->fractureTemplateUnit == RimEllipseFractureTemplate::UNITS_METRIC)
if (ellipseFractureTemplate->fractureTemplateUnit == RimDefines::UNITS_METRIC)
{
actionToSetup->setText("Change to Field units in fracture template");
}
else if (ellipseFractureTemplate->fractureTemplateUnit == RimEllipseFractureTemplate::UNITS_FIELD)
else if (ellipseFractureTemplate->fractureTemplateUnit == RimDefines::UNITS_FIELD)
{
actionToSetup->setText("Change to metric units in fracture template");
}

View File

@ -48,13 +48,14 @@ void RicNewEllipseFractureTemplateFeature::onActionTriggered(bool isChecked)
if (oilfield == nullptr) return;
RimFractureTemplateCollection* fracDefColl = oilfield->fractureDefinitionCollection();
if (fracDefColl)
{
RimEllipseFractureTemplate* fractureDef = new RimEllipseFractureTemplate();
fracDefColl->fractureDefinitions.push_back(fractureDef);
fractureDef->name = "Ellipse Fracture Template";
fractureDef->fractureTemplateUnit = fracDefColl->defaultUnitsForFracTemplates();
fracDefColl->updateConnectedEditors();
RiuMainWindow::instance()->selectAsCurrentItem(fractureDef);
}

View File

@ -19,6 +19,7 @@
#include "RifEclipseExportTools.h"
#include "RiaApplication.h"
#include "RigEclipseCaseData.h"
#include "RigFracture.h"
#include "RigFracture.h"
#include "RigMainGrid.h"
@ -149,14 +150,14 @@ bool RifEclipseExportTools::unitsMatchCaseAndFractures(RimEclipseCase* caseToApp
{
if (fracture->attachedFractureDefinition())
{
if ((fracture->attachedFractureDefinition()->fractureTemplateUnit) == RimFractureTemplate::UNITS_METRIC)
if ((fracture->attachedFractureDefinition()->fractureTemplateUnit) == RimDefines::UNITS_METRIC)
{
if (!(caseUnit == RigEclipseCaseData::UNITS_METRIC))
{
unitsMatch = false;
}
}
else if ((fracture->attachedFractureDefinition()->fractureTemplateUnit) == RimFractureTemplate::UNITS_FIELD)
else if ((fracture->attachedFractureDefinition()->fractureTemplateUnit) == RimDefines::UNITS_FIELD)
{
if (!(caseUnit == RigEclipseCaseData::UNITS_FIELD))
{

View File

@ -154,25 +154,10 @@ void RivWellFracturePartMgr::updatePartGeometryTexture(caf::DisplayCoordTransfor
RimLegendConfig* legend = m_rimFracture->activeLegend();
cvf::ScalarMapper* scalarMapper = legend->scalarMapper();
// cvf::ref<cvf::ScalarMapperContinuousLinear> scalarMapper = new cvf::ScalarMapperContinuousLinear;
// {
// cvf::Color3ubArray legendColors;
// legendColors.resize(4);
// legendColors[0] = cvf::Color3::GRAY;
// legendColors[1] = cvf::Color3::GREEN;
// legendColors[2] = cvf::Color3::BLUE;
// legendColors[3] = cvf::Color3::RED;
// scalarMapper->setColors(legendColors);
// scalarMapper->setRange(0.0, 4.0);
// scalarMapper->setLevelCount(4, true);
// }
//double scalarValue = i % 4;
cvf::ref<cvf::Vec2fArray> textureCoords = new cvf::Vec2fArray;
textureCoords->resize(nodeCoords.size());
int i = 0;
for (std::vector<double> depthData : dataToPlot)
{
@ -180,7 +165,6 @@ void RivWellFracturePartMgr::updatePartGeometryTexture(caf::DisplayCoordTransfor
for (double gridXdata : mirroredValuesAtDepth)
{
cvf::Vec2f texCoord = scalarMapper->mapToTextureCoord(gridXdata);
textureCoords->set(i, texCoord);
i++;
}

View File

@ -20,6 +20,7 @@
#include "RigTesselatorTools.h"
#include "RimDefines.h"
#include "RimFracture.h"
#include "RimFractureTemplate.h"
#include "RimProject.h"
@ -44,7 +45,7 @@ RimEllipseFractureTemplate::RimEllipseFractureTemplate(void)
CAF_PDM_InitField(&width, "Width", 1.0f, "Width", "", "", "");
CAF_PDM_InitField(&perforationLength, "PerforationLength", 0.0f, "Lenght of well perforation", "", "", ""); //Is this correct description?
CAF_PDM_InitField(&permeability,"Permeability", 22000.f, "Permeability", "", "", "");
CAF_PDM_InitField(&permeability,"Permeability", 22000.f, "Permeability [mD]", "", "", "");
}
//--------------------------------------------------------------------------------------------------
@ -154,21 +155,22 @@ std::vector<cvf::Vec3f> RimEllipseFractureTemplate::fracturePolygon()
//--------------------------------------------------------------------------------------------------
void RimEllipseFractureTemplate::changeUnits()
{
if (fractureTemplateUnit == RimEllipseFractureTemplate::UNITS_METRIC)
if (fractureTemplateUnit == RimDefines::UNITS_METRIC)
{
halfLength = convertMtoFeet(halfLength);
height = convertMtoFeet(height);
width = convertMtoInch(width);
fractureTemplateUnit = RimFractureTemplate::UNITS_FIELD;
halfLength = RimDefines::meterToFeet(halfLength);
height = RimDefines::meterToFeet(height);
width = RimDefines::meterToInch(width);
perforationLength = RimDefines::meterToFeet(perforationLength);
fractureTemplateUnit = RimDefines::UNITS_FIELD;
//TODO: Darcy unit?
}
else if (fractureTemplateUnit == RimEllipseFractureTemplate::UNITS_FIELD)
else if (fractureTemplateUnit == RimDefines::UNITS_FIELD)
{
halfLength = convertFeetToM(halfLength);
height = convertFeetToM(height);
width = convertInchToM(width);
fractureTemplateUnit = RimFractureTemplate::UNITS_METRIC;
//TODO: Darcy unit?
halfLength = RimDefines::feetToMeter(halfLength);
height = RimDefines::feetToMeter(height);
width = RimDefines::inchToMeter(width);
perforationLength = RimDefines::feetToMeter(perforationLength);
fractureTemplateUnit = RimDefines::UNITS_METRIC;
}
this->updateConnectedEditors();
@ -181,17 +183,19 @@ void RimEllipseFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pdm
{
RimFractureTemplate::defineUiOrdering(uiConfigName, uiOrdering);
if (fractureTemplateUnit == RimFractureTemplate::UNITS_METRIC)
if (fractureTemplateUnit == RimDefines::UNITS_METRIC)
{
halfLength.uiCapability()->setUiName("Halflenght Xf [m]");
height.uiCapability()->setUiName("Height [m]");
width.uiCapability()->setUiName("Width [m]");
perforationLength.uiCapability()->setUiName("Length of well perforation [m]");
}
else if (fractureTemplateUnit == RimFractureTemplate::UNITS_FIELD)
else if (fractureTemplateUnit == RimDefines::UNITS_FIELD)
{
halfLength.uiCapability()->setUiName("Halflenght Xf [Ft]");
height.uiCapability()->setUiName("Height [Ft]");
width.uiCapability()->setUiName("Width [inches]");
perforationLength.uiCapability()->setUiName("Length of well perforation [Ft]");
}
@ -211,41 +215,3 @@ void RimEllipseFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pdm
propertyGroup->add(&perforationLength);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
float RimEllipseFractureTemplate::convertMtoFeet(float length)
{
length = length*(100/(2.54*12));
return length;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
float RimEllipseFractureTemplate::convertMtoInch(float length)
{
length = length*(100 / 2.54);
return length;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
float RimEllipseFractureTemplate::convertInchToM(float length)
{
length = length*(2.54 / 100);
return length;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
float RimEllipseFractureTemplate::convertFeetToM(float length)
{
length = (length*12)*(2.54 / 100);
return length;
}

View File

@ -59,10 +59,5 @@ public:
protected:
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering);
private:
static float convertMtoFeet(float length);
static float convertMtoInch(float length);
static float convertInchToM(float length);
static float convertFeetToM(float length);
};

View File

@ -32,7 +32,6 @@
namespace caf
{
template<>
void caf::AppEnum< RimFractureTemplate::FracOrientationEnum>::setUp()
{
addItem(RimFractureTemplate::AZIMUTH, "Az", "Azimuth");
@ -43,7 +42,6 @@ namespace caf
}
template<>
void caf::AppEnum< RimFractureTemplate::FracConductivityEnum>::setUp()
{
addItem(RimFractureTemplate::INFINITE_CONDUCTIVITY, "InfiniteConductivity", "Infinite conductivity in fracture");
@ -53,15 +51,6 @@ namespace caf
}
template<>
void caf::AppEnum< RimFractureTemplate::FracUnitEnum>::setUp()
{
addItem(RimFractureTemplate::UNITS_METRIC, "MetricUnits", "Metric");
addItem(RimFractureTemplate::UNITS_FIELD, "FieldsUnits", "Field units");
setDefault(RimFractureTemplate::UNITS_METRIC);
}
}
@ -75,7 +64,7 @@ RimFractureTemplate::RimFractureTemplate(void)
CAF_PDM_InitObject("Fracture Template", ":/FractureTemplate16x16.png", "", "");
CAF_PDM_InitField(&name, "UserDescription", QString("Fracture Template"), "Name", "", "", "");
CAF_PDM_InitField(&fractureTemplateUnit, "fractureTemplateUnit", caf::AppEnum<FracUnitEnum>(UNITS_METRIC), "Units used in frac template", "", "", "");
CAF_PDM_InitField(&fractureTemplateUnit, "fractureTemplateUnit", caf::AppEnum<RimDefines::UnitSystem>(RimDefines::UNITS_METRIC), "Units used in frac template", "", "", "");
fractureTemplateUnit.uiCapability()->setUiReadOnly(true);

View File

@ -18,6 +18,8 @@
#pragma once
#include "RimDefines.h"
#include "cafAppEnum.h"
#include "cafPdmField.h"
#include "cafPdmFieldHandle.h"
@ -28,8 +30,8 @@
#include "cvfVector3.h"
#include <vector>
#include "RigEclipseCaseData.h"
class RigEclipseCaseData;
//==================================================================================================
///
@ -62,12 +64,7 @@ public:
};
caf::PdmField< caf::AppEnum< FracConductivityEnum > > fractureConductivity;
enum FracUnitEnum //TODO: USE enum from RigEclipseCaseData
{
UNITS_METRIC,
UNITS_FIELD,
};
caf::PdmField< caf::AppEnum< FracUnitEnum > > fractureTemplateUnit;
caf::PdmField< caf::AppEnum< RimDefines::UnitSystem > > fractureTemplateUnit;
virtual caf::PdmFieldHandle* userDescriptionField() override;
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;

View File

@ -35,7 +35,9 @@ RimFractureTemplateCollection::RimFractureTemplateCollection(void)
CAF_PDM_InitObject("Fracture Templates", ":/FractureTemplate16x16.png", "", "");
CAF_PDM_InitField(&isActive, "Active", true, "Active", "", "", "");
CAF_PDM_InitField(&defaultUnitsForFracTemplates, "defaultUnitForFracTemplates", caf::AppEnum<RimDefines::UnitSystem>(RimDefines::UNITS_METRIC), "Default unit system for fracture templates", "", "", "");
CAF_PDM_InitFieldNoDefault(&fractureDefinitions, "FractureDefinitions", "", "", "", "");
fractureDefinitions.uiCapability()->setUiHidden(true);
}

View File

@ -18,6 +18,8 @@
#pragma once
#include "RimDefines.h"
#include "cafPdmField.h"
#include "cafPdmObject.h"
#include "cafPdmChildArrayField.h"
@ -40,6 +42,9 @@ public:
caf::PdmField<bool> isActive;
caf::PdmField< caf::AppEnum< RimDefines::UnitSystem > > defaultUnitsForFracTemplates;
void deleteFractureDefinitions();
void loadAndUpdateData();