#6363 FractureModel: Compute default value for vertical stress.

This commit is contained in:
Kristian Bendiksen 2020-09-02 15:13:21 +02:00
parent c7a694f9b2
commit 1e5bc2ee64
2 changed files with 30 additions and 11 deletions

View File

@ -120,15 +120,19 @@ RimFractureModel::RimFractureModel()
// Stress unit: bar
// Stress gradient unit: bar/m
// Depth is meter
CAF_PDM_InitScriptableField( &m_verticalStress, "VerticalStress", 879.0, "Vertical Stress", "", "", "" );
double defaultStressGradient = 0.238;
double defaultStressDepth = computeDefaultStressDepth();
double defaultStress = defaultStressDepth * defaultStressGradient;
CAF_PDM_InitScriptableField( &m_verticalStress, "VerticalStress", defaultStress, "Vertical Stress", "", "", "" );
CAF_PDM_InitScriptableField( &m_verticalStressGradient,
"VerticalStressGradient",
0.238,
defaultStressGradient,
"Vertical Stress Gradient",
"",
"",
"" );
CAF_PDM_InitScriptableField( &m_stressDepth, "StressDepth", 1000.0, "Stress Depth", "", "", "" );
CAF_PDM_InitScriptableField( &m_stressDepth, "StressDepth", defaultStressDepth, "Stress Depth", "", "", "" );
CAF_PDM_InitScriptableField( &m_overburdenHeight, "OverburdenHeight", 50.0, "Overburden Height", "", "", "" );
CAF_PDM_InitScriptableFieldNoDefault( &m_overburdenFormation, "OverburdenFormation", "Overburden Formation", "", "", "" );
@ -933,7 +937,6 @@ RimEclipseCase* RimFractureModel::getEclipseCase()
return proj->eclipseCases()[0];
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -945,3 +948,17 @@ RigEclipseCaseData* RimFractureModel::getEclipseCaseData()
return eclipseCase->eclipseCaseData();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RimFractureModel::computeDefaultStressDepth()
{
const double stressDepth = 1000.0;
RimEclipseCase* eclipseCase = getEclipseCase();
if ( !eclipseCase ) return stressDepth;
// Use top of active cells as reference stress depth
return -eclipseCase->activeCellsBoundingBox().max().z();
}

View File

@ -128,14 +128,16 @@ protected:
bool* useOptionsOnly ) override;
private:
void updatePositionFromMeasuredDepth();
void updateThicknessDirection();
cvf::Vec3d calculateTSTDirection() const;
void findThicknessTargetPoints( cvf::Vec3d& topPosition, cvf::Vec3d& bottomPosition );
static QString vecToString( const cvf::Vec3d& vec );
void updateThicknessDirectionWellPathName();
void updatePositionFromMeasuredDepth();
void updateThicknessDirection();
cvf::Vec3d calculateTSTDirection() const;
void findThicknessTargetPoints( cvf::Vec3d& topPosition, cvf::Vec3d& bottomPosition );
static QString vecToString( const cvf::Vec3d& vec );
void updateThicknessDirectionWellPathName();
static double computeDefaultStressDepth();
static RigEclipseCaseData* getEclipseCaseData();
static RimEclipseCase* getEclipseCase();
static RimEclipseCase* getEclipseCase();
protected:
caf::PdmField<double> m_MD;