#6284 Mud Weight Window: add option for non-reservoir pore pressure data.

This commit is contained in:
Kristian Bendiksen
2020-08-10 19:30:41 +02:00
parent e3628906c8
commit e93c4e75f2
4 changed files with 74 additions and 11 deletions

View File

@@ -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();
}
}

View File

@@ -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;
};