Add parameter value check to see if it is possible to continue or not. (#8091)

This commit is contained in:
jonjenssen 2021-10-01 16:32:11 +02:00 committed by GitHub
parent 69c829dc32
commit 72ce82b08b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 10 deletions

View File

@ -60,7 +60,14 @@ void RicRunWellIntegrityAnalysisFeature::onActionTriggered( bool isChecked )
runProgress.setProgressDescription( "Writing input files." );
modelSettings->extractModelData();
if ( !modelSettings->extractModelData() )
{
QMessageBox::critical( nullptr,
wiaTitle,
"Unable to get necessary data from the defined model box. Is the model box center "
"outside the reservoir?" );
return;
}
if ( !RifWellIAFileWriter::writeToJsonFile( *modelSettings, outErrorText ) )
{

View File

@ -433,7 +433,7 @@ void RimWellIASettings::resetResInsightParameters()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellIASettings::updateResInsightParameters()
bool RimWellIASettings::updateResInsightParameters()
{
resetResInsightParameters();
@ -469,10 +469,25 @@ void RimWellIASettings::updateResInsightParameters()
double stressValue =
dataAccess.interpolatedResultValue( "ST", nativeKeys[i], RigFemResultPosEnum::RIG_ELEMENT_NODAL, position, 0 );
initialStress->addParameter( paramKeys[i], stressValue );
if ( std::isfinite( stressValue ) )
{
initialStress->addParameter( paramKeys[i], stressValue );
}
else
{
return false;
}
}
double ppValue = dataAccess.interpolatedResultValue( "POR-Bar", "", RigFemResultPosEnum::RIG_NODAL, position, 0 );
initialStress->addParameter( "PP", ppValue );
if ( std::isfinite( ppValue ) )
{
initialStress->addParameter( "PP", ppValue );
}
else
{
return false;
}
auto angles = RigWellPathGeometryTools::calculateAzimuthAndInclinationAtMd( ( m_startMD + m_endMD ) / 2.0,
wellPath()->wellPathGeometry() );
@ -480,6 +495,8 @@ void RimWellIASettings::updateResInsightParameters()
initialStress->addParameter( "inclination_well", angles.second );
m_parametersRI.push_back( initialStress );
return true;
}
//--------------------------------------------------------------------------------------------------
@ -579,11 +596,14 @@ void RimWellIASettings::generateModelBox()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellIASettings::extractModelData()
bool RimWellIASettings::extractModelData()
{
generateModelBox();
updateResInsightParameters();
resetModelData();
if ( !updateResInsightParameters() )
{
return false;
}
QDateTime startDate = geostaticDate();
@ -611,7 +631,7 @@ void RimWellIASettings::extractModelData()
}
}
const std::vector<cvf::Vec3d> displacements = extractDisplacments( m_modelbox.vertices(), timestep );
const std::vector<cvf::Vec3d> displacements = extractDisplacements( m_modelbox.vertices(), timestep );
for ( size_t i = 0; i < displacements.size(); i++ )
{
@ -620,6 +640,8 @@ void RimWellIASettings::extractModelData()
m_modelData.push_back( data );
timestep++;
}
return true;
}
//--------------------------------------------------------------------------------------------------
@ -638,7 +660,7 @@ std::vector<QDateTime> RimWellIASettings::timeStepDates()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<cvf::Vec3d> RimWellIASettings::extractDisplacments( std::vector<cvf::Vec3d> corners, int timeStep )
std::vector<cvf::Vec3d> RimWellIASettings::extractDisplacements( std::vector<cvf::Vec3d> corners, int timeStep )
{
RimWellIADataAccess dataAccess( m_geomechCase );

View File

@ -86,7 +86,7 @@ public:
std::vector<cvf::Vec3d> modelBoxVertices() const;
std::vector<RimWellIAModelData*> modelData() const;
void extractModelData();
bool extractModelData();
void updateVisualization();
protected:
@ -107,14 +107,14 @@ private:
std::vector<QDateTime> timeStepDates();
void initCsvParameters();
void updateResInsightParameters();
bool updateResInsightParameters();
void generateModelBox();
void resetModelData();
void resetResInsightParameters();
void addCsvGroup( QString name, QStringList timeSteps, double defaultValue = 0.0 );
std::vector<cvf::Vec3d> extractDisplacments( std::vector<cvf::Vec3d> corners, int timeStep );
std::vector<cvf::Vec3d> extractDisplacements( std::vector<cvf::Vec3d> corners, int timeStep );
private:
caf::PdmProxyValueField<QString> m_nameProxy;