mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#6833: Set eclipse case and time step in fracture model.
This commit is contained in:
@@ -44,6 +44,7 @@
|
||||
#include "RimFaciesProperties.h"
|
||||
#include "RimFaultInView.h"
|
||||
#include "RimFaultInViewCollection.h"
|
||||
#include "RimFracture.h"
|
||||
#include "RimFractureModelCalculator.h"
|
||||
#include "RimFractureModelPlot.h"
|
||||
#include "RimFractureModelTemplate.h"
|
||||
@@ -136,6 +137,7 @@ RimFractureModel::RimFractureModel()
|
||||
m_editFractureModelTemplate.uiCapability()->setUiEditorTypeName( caf::PdmUiToolButtonEditor::uiEditorTypeName() );
|
||||
m_editFractureModelTemplate.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::HIDDEN );
|
||||
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_eclipseCase, "EclipseCase", "Case", "", "", "" );
|
||||
CAF_PDM_InitScriptableField( &m_timeStep, "TimeStep", 0, "Time Step", "", "", "" );
|
||||
|
||||
CAF_PDM_InitScriptableField( &m_MD, "MeasuredDepth", 0.0, "Measured Depth", "", "", "" );
|
||||
@@ -290,12 +292,22 @@ void RimFractureModel::fieldChangedByUi( const caf::PdmFieldHandle* changedField
|
||||
if ( changedField == &m_MD || changedField == &m_extractionType || changedField == &m_boundingBoxVertical ||
|
||||
changedField == &m_boundingBoxHorizontal || changedField == &m_fractureOrientation ||
|
||||
changedField == &m_autoComputeBarrier || changedField == &m_azimuthAngle ||
|
||||
changedField == &m_showOnlyBarrierFault )
|
||||
changedField == &m_showOnlyBarrierFault || changedField == &m_eclipseCase )
|
||||
{
|
||||
updateThicknessDirection();
|
||||
updateBarrierProperties();
|
||||
}
|
||||
|
||||
if ( changedField == &m_eclipseCase )
|
||||
{
|
||||
// Set a valid default time step
|
||||
const int timeStepCount = m_eclipseCase->timeStepStrings().size();
|
||||
if ( timeStepCount > 0 )
|
||||
{
|
||||
m_timeStep = timeStepCount - 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ( changedField == &m_showAllFaults )
|
||||
{
|
||||
m_showAllFaults = false;
|
||||
@@ -323,6 +335,11 @@ void RimFractureModel::fieldChangedByUi( const caf::PdmFieldHandle* changedField
|
||||
m_thermalExpansionCoeffientDefault.uiCapability()->setUiReadOnly( !m_useDetailedFluidLoss );
|
||||
}
|
||||
|
||||
if ( changedField == &m_fractureModelTemplate )
|
||||
{
|
||||
setFractureModelTemplate( m_fractureModelTemplate() );
|
||||
}
|
||||
|
||||
if ( changedField == &m_editFractureModelTemplate )
|
||||
{
|
||||
m_editFractureModelTemplate = false;
|
||||
@@ -331,13 +348,10 @@ void RimFractureModel::fieldChangedByUi( const caf::PdmFieldHandle* changedField
|
||||
Riu3DMainWindowTools::selectAsCurrentItem( m_fractureModelTemplate() );
|
||||
}
|
||||
}
|
||||
|
||||
if ( changedField == &m_fractureModelTemplate )
|
||||
else
|
||||
{
|
||||
setFractureModelTemplate( m_fractureModelTemplate() );
|
||||
updateViewsAndPlots();
|
||||
}
|
||||
|
||||
updateViewsAndPlots();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -363,6 +377,14 @@ QList<caf::PdmOptionItemInfo> RimFractureModel::calculateValueOptions( const caf
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_eclipseCase )
|
||||
{
|
||||
RimTools::eclipseCaseOptionItems( &options );
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_timeStep )
|
||||
{
|
||||
RimTools::timeStepsForCase( m_eclipseCase(), &options );
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
@@ -810,6 +832,7 @@ void RimFractureModel::defineUiOrdering( QString uiConfigName, caf::PdmUiOrderin
|
||||
uiOrdering.add( &m_fractureModelTemplate, {true, 2, 1} );
|
||||
uiOrdering.add( &m_editFractureModelTemplate, {false, 1, 0} );
|
||||
|
||||
uiOrdering.add( &m_eclipseCase );
|
||||
uiOrdering.add( &m_timeStep );
|
||||
uiOrdering.add( &m_MD );
|
||||
uiOrdering.add( &m_extractionType );
|
||||
@@ -1342,6 +1365,14 @@ int RimFractureModel::timeStep() const
|
||||
return m_timeStep;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFractureModel::setTimeStep( int timeStep )
|
||||
{
|
||||
m_timeStep = timeStep;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1369,25 +1400,29 @@ double RimFractureModel::referenceTemperatureDepth() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseCase* RimFractureModel::getEclipseCase()
|
||||
RimEclipseCase* RimFractureModel::eclipseCase() const
|
||||
{
|
||||
// Find an eclipse case
|
||||
RimProject* proj = RimProject::current();
|
||||
if ( proj->eclipseCases().empty() ) return nullptr;
|
||||
|
||||
return proj->eclipseCases()[0];
|
||||
return m_eclipseCase;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RigEclipseCaseData* RimFractureModel::getEclipseCaseData()
|
||||
void RimFractureModel::setEclipseCase( RimEclipseCase* eclipseCase )
|
||||
{
|
||||
m_eclipseCase = eclipseCase;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RigEclipseCaseData* RimFractureModel::getEclipseCaseData() const
|
||||
{
|
||||
// Find an eclipse case
|
||||
RimEclipseCase* eclipseCase = getEclipseCase();
|
||||
if ( !eclipseCase ) return nullptr;
|
||||
RimEclipseCase* eclCase = eclipseCase();
|
||||
if ( !eclCase ) return nullptr;
|
||||
|
||||
return eclipseCase->eclipseCaseData();
|
||||
return eclCase->eclipseCaseData();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1543,17 +1578,6 @@ std::shared_ptr<RimFractureModelCalculator> RimFractureModel::calculator() const
|
||||
return m_calculator;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseCase* RimFractureModel::eclipseCase() const
|
||||
{
|
||||
RimProject* proj = RimProject::current();
|
||||
if ( proj->eclipseCases().empty() ) return nullptr;
|
||||
|
||||
return proj->eclipseCases()[0];
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -83,7 +83,11 @@ public:
|
||||
|
||||
void setMD( double md );
|
||||
|
||||
int timeStep() const;
|
||||
int timeStep() const;
|
||||
void setTimeStep( int timeStep );
|
||||
|
||||
RimEclipseCase* eclipseCase() const;
|
||||
void setEclipseCase( RimEclipseCase* eclipseCase );
|
||||
|
||||
cvf::Vec3d anchorPosition() const;
|
||||
cvf::Vec3d thicknessDirection() const;
|
||||
@@ -163,7 +167,6 @@ public:
|
||||
|
||||
RimFractureModel::MissingValueStrategy missingValueStrategy( RiaDefines::CurveProperty curveProperty ) const;
|
||||
RimFractureModel::BurdenStrategy burdenStrategy( RiaDefines::CurveProperty curveProperty ) const;
|
||||
RimEclipseCase* eclipseCase() const;
|
||||
RiaDefines::ResultCatType eclipseResultCategory( RiaDefines::CurveProperty curveProperty ) const;
|
||||
QString eclipseResultVariable( RiaDefines::CurveProperty curveProperty ) const;
|
||||
|
||||
@@ -191,8 +194,7 @@ private:
|
||||
static QString vecToString( const cvf::Vec3d& vec );
|
||||
void updateThicknessDirectionWellPathName();
|
||||
|
||||
static RigEclipseCaseData* getEclipseCaseData();
|
||||
static RimEclipseCase* getEclipseCase();
|
||||
RigEclipseCaseData* getEclipseCaseData() const;
|
||||
|
||||
void updateBarrierProperties();
|
||||
void addBarrierAnnotation( const cvf::Vec3d& startPosition, const cvf::Vec3d& endPosition, const QString& barrierText );
|
||||
@@ -218,6 +220,7 @@ private:
|
||||
|
||||
protected:
|
||||
caf::PdmField<double> m_MD;
|
||||
caf::PdmPtrField<RimEclipseCase*> m_eclipseCase;
|
||||
caf::PdmField<int> m_timeStep;
|
||||
caf::PdmField<caf::AppEnum<ExtractionType>> m_extractionType;
|
||||
caf::PdmField<cvf::Vec3d> m_anchorPosition;
|
||||
|
||||
@@ -118,6 +118,8 @@ void RimFractureModelCalculator::calculateLayers( std::vector<std::pair<double,
|
||||
depths,
|
||||
rkbDiff );
|
||||
|
||||
if ( layerValues.size() != depths.size() ) return;
|
||||
|
||||
size_t startIndex = 0;
|
||||
for ( size_t i = 0; i < depths.size(); i++ )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user