mirror of
https://github.com/OPM/ResInsight.git
synced 2025-01-21 22:13:25 -06:00
#6284 Mud Weight Window: add option for non-reservoir pore pressure data.
This commit is contained in:
parent
e3628906c8
commit
e93c4e75f2
@ -23,6 +23,7 @@
|
||||
|
||||
#include "RifElementPropertyReader.h"
|
||||
#include "RifGeoMechReaderInterface.h"
|
||||
#include "RimMudWeightWindowParameters.h"
|
||||
|
||||
#ifdef USE_ODB_API
|
||||
#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;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimMudWeightWindowParameters::UpperLimitType RigFemPartResultsCollection::upperLimitParameterMudWeightWindow() const
|
||||
{
|
||||
return m_upperLimitParameterMudWeightWindow;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -1737,7 +1755,9 @@ void RigFemPartResultsCollection::setMudWeightWindowParameters(
|
||||
RimMudWeightWindowParameters::LowerLimitType lowerLimit,
|
||||
int referenceLayer,
|
||||
RimMudWeightWindowParameters::FractureGradientCalculationType fgCalculationType,
|
||||
double shMultiplier )
|
||||
double shMultiplier,
|
||||
RimMudWeightWindowParameters::NonReservoirPorePressureType nonReservoirPorePressureType,
|
||||
double hydrostaticMultiplierPPNonRes )
|
||||
{
|
||||
m_airGapMudWeightWindow = airGap;
|
||||
m_upperLimitParameterMudWeightWindow = upperLimit;
|
||||
@ -1745,6 +1765,8 @@ void RigFemPartResultsCollection::setMudWeightWindowParameters(
|
||||
m_referenceLayerMudWeightWindow = referenceLayer;
|
||||
m_fractureGradientCalculationTypeMudWeightWindow = fgCalculationType;
|
||||
m_shMultiplierMudWeightWindow = shMultiplier;
|
||||
m_nonReservoirPorePressureTypeMudWeightWindow = nonReservoirPorePressureType;
|
||||
m_hydrostaticMultiplierPPNonResMudWeightWindow = hydrostaticMultiplierPPNonRes;
|
||||
|
||||
// Invalidate dependent results
|
||||
for ( auto result : mudWeightWindowResults() )
|
||||
|
@ -88,15 +88,21 @@ public:
|
||||
double getCalculationParameterValue( RimMudWeightWindowParameters::ParameterType ) const;
|
||||
QString getCalculationParameterAddress( RimMudWeightWindowParameters::ParameterType ) const;
|
||||
|
||||
void setMudWeightWindowParameters( double airGap,
|
||||
RimMudWeightWindowParameters::UpperLimitType upperLimit,
|
||||
RimMudWeightWindowParameters::LowerLimitType lowerLimit,
|
||||
int referenceLayer,
|
||||
RimMudWeightWindowParameters::FractureGradientCalculationType fgCalculationType,
|
||||
double shMultiplier );
|
||||
void setMudWeightWindowParameters( double airGap,
|
||||
RimMudWeightWindowParameters::UpperLimitType upperLimit,
|
||||
RimMudWeightWindowParameters::LowerLimitType lowerLimit,
|
||||
int referenceLayer,
|
||||
RimMudWeightWindowParameters::FractureGradientCalculationType fgCalculationType,
|
||||
double shMultiplier,
|
||||
RimMudWeightWindowParameters::NonReservoirPorePressureType nonReservoirPorePressureType,
|
||||
double hydroStaticMultiplierPPNonRes );
|
||||
|
||||
double airGapMudWeightWindow() const;
|
||||
double shMultiplierMudWeightWindow() const;
|
||||
|
||||
double hydrostaticMultiplierPPNonRes() const;
|
||||
RimMudWeightWindowParameters::NonReservoirPorePressureType nonReservoirPorePressureTypeMudWeightWindow() const;
|
||||
|
||||
RimMudWeightWindowParameters::UpperLimitType upperLimitParameterMudWeightWindow() const;
|
||||
RimMudWeightWindowParameters::LowerLimitType lowerLimitParameterMudWeightWindow() const;
|
||||
size_t referenceLayerMudWeightWindow() const;
|
||||
@ -209,6 +215,9 @@ private:
|
||||
RimMudWeightWindowParameters::LowerLimitType m_lowerLimitParameterMudWeightWindow;
|
||||
RimMudWeightWindowParameters::FractureGradientCalculationType m_fractureGradientCalculationTypeMudWeightWindow;
|
||||
|
||||
RimMudWeightWindowParameters::NonReservoirPorePressureType m_nonReservoirPorePressureTypeMudWeightWindow;
|
||||
double m_hydrostaticMultiplierPPNonResMudWeightWindow;
|
||||
|
||||
std::map<RimMudWeightWindowParameters::ParameterType, QString> parameterAddresses;
|
||||
std::map<RimMudWeightWindowParameters::ParameterType, double> parameterValues;
|
||||
|
||||
|
@ -89,6 +89,16 @@ void caf::AppEnum<RimMudWeightWindowParameters::FractureGradientCalculationType>
|
||||
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
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -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", "", "", "" );
|
||||
}
|
||||
|
||||
@ -363,7 +384,8 @@ void RimMudWeightWindowParameters::fieldChangedByUi( const caf::PdmFieldHandle*
|
||||
}
|
||||
else if ( changedField == &m_airGap || changedField == &m_upperLimitType || changedField == &m_lowerLimitType ||
|
||||
changedField == &m_referenceLayer || changedField == &m_fractureGradientCalculationType ||
|
||||
changedField == &m_shMultiplier )
|
||||
changedField == &m_shMultiplier || changedField == &m_porePressureNonReservoirSource ||
|
||||
changedField == &m_userDefinedPPNonReservoir )
|
||||
{
|
||||
RigGeoMechCaseData* rigCaseData = geoMechCase->geoMechData();
|
||||
if ( rigCaseData && rigCaseData->femPartResults() )
|
||||
@ -373,7 +395,9 @@ void RimMudWeightWindowParameters::fieldChangedByUi( const caf::PdmFieldHandle*
|
||||
m_lowerLimitType.value(),
|
||||
m_referenceLayer,
|
||||
m_fractureGradientCalculationType.value(),
|
||||
m_shMultiplier );
|
||||
m_shMultiplier,
|
||||
m_porePressureNonReservoirSource.value(),
|
||||
m_userDefinedPPNonReservoir );
|
||||
geoMechCase->updateConnectedViews();
|
||||
}
|
||||
}
|
||||
|
@ -67,6 +67,12 @@ public:
|
||||
PROPORTIONAL_TO_SH
|
||||
};
|
||||
|
||||
enum class NonReservoirPorePressureType
|
||||
{
|
||||
HYDROSTATIC,
|
||||
PER_ELEMENT
|
||||
};
|
||||
|
||||
RimMudWeightWindowParameters( void );
|
||||
|
||||
SourceType wellDeviationType() const;
|
||||
@ -141,10 +147,12 @@ private:
|
||||
|
||||
caf::PdmField<double> m_airGap;
|
||||
caf::PdmField<double> m_shMultiplier;
|
||||
caf::PdmField<double> m_userDefinedPPNonReservoir;
|
||||
|
||||
caf::PdmField<caf::AppEnum<UpperLimitType>> m_upperLimitType;
|
||||
caf::PdmField<caf::AppEnum<LowerLimitType>> m_lowerLimitType;
|
||||
caf::PdmField<caf::AppEnum<FractureGradientCalculationType>> m_fractureGradientCalculationType;
|
||||
caf::PdmField<caf::AppEnum<NonReservoirPorePressureType>> m_porePressureNonReservoirSource;
|
||||
|
||||
caf::PdmField<int> m_referenceLayer;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user