mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#6284 Mud Weight Window: add option for non-reservoir pore pressure data.
This commit is contained in:
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "RifElementPropertyReader.h"
|
#include "RifElementPropertyReader.h"
|
||||||
#include "RifGeoMechReaderInterface.h"
|
#include "RifGeoMechReaderInterface.h"
|
||||||
|
#include "RimMudWeightWindowParameters.h"
|
||||||
|
|
||||||
#ifdef USE_ODB_API
|
#ifdef USE_ODB_API
|
||||||
#include "RifOdbReader.h"
|
#include "RifOdbReader.h"
|
||||||
@@ -1707,9 +1708,18 @@ double RigFemPartResultsCollection::shMultiplierMudWeightWindow() const
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimMudWeightWindowParameters::UpperLimitType RigFemPartResultsCollection::upperLimitParameterMudWeightWindow() const
|
double RigFemPartResultsCollection::hydrostaticMultiplierPPNonRes() const
|
||||||
{
|
{
|
||||||
return m_upperLimitParameterMudWeightWindow;
|
return m_hydrostaticMultiplierPPNonResMudWeightWindow;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RimMudWeightWindowParameters::NonReservoirPorePressureType
|
||||||
|
RigFemPartResultsCollection::nonReservoirPorePressureTypeMudWeightWindow() const
|
||||||
|
{
|
||||||
|
return m_nonReservoirPorePressureTypeMudWeightWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -1720,6 +1730,14 @@ RimMudWeightWindowParameters::LowerLimitType RigFemPartResultsCollection::lowerL
|
|||||||
return m_lowerLimitParameterMudWeightWindow;
|
return m_lowerLimitParameterMudWeightWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RimMudWeightWindowParameters::UpperLimitType RigFemPartResultsCollection::upperLimitParameterMudWeightWindow() const
|
||||||
|
{
|
||||||
|
return m_upperLimitParameterMudWeightWindow;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -1737,7 +1755,9 @@ void RigFemPartResultsCollection::setMudWeightWindowParameters(
|
|||||||
RimMudWeightWindowParameters::LowerLimitType lowerLimit,
|
RimMudWeightWindowParameters::LowerLimitType lowerLimit,
|
||||||
int referenceLayer,
|
int referenceLayer,
|
||||||
RimMudWeightWindowParameters::FractureGradientCalculationType fgCalculationType,
|
RimMudWeightWindowParameters::FractureGradientCalculationType fgCalculationType,
|
||||||
double shMultiplier )
|
double shMultiplier,
|
||||||
|
RimMudWeightWindowParameters::NonReservoirPorePressureType nonReservoirPorePressureType,
|
||||||
|
double hydrostaticMultiplierPPNonRes )
|
||||||
{
|
{
|
||||||
m_airGapMudWeightWindow = airGap;
|
m_airGapMudWeightWindow = airGap;
|
||||||
m_upperLimitParameterMudWeightWindow = upperLimit;
|
m_upperLimitParameterMudWeightWindow = upperLimit;
|
||||||
@@ -1745,6 +1765,8 @@ void RigFemPartResultsCollection::setMudWeightWindowParameters(
|
|||||||
m_referenceLayerMudWeightWindow = referenceLayer;
|
m_referenceLayerMudWeightWindow = referenceLayer;
|
||||||
m_fractureGradientCalculationTypeMudWeightWindow = fgCalculationType;
|
m_fractureGradientCalculationTypeMudWeightWindow = fgCalculationType;
|
||||||
m_shMultiplierMudWeightWindow = shMultiplier;
|
m_shMultiplierMudWeightWindow = shMultiplier;
|
||||||
|
m_nonReservoirPorePressureTypeMudWeightWindow = nonReservoirPorePressureType;
|
||||||
|
m_hydrostaticMultiplierPPNonResMudWeightWindow = hydrostaticMultiplierPPNonRes;
|
||||||
|
|
||||||
// Invalidate dependent results
|
// Invalidate dependent results
|
||||||
for ( auto result : mudWeightWindowResults() )
|
for ( auto result : mudWeightWindowResults() )
|
||||||
|
|||||||
@@ -88,15 +88,21 @@ public:
|
|||||||
double getCalculationParameterValue( RimMudWeightWindowParameters::ParameterType ) const;
|
double getCalculationParameterValue( RimMudWeightWindowParameters::ParameterType ) const;
|
||||||
QString getCalculationParameterAddress( RimMudWeightWindowParameters::ParameterType ) const;
|
QString getCalculationParameterAddress( RimMudWeightWindowParameters::ParameterType ) const;
|
||||||
|
|
||||||
void setMudWeightWindowParameters( double airGap,
|
void setMudWeightWindowParameters( double airGap,
|
||||||
RimMudWeightWindowParameters::UpperLimitType upperLimit,
|
RimMudWeightWindowParameters::UpperLimitType upperLimit,
|
||||||
RimMudWeightWindowParameters::LowerLimitType lowerLimit,
|
RimMudWeightWindowParameters::LowerLimitType lowerLimit,
|
||||||
int referenceLayer,
|
int referenceLayer,
|
||||||
RimMudWeightWindowParameters::FractureGradientCalculationType fgCalculationType,
|
RimMudWeightWindowParameters::FractureGradientCalculationType fgCalculationType,
|
||||||
double shMultiplier );
|
double shMultiplier,
|
||||||
|
RimMudWeightWindowParameters::NonReservoirPorePressureType nonReservoirPorePressureType,
|
||||||
|
double hydroStaticMultiplierPPNonRes );
|
||||||
|
|
||||||
double airGapMudWeightWindow() const;
|
double airGapMudWeightWindow() const;
|
||||||
double shMultiplierMudWeightWindow() const;
|
double shMultiplierMudWeightWindow() const;
|
||||||
|
|
||||||
|
double hydrostaticMultiplierPPNonRes() const;
|
||||||
|
RimMudWeightWindowParameters::NonReservoirPorePressureType nonReservoirPorePressureTypeMudWeightWindow() const;
|
||||||
|
|
||||||
RimMudWeightWindowParameters::UpperLimitType upperLimitParameterMudWeightWindow() const;
|
RimMudWeightWindowParameters::UpperLimitType upperLimitParameterMudWeightWindow() const;
|
||||||
RimMudWeightWindowParameters::LowerLimitType lowerLimitParameterMudWeightWindow() const;
|
RimMudWeightWindowParameters::LowerLimitType lowerLimitParameterMudWeightWindow() const;
|
||||||
size_t referenceLayerMudWeightWindow() const;
|
size_t referenceLayerMudWeightWindow() const;
|
||||||
@@ -209,6 +215,9 @@ private:
|
|||||||
RimMudWeightWindowParameters::LowerLimitType m_lowerLimitParameterMudWeightWindow;
|
RimMudWeightWindowParameters::LowerLimitType m_lowerLimitParameterMudWeightWindow;
|
||||||
RimMudWeightWindowParameters::FractureGradientCalculationType m_fractureGradientCalculationTypeMudWeightWindow;
|
RimMudWeightWindowParameters::FractureGradientCalculationType m_fractureGradientCalculationTypeMudWeightWindow;
|
||||||
|
|
||||||
|
RimMudWeightWindowParameters::NonReservoirPorePressureType m_nonReservoirPorePressureTypeMudWeightWindow;
|
||||||
|
double m_hydrostaticMultiplierPPNonResMudWeightWindow;
|
||||||
|
|
||||||
std::map<RimMudWeightWindowParameters::ParameterType, QString> parameterAddresses;
|
std::map<RimMudWeightWindowParameters::ParameterType, QString> parameterAddresses;
|
||||||
std::map<RimMudWeightWindowParameters::ParameterType, double> parameterValues;
|
std::map<RimMudWeightWindowParameters::ParameterType, double> parameterValues;
|
||||||
|
|
||||||
|
|||||||
@@ -89,6 +89,16 @@ void caf::AppEnum<RimMudWeightWindowParameters::FractureGradientCalculationType>
|
|||||||
setDefault( RimMudWeightWindowParameters::FractureGradientCalculationType::DERIVED_FROM_K0FG );
|
setDefault( RimMudWeightWindowParameters::FractureGradientCalculationType::DERIVED_FROM_K0FG );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
void caf::AppEnum<RimMudWeightWindowParameters::NonReservoirPorePressureType>::setUp()
|
||||||
|
{
|
||||||
|
addItem( RimMudWeightWindowParameters::NonReservoirPorePressureType::HYDROSTATIC, "PORE_PRESSURE", "Pore Pressure" );
|
||||||
|
addItem( RimMudWeightWindowParameters::NonReservoirPorePressureType::PER_ELEMENT,
|
||||||
|
"PER_ELEMENT",
|
||||||
|
"From element properties" );
|
||||||
|
setDefault( RimMudWeightWindowParameters::NonReservoirPorePressureType::HYDROSTATIC );
|
||||||
|
}
|
||||||
|
|
||||||
} // End namespace caf
|
} // End namespace caf
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -169,6 +179,17 @@ RimMudWeightWindowParameters::RimMudWeightWindowParameters( void )
|
|||||||
"",
|
"",
|
||||||
"" );
|
"" );
|
||||||
|
|
||||||
|
caf::AppEnum<NonReservoirPorePressureType> defaultNonReservoirPorePressureType =
|
||||||
|
RimMudWeightWindowParameters::NonReservoirPorePressureType::HYDROSTATIC;
|
||||||
|
CAF_PDM_InitField( &m_porePressureNonReservoirSource,
|
||||||
|
"PorePressureNonReservoirSource",
|
||||||
|
defaultNonReservoirPorePressureType,
|
||||||
|
"Non-Reservoir Pore Pressure",
|
||||||
|
"",
|
||||||
|
"Data source for Non-Reservoir Pore Pressure",
|
||||||
|
"" );
|
||||||
|
CAF_PDM_InitField( &m_userDefinedPPNonReservoir, "UserPPNonReservoir", 1.0, " Multiplier of hydrostatic PP", "", "", "" );
|
||||||
|
|
||||||
CAF_PDM_InitField( &m_referenceLayer, "ReferenceLayer", -1, "Reference Layer", "", "", "" );
|
CAF_PDM_InitField( &m_referenceLayer, "ReferenceLayer", -1, "Reference Layer", "", "", "" );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -363,7 +384,8 @@ void RimMudWeightWindowParameters::fieldChangedByUi( const caf::PdmFieldHandle*
|
|||||||
}
|
}
|
||||||
else if ( changedField == &m_airGap || changedField == &m_upperLimitType || changedField == &m_lowerLimitType ||
|
else if ( changedField == &m_airGap || changedField == &m_upperLimitType || changedField == &m_lowerLimitType ||
|
||||||
changedField == &m_referenceLayer || changedField == &m_fractureGradientCalculationType ||
|
changedField == &m_referenceLayer || changedField == &m_fractureGradientCalculationType ||
|
||||||
changedField == &m_shMultiplier )
|
changedField == &m_shMultiplier || changedField == &m_porePressureNonReservoirSource ||
|
||||||
|
changedField == &m_userDefinedPPNonReservoir )
|
||||||
{
|
{
|
||||||
RigGeoMechCaseData* rigCaseData = geoMechCase->geoMechData();
|
RigGeoMechCaseData* rigCaseData = geoMechCase->geoMechData();
|
||||||
if ( rigCaseData && rigCaseData->femPartResults() )
|
if ( rigCaseData && rigCaseData->femPartResults() )
|
||||||
@@ -373,7 +395,9 @@ void RimMudWeightWindowParameters::fieldChangedByUi( const caf::PdmFieldHandle*
|
|||||||
m_lowerLimitType.value(),
|
m_lowerLimitType.value(),
|
||||||
m_referenceLayer,
|
m_referenceLayer,
|
||||||
m_fractureGradientCalculationType.value(),
|
m_fractureGradientCalculationType.value(),
|
||||||
m_shMultiplier );
|
m_shMultiplier,
|
||||||
|
m_porePressureNonReservoirSource.value(),
|
||||||
|
m_userDefinedPPNonReservoir );
|
||||||
geoMechCase->updateConnectedViews();
|
geoMechCase->updateConnectedViews();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,6 +67,12 @@ public:
|
|||||||
PROPORTIONAL_TO_SH
|
PROPORTIONAL_TO_SH
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class NonReservoirPorePressureType
|
||||||
|
{
|
||||||
|
HYDROSTATIC,
|
||||||
|
PER_ELEMENT
|
||||||
|
};
|
||||||
|
|
||||||
RimMudWeightWindowParameters( void );
|
RimMudWeightWindowParameters( void );
|
||||||
|
|
||||||
SourceType wellDeviationType() const;
|
SourceType wellDeviationType() const;
|
||||||
@@ -141,10 +147,12 @@ private:
|
|||||||
|
|
||||||
caf::PdmField<double> m_airGap;
|
caf::PdmField<double> m_airGap;
|
||||||
caf::PdmField<double> m_shMultiplier;
|
caf::PdmField<double> m_shMultiplier;
|
||||||
|
caf::PdmField<double> m_userDefinedPPNonReservoir;
|
||||||
|
|
||||||
caf::PdmField<caf::AppEnum<UpperLimitType>> m_upperLimitType;
|
caf::PdmField<caf::AppEnum<UpperLimitType>> m_upperLimitType;
|
||||||
caf::PdmField<caf::AppEnum<LowerLimitType>> m_lowerLimitType;
|
caf::PdmField<caf::AppEnum<LowerLimitType>> m_lowerLimitType;
|
||||||
caf::PdmField<caf::AppEnum<FractureGradientCalculationType>> m_fractureGradientCalculationType;
|
caf::PdmField<caf::AppEnum<FractureGradientCalculationType>> m_fractureGradientCalculationType;
|
||||||
|
caf::PdmField<caf::AppEnum<NonReservoirPorePressureType>> m_porePressureNonReservoirSource;
|
||||||
|
|
||||||
caf::PdmField<int> m_referenceLayer;
|
caf::PdmField<int> m_referenceLayer;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user