#1036 - pre-proto - Added fracture definition for storing description of simple fractures

This commit is contained in:
astridkbjorke 2016-12-16 10:15:23 +01:00
parent 55895fb8d8
commit 2df403245e
7 changed files with 131 additions and 0 deletions

View File

@ -84,6 +84,7 @@ ${CEE_CURRENT_LIST_DIR}RimPlotCurve.h
${CEE_CURRENT_LIST_DIR}RimEclipseInputCaseOpm.h
${CEE_CURRENT_LIST_DIR}RimIntersectionBox.h
${CEE_CURRENT_LIST_DIR}RimMultiSnapshotDefinition.h
${CEE_CURRENT_LIST_DIR}RimFractureDefinition.h
)
set (SOURCE_GROUP_SOURCE_FILES
@ -166,6 +167,7 @@ ${CEE_CURRENT_LIST_DIR}RimPlotCurve.cpp
${CEE_CURRENT_LIST_DIR}RimEclipseInputCaseOpm.cpp
${CEE_CURRENT_LIST_DIR}RimIntersectionBox.cpp
${CEE_CURRENT_LIST_DIR}RimMultiSnapshotDefinition.cpp
${CEE_CURRENT_LIST_DIR}RimFractureDefinition.cpp
)
list(APPEND CODE_HEADER_FILES

View File

@ -0,0 +1,64 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2016- Statoil ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RimFractureDefinition.h"
#include "cafPdmObject.h"
namespace caf
{
template<>
void caf::AppEnum< RimFractureDefinition::FracOrientationEnum>::setUp()
{
addItem(RimFractureDefinition::AZIMUTH, "Az", "Azimuth");
addItem(RimFractureDefinition::ALONG_WELL_PATH, "AlongWellPath", "Along Well Path");
addItem(RimFractureDefinition::TRANSVERSE_WELL_PATH, "TransverseWellPath", "Transverse (normal) to Well Path");
setDefault(RimFractureDefinition::TRANSVERSE_WELL_PATH);
}
}
CAF_PDM_SOURCE_INIT(RimFractureDefinition, "FractureDefinition");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimFractureDefinition::RimFractureDefinition(void)
{
CAF_PDM_InitObject("Fracture definition", "", "", "");
//TODO New defaults???
CAF_PDM_InitField(&halfLength, "HalfLength", 650.0f, "Fracture Halflength X_f", "", "", "");
CAF_PDM_InitField(&height, "Height", 75.0f, "Fracture Height", "", "", "");
CAF_PDM_InitField(&orientation, "Orientation", caf::AppEnum<FracOrientationEnum>(TRANSVERSE_WELL_PATH), "Fracture orientation", "", "", "");
CAF_PDM_InitField(&width, "Width", 1.0f, "Fracture Width", "", "", "");
CAF_PDM_InitField(&skinFactor, "SkinFactor", 1.0f, "Fracture Skin Factor", "", "", "");
CAF_PDM_InitField(&permeability, "Permeability", 22000.f,"Fracture Permeability", "", "", "");
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimFractureDefinition::~RimFractureDefinition()
{
}

View File

@ -0,0 +1,55 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2016- Statoil ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "cafAppEnum.h"
#include "cafPdmField.h"
#include "cafPdmObject.h"
//==================================================================================================
///
///
//==================================================================================================
class RimFractureDefinition : public caf::PdmObject
{
CAF_PDM_HEADER_INIT;
public:
RimFractureDefinition(void);
virtual ~RimFractureDefinition(void);
caf::PdmField<float> halfLength;
caf::PdmField<float> height;
caf::PdmField<float> width;
enum FracOrientationEnum
{
AZIMUTH,
ALONG_WELL_PATH,
TRANSVERSE_WELL_PATH
};
caf::PdmField< caf::AppEnum< FracOrientationEnum > > orientation;
caf::PdmField<float> skinFactor;
caf::PdmField<float> permeability;
};

View File

@ -25,6 +25,7 @@
#include "RimGeoMechModels.h"
#include "RimSummaryCaseCollection.h"
#include "RimFormationNamesCollection.h"
#include "RimFractureDefinition.h"
CAF_PDM_SOURCE_INIT(RimOilField, "ResInsightOilField");
//--------------------------------------------------------------------------------------------------
@ -37,9 +38,11 @@ RimOilField::RimOilField(void)
CAF_PDM_InitFieldNoDefault(&analysisModels, "AnalysisModels", "Grid Models", ":/GridModels.png", "", "");
CAF_PDM_InitFieldNoDefault(&geoMechModels, "GeoMechModels", "Geo Mech Models", ":/GridModels.png", "", "");
CAF_PDM_InitFieldNoDefault(&wellPathCollection, "WellPathCollection", "Well Paths", ":/WellCollection.png", "", "");
CAF_PDM_InitFieldNoDefault(&fractureDefinition, "FractureDefenition", "Defenition of fractures", "", "", "");
CAF_PDM_InitFieldNoDefault(&summaryCaseCollection,"SummaryCaseCollection","Summary Cases",":/GridModels.png","","");
CAF_PDM_InitFieldNoDefault(&formationNamesCollection,"FormationNamesCollection","Formations","","","");
fractureDefinition = new RimFractureDefinition();
analysisModels = new RimEclipseCaseCollection();
wellPathCollection = new RimWellPathCollection();
summaryCaseCollection = new RimSummaryCaseCollection();
@ -51,6 +54,7 @@ RimOilField::RimOilField(void)
RimOilField::~RimOilField(void)
{
if (wellPathCollection()) delete wellPathCollection();
if (fractureDefinition()) delete fractureDefinition();
if (geoMechModels()) delete geoMechModels();
if (analysisModels()) delete analysisModels();
if (summaryCaseCollection()) delete summaryCaseCollection();

View File

@ -28,6 +28,7 @@
class RimEclipseCaseCollection;
class RimGeoMechModels;
class RimWellPathCollection;
class RimFractureDefinition;
class RimSummaryCaseCollection;
class RimFormationNamesCollection;
@ -46,6 +47,7 @@ public:
caf::PdmChildField<RimEclipseCaseCollection*> analysisModels;
caf::PdmChildField<RimGeoMechModels*> geoMechModels;
caf::PdmChildField<RimWellPathCollection*> wellPathCollection;
caf::PdmChildField<RimFractureDefinition*> fractureDefinition;
caf::PdmChildField<RimSummaryCaseCollection*> summaryCaseCollection;
caf::PdmChildField<RimFormationNamesCollection*> formationNamesCollection;

View File

@ -33,6 +33,7 @@
#include "RimEclipseCase.h"
#include "RimEclipseCaseCollection.h"
#include "RimFormationNamesCollection.h"
#include "RimFractureDefinition.h"
#include "RimGeoMechCase.h"
#include "RimGeoMechModels.h"
#include "RimGridSummaryCase.h"
@ -825,6 +826,7 @@ void RimProject::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QS
if (oilField->analysisModels()) uiTreeOrdering.add(oilField->analysisModels());
if (oilField->geoMechModels()) uiTreeOrdering.add(oilField->geoMechModels());
if (oilField->wellPathCollection()) uiTreeOrdering.add(oilField->wellPathCollection());
if (oilField->fractureDefinition()) uiTreeOrdering.add(oilField->fractureDefinition());
if (oilField->formationNamesCollection()) uiTreeOrdering.add(oilField->formationNamesCollection());
}

View File

@ -33,6 +33,7 @@ class RigMainGrid;
class RimCase;
class RimCommandObject;
class RimEclipseCase;
class RimFractureDefinition;
class RimIdenticalGridCaseGroup;
class RimMainPlotCollection;
class RimMultiSnapshotDefinition;
@ -73,6 +74,7 @@ public:
caf::PdmChildArrayField<RimCommandObject*> commandObjects;
caf::PdmChildArrayField<RimMultiSnapshotDefinition*> multiSnapshotDefinitions;
caf::PdmChildArrayField<RimFractureDefinition*> fractureDefinition;
caf::PdmField<QString> mainWindowTreeViewState;
caf::PdmField<QString> mainWindowCurrentModelIndexPath;