mirror of
https://github.com/OPM/ResInsight.git
synced 2026-09-03 20:53:13 -05:00
#8121 Fracture: provide statistics per fracture
This commit is contained in:
@@ -1212,15 +1212,8 @@ void RimEnsembleFractureStatistics::generateStatisticsGrids(
|
|||||||
QString RimEnsembleFractureStatistics::generateStatisticsTable(
|
QString RimEnsembleFractureStatistics::generateStatisticsTable(
|
||||||
const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& stimPlanFractureDefinitions ) const
|
const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& stimPlanFractureDefinitions ) const
|
||||||
{
|
{
|
||||||
std::vector<RigEnsembleFractureStatisticsCalculator::PropertyType> propertyTypes = {
|
std::vector<RigEnsembleFractureStatisticsCalculator::PropertyType> propertyTypes =
|
||||||
RigEnsembleFractureStatisticsCalculator::PropertyType::HEIGHT,
|
RigEnsembleFractureStatisticsCalculator::propertyTypes();
|
||||||
RigEnsembleFractureStatisticsCalculator::PropertyType::XF,
|
|
||||||
RigEnsembleFractureStatisticsCalculator::PropertyType::AREA,
|
|
||||||
RigEnsembleFractureStatisticsCalculator::PropertyType::PERMEABILITY,
|
|
||||||
RigEnsembleFractureStatisticsCalculator::PropertyType::WIDTH,
|
|
||||||
RigEnsembleFractureStatisticsCalculator::PropertyType::KFWF,
|
|
||||||
RigEnsembleFractureStatisticsCalculator::PropertyType::FORMATION_DIP,
|
|
||||||
};
|
|
||||||
|
|
||||||
QString text;
|
QString text;
|
||||||
text += "<table border=1><thead><tr bgcolor=lightblue>";
|
text += "<table border=1><thead><tr bgcolor=lightblue>";
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
|
|
||||||
#include "RifStimPlanXmlReader.h"
|
#include "RifStimPlanXmlReader.h"
|
||||||
|
|
||||||
|
#include "RigEnsembleFractureStatisticsCalculator.h"
|
||||||
#include "RigFractureGrid.h"
|
#include "RigFractureGrid.h"
|
||||||
#include "RigStimPlanFractureDefinition.h"
|
#include "RigStimPlanFractureDefinition.h"
|
||||||
#include "RigTransmissibilityEquations.h"
|
#include "RigTransmissibilityEquations.h"
|
||||||
@@ -329,6 +330,8 @@ void RimStimPlanFractureTemplate::loadDataAndUpdate()
|
|||||||
RimEclipseView* activeView = dynamic_cast<RimEclipseView*>( RiaApplication::instance()->activeReservoirView() );
|
RimEclipseView* activeView = dynamic_cast<RimEclipseView*>( RiaApplication::instance()->activeReservoirView() );
|
||||||
if ( activeView ) activeView->fractureColors()->loadDataAndUpdate();
|
if ( activeView ) activeView->fractureColors()->loadDataAndUpdate();
|
||||||
|
|
||||||
|
m_propertiesTable = generatePropertiesTable();
|
||||||
|
|
||||||
updateConnectedEditors();
|
updateConnectedEditors();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1189,11 +1192,25 @@ QString RimStimPlanFractureTemplate::generatePropertiesTable() const
|
|||||||
|
|
||||||
if ( !m_stimPlanFractureDefinitionData.isNull() )
|
if ( !m_stimPlanFractureDefinitionData.isNull() )
|
||||||
{
|
{
|
||||||
appendTextIfValidValue( body, "Formation Dip", m_stimPlanFractureDefinitionData->formationDip() );
|
|
||||||
appendTextIfValidValue( body, "Top MD", m_stimPlanFractureDefinitionData->topPerfMd() );
|
appendTextIfValidValue( body, "Top MD", m_stimPlanFractureDefinitionData->topPerfMd() );
|
||||||
appendTextIfValidValue( body, "Bottom MD", m_stimPlanFractureDefinitionData->bottomPerfMd() );
|
appendTextIfValidValue( body, "Bottom MD", m_stimPlanFractureDefinitionData->bottomPerfMd() );
|
||||||
appendTextIfValidValue( body, "Top TVD", m_stimPlanFractureDefinitionData->topPerfTvd() );
|
appendTextIfValidValue( body, "Top TVD", m_stimPlanFractureDefinitionData->topPerfTvd() );
|
||||||
appendTextIfValidValue( body, "Bottom TVD", m_stimPlanFractureDefinitionData->bottomPerfTvd() );
|
appendTextIfValidValue( body, "Bottom TVD", m_stimPlanFractureDefinitionData->bottomPerfTvd() );
|
||||||
|
|
||||||
|
std::vector<cvf::ref<RigStimPlanFractureDefinition>> fractureDefinitions = { m_stimPlanFractureDefinitionData };
|
||||||
|
|
||||||
|
std::vector<RigEnsembleFractureStatisticsCalculator::PropertyType> propertyTypes =
|
||||||
|
RigEnsembleFractureStatisticsCalculator::propertyTypes();
|
||||||
|
for ( auto propertyType : propertyTypes )
|
||||||
|
{
|
||||||
|
std::vector<double> values =
|
||||||
|
RigEnsembleFractureStatisticsCalculator::calculateProperty( fractureDefinitions, propertyType );
|
||||||
|
if ( !values.empty() )
|
||||||
|
{
|
||||||
|
QString name = caf::AppEnum<RigEnsembleFractureStatisticsCalculator::PropertyType>::uiText( propertyType );
|
||||||
|
appendTextIfValidValue( body, name, values[0] );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return body;
|
return body;
|
||||||
|
|||||||
@@ -424,3 +424,20 @@ std::vector<cvf::ref<RigStimPlanFractureDefinition>> RigEnsembleFractureStatisti
|
|||||||
|
|
||||||
return filteredFractureDefinitions;
|
return filteredFractureDefinitions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
std::vector<RigEnsembleFractureStatisticsCalculator::PropertyType> RigEnsembleFractureStatisticsCalculator::propertyTypes()
|
||||||
|
{
|
||||||
|
std::vector<RigEnsembleFractureStatisticsCalculator::PropertyType> types = {
|
||||||
|
RigEnsembleFractureStatisticsCalculator::PropertyType::HEIGHT,
|
||||||
|
RigEnsembleFractureStatisticsCalculator::PropertyType::XF,
|
||||||
|
RigEnsembleFractureStatisticsCalculator::PropertyType::AREA,
|
||||||
|
RigEnsembleFractureStatisticsCalculator::PropertyType::PERMEABILITY,
|
||||||
|
RigEnsembleFractureStatisticsCalculator::PropertyType::WIDTH,
|
||||||
|
RigEnsembleFractureStatisticsCalculator::PropertyType::KFWF,
|
||||||
|
RigEnsembleFractureStatisticsCalculator::PropertyType::FORMATION_DIP,
|
||||||
|
};
|
||||||
|
return types;
|
||||||
|
}
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ public:
|
|||||||
calculateProperty( const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& fractureDefinitions,
|
calculateProperty( const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& fractureDefinitions,
|
||||||
PropertyType propertyType );
|
PropertyType propertyType );
|
||||||
|
|
||||||
|
static std::vector<RigEnsembleFractureStatisticsCalculator::PropertyType> propertyTypes();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static std::vector<double>
|
static std::vector<double>
|
||||||
calculateGridStatistics( const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& fractureDefinitions,
|
calculateGridStatistics( const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& fractureDefinitions,
|
||||||
|
|||||||
Reference in New Issue
Block a user