mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#5469 Move POR and ST/SE differentials to a new category "Differentials".
This commit is contained in:
@@ -355,9 +355,6 @@ std::map<std::string, std::vector<std::string>>
|
|||||||
{
|
{
|
||||||
fieldCompNames = m_readerInterface->scalarNodeFieldAndComponentNames();
|
fieldCompNames = m_readerInterface->scalarNodeFieldAndComponentNames();
|
||||||
fieldCompNames["POR-Bar"];
|
fieldCompNames["POR-Bar"];
|
||||||
fieldCompNames["POR_GRADIENTS"].push_back( "X" );
|
|
||||||
fieldCompNames["POR_GRADIENTS"].push_back( "Y" );
|
|
||||||
fieldCompNames["POR_GRADIENTS"].push_back( "Z" );
|
|
||||||
fieldCompNames[FIELD_NAME_COMPACTION];
|
fieldCompNames[FIELD_NAME_COMPACTION];
|
||||||
}
|
}
|
||||||
else if ( resPos == RIG_ELEMENT_NODAL )
|
else if ( resPos == RIG_ELEMENT_NODAL )
|
||||||
@@ -381,11 +378,6 @@ std::map<std::string, std::vector<std::string>>
|
|||||||
fieldCompNames["SE"].push_back( "S3inc" );
|
fieldCompNames["SE"].push_back( "S3inc" );
|
||||||
fieldCompNames["SE"].push_back( "S3azi" );
|
fieldCompNames["SE"].push_back( "S3azi" );
|
||||||
|
|
||||||
for ( auto& s : stressGradientComponentNames )
|
|
||||||
{
|
|
||||||
fieldCompNames["SE_GRADIENTS"].push_back( s );
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldCompNames["ST"].push_back( "STM" );
|
fieldCompNames["ST"].push_back( "STM" );
|
||||||
fieldCompNames["ST"].push_back( "Q" );
|
fieldCompNames["ST"].push_back( "Q" );
|
||||||
|
|
||||||
@@ -401,11 +393,6 @@ std::map<std::string, std::vector<std::string>>
|
|||||||
fieldCompNames["ST"].push_back( "S3inc" );
|
fieldCompNames["ST"].push_back( "S3inc" );
|
||||||
fieldCompNames["ST"].push_back( "S3azi" );
|
fieldCompNames["ST"].push_back( "S3azi" );
|
||||||
|
|
||||||
for ( auto& s : stressGradientComponentNames )
|
|
||||||
{
|
|
||||||
fieldCompNames["ST_GRADIENTS"].push_back( s );
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldCompNames["Gamma"].push_back( "Gamma1" );
|
fieldCompNames["Gamma"].push_back( "Gamma1" );
|
||||||
fieldCompNames["Gamma"].push_back( "Gamma2" );
|
fieldCompNames["Gamma"].push_back( "Gamma2" );
|
||||||
fieldCompNames["Gamma"].push_back( "Gamma3" );
|
fieldCompNames["Gamma"].push_back( "Gamma3" );
|
||||||
@@ -536,6 +523,23 @@ std::map<std::string, std::vector<std::string>>
|
|||||||
fieldCompNames[parameter.name().toStdString()];
|
fieldCompNames[parameter.name().toStdString()];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if ( resPos == RIG_DIFFERENTIALS )
|
||||||
|
{
|
||||||
|
fieldCompNames["POR-Bar"];
|
||||||
|
fieldCompNames["POR-Bar"].push_back( "X" );
|
||||||
|
fieldCompNames["POR-Bar"].push_back( "Y" );
|
||||||
|
fieldCompNames["POR-Bar"].push_back( "Z" );
|
||||||
|
|
||||||
|
for ( auto& s : stressGradientComponentNames )
|
||||||
|
{
|
||||||
|
fieldCompNames["SE"].push_back( s );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( auto& s : stressGradientComponentNames )
|
||||||
|
{
|
||||||
|
fieldCompNames["ST"].push_back( s );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return fieldCompNames;
|
return fieldCompNames;
|
||||||
@@ -991,23 +995,22 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateMeanStressSTM( i
|
|||||||
RigFemScalarResultFrames* RigFemPartResultsCollection::calculateStressGradients( int partIndex,
|
RigFemScalarResultFrames* RigFemPartResultsCollection::calculateStressGradients( int partIndex,
|
||||||
const RigFemResultAddress& resVarAddr )
|
const RigFemResultAddress& resVarAddr )
|
||||||
{
|
{
|
||||||
CVF_ASSERT( resVarAddr.fieldName == "ST_GRADIENTS" || resVarAddr.fieldName == "SE_GRADIENTS" );
|
CVF_ASSERT( resVarAddr.fieldName == "ST" || resVarAddr.fieldName == "SE" );
|
||||||
|
|
||||||
caf::ProgressInfo frameCountProgress( this->frameCount() * 2, "" );
|
caf::ProgressInfo frameCountProgress( this->frameCount() * 2, "" );
|
||||||
frameCountProgress.setProgressDescription(
|
frameCountProgress.setProgressDescription(
|
||||||
"Calculating gradient: " + QString::fromStdString( resVarAddr.fieldName + ": " + resVarAddr.componentName ) );
|
"Calculating gradient: " + QString::fromStdString( resVarAddr.fieldName + ": " + resVarAddr.componentName ) );
|
||||||
frameCountProgress.setNextProgressIncrement( this->frameCount() );
|
frameCountProgress.setNextProgressIncrement( this->frameCount() );
|
||||||
|
|
||||||
QString origFieldName = QString::fromStdString( resVarAddr.fieldName );
|
QString origFieldName = QString::fromStdString( resVarAddr.fieldName );
|
||||||
// Strip away "_GRADIENTS" to underlying field data
|
QString origComponentName = QString::fromStdString( resVarAddr.componentName );
|
||||||
QString underlyingFieldName = origFieldName.left( origFieldName.lastIndexOf( QChar( '_' ) ) );
|
// Split out the direction of the component name: SE-X => SE
|
||||||
QString origComponentName = QString::fromStdString( resVarAddr.componentName );
|
QString componentName = origComponentName.left( origComponentName.lastIndexOf( QChar( '-' ) ) );
|
||||||
QString componentName = origComponentName.left( origComponentName.lastIndexOf( QChar( '-' ) ) );
|
|
||||||
|
|
||||||
RigFemScalarResultFrames* inputResultFrames =
|
RigFemScalarResultFrames* inputResultFrames =
|
||||||
this->findOrLoadScalarResult( partIndex,
|
this->findOrLoadScalarResult( partIndex,
|
||||||
RigFemResultAddress( resVarAddr.resultPosType,
|
RigFemResultAddress( resVarAddr.resultPosType,
|
||||||
underlyingFieldName.toStdString(),
|
resVarAddr.fieldName,
|
||||||
componentName.toStdString() ) );
|
componentName.toStdString() ) );
|
||||||
|
|
||||||
RigFemScalarResultFrames* dataFramesX = m_femPartResults[partIndex]->createScalarResult(
|
RigFemScalarResultFrames* dataFramesX = m_femPartResults[partIndex]->createScalarResult(
|
||||||
@@ -1085,7 +1088,7 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateStressGradients(
|
|||||||
RigFemScalarResultFrames* RigFemPartResultsCollection::calculateNodalGradients( int partIndex,
|
RigFemScalarResultFrames* RigFemPartResultsCollection::calculateNodalGradients( int partIndex,
|
||||||
const RigFemResultAddress& resVarAddr )
|
const RigFemResultAddress& resVarAddr )
|
||||||
{
|
{
|
||||||
CVF_ASSERT( resVarAddr.fieldName == "POR_GRADIENTS" );
|
CVF_ASSERT( resVarAddr.fieldName == "POR-Bar" );
|
||||||
CVF_ASSERT( resVarAddr.componentName == "X" || resVarAddr.componentName == "Y" || resVarAddr.componentName == "Z" );
|
CVF_ASSERT( resVarAddr.componentName == "X" || resVarAddr.componentName == "Y" || resVarAddr.componentName == "Z" );
|
||||||
|
|
||||||
caf::ProgressInfo frameCountProgress( this->frameCount() * 5, "" );
|
caf::ProgressInfo frameCountProgress( this->frameCount() * 5, "" );
|
||||||
@@ -2381,7 +2384,7 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateDerivedResult( i
|
|||||||
return calculateMeanStressSTM( partIndex, resVarAddr );
|
return calculateMeanStressSTM( partIndex, resVarAddr );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( resVarAddr.fieldName == "ST_GRADIENTS" || resVarAddr.fieldName == "SE_GRADIENTS" )
|
if ( resVarAddr.fieldName == "ST" || resVarAddr.fieldName == "SE" )
|
||||||
{
|
{
|
||||||
const std::vector<std::string> allowedComponentNames = getStressGradientComponentNames();
|
const std::vector<std::string> allowedComponentNames = getStressGradientComponentNames();
|
||||||
|
|
||||||
@@ -2407,17 +2410,20 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateDerivedResult( i
|
|||||||
if ( resVarAddr.fieldName == "POR-Bar" )
|
if ( resVarAddr.fieldName == "POR-Bar" )
|
||||||
{
|
{
|
||||||
if ( resVarAddr.resultPosType == RIG_NODAL )
|
if ( resVarAddr.resultPosType == RIG_NODAL )
|
||||||
return calculateBarConvertedResult( partIndex, resVarAddr, "POR" );
|
{
|
||||||
|
if ( resVarAddr.componentName == "X" || resVarAddr.componentName == "Y" || resVarAddr.componentName == "Z" )
|
||||||
|
{
|
||||||
|
return calculateNodalGradients( partIndex, resVarAddr );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return calculateBarConvertedResult( partIndex, resVarAddr, "POR" );
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return calculateEnIpPorBarResult( partIndex, resVarAddr );
|
return calculateEnIpPorBarResult( partIndex, resVarAddr );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( resVarAddr.fieldName == "POR_GRADIENTS" &&
|
|
||||||
( resVarAddr.componentName == "X" || resVarAddr.componentName == "Y" || resVarAddr.componentName == "Z" ) )
|
|
||||||
{
|
|
||||||
return calculateNodalGradients( partIndex, resVarAddr );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ( resVarAddr.fieldName == "NE" ) && ( resVarAddr.componentName == "E11" || resVarAddr.componentName == "E22" ||
|
if ( ( resVarAddr.fieldName == "NE" ) && ( resVarAddr.componentName == "E11" || resVarAddr.componentName == "E22" ||
|
||||||
resVarAddr.componentName == "E33" || resVarAddr.componentName == "E12" ||
|
resVarAddr.componentName == "E33" || resVarAddr.componentName == "E12" ||
|
||||||
resVarAddr.componentName == "E13" || resVarAddr.componentName == "E23" ) )
|
resVarAddr.componentName == "E13" || resVarAddr.componentName == "E23" ) )
|
||||||
|
|||||||
@@ -83,7 +83,8 @@ public:
|
|||||||
{
|
{
|
||||||
bool isTypeValid = resultPosType == RIG_NODAL || resultPosType == RIG_ELEMENT_NODAL ||
|
bool isTypeValid = resultPosType == RIG_NODAL || resultPosType == RIG_ELEMENT_NODAL ||
|
||||||
resultPosType == RIG_INTEGRATION_POINT || resultPosType == RIG_ELEMENT_NODAL_FACE ||
|
resultPosType == RIG_INTEGRATION_POINT || resultPosType == RIG_ELEMENT_NODAL_FACE ||
|
||||||
resultPosType == RIG_FORMATION_NAMES || resultPosType == RIG_ELEMENT;
|
resultPosType == RIG_FORMATION_NAMES || resultPosType == RIG_ELEMENT ||
|
||||||
|
resultPosType == RIG_DIFFERENTIALS;
|
||||||
bool isFieldValid = fieldName != "";
|
bool isFieldValid = fieldName != "";
|
||||||
|
|
||||||
return isTypeValid && isFieldValid;
|
return isTypeValid && isFieldValid;
|
||||||
|
|||||||
@@ -27,5 +27,6 @@ enum RigFemResultPosEnum
|
|||||||
RIG_ELEMENT_NODAL_FACE,
|
RIG_ELEMENT_NODAL_FACE,
|
||||||
RIG_FORMATION_NAMES,
|
RIG_FORMATION_NAMES,
|
||||||
RIG_ELEMENT,
|
RIG_ELEMENT,
|
||||||
RIG_WELLPATH_DERIVED
|
RIG_WELLPATH_DERIVED,
|
||||||
|
RIG_DIFFERENTIALS
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -834,6 +834,10 @@ QString Rim3dOverlayInfoConfig::resultInfoText( const HistogramData& histData, R
|
|||||||
case RIG_ELEMENT:
|
case RIG_ELEMENT:
|
||||||
resultPos = "Element";
|
resultPos = "Element";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case RIG_DIFFERENTIALS:
|
||||||
|
resultPos = "Differentials";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ void caf::AppEnum<RigFemResultPosEnum>::setUp()
|
|||||||
addItem( RIG_FORMATION_NAMES, "FORMATION_NAMES", "Formation Names" );
|
addItem( RIG_FORMATION_NAMES, "FORMATION_NAMES", "Formation Names" );
|
||||||
addItem( RIG_ELEMENT, "ELEMENT", "Element" );
|
addItem( RIG_ELEMENT, "ELEMENT", "Element" );
|
||||||
addItem( RIG_WELLPATH_DERIVED, "WELLPATH_DERIVED", "Well Path Derived" );
|
addItem( RIG_WELLPATH_DERIVED, "WELLPATH_DERIVED", "Well Path Derived" );
|
||||||
|
addItem( RIG_DIFFERENTIALS, "DIFFERENTIALS", "Differentials" );
|
||||||
setDefault( RIG_NODAL );
|
setDefault( RIG_NODAL );
|
||||||
}
|
}
|
||||||
} // namespace caf
|
} // namespace caf
|
||||||
@@ -192,7 +193,8 @@ QList<caf::PdmOptionItemInfo>
|
|||||||
RIG_INTEGRATION_POINT,
|
RIG_INTEGRATION_POINT,
|
||||||
RIG_ELEMENT_NODAL_FACE,
|
RIG_ELEMENT_NODAL_FACE,
|
||||||
RIG_FORMATION_NAMES,
|
RIG_FORMATION_NAMES,
|
||||||
RIG_ELEMENT};
|
RIG_ELEMENT,
|
||||||
|
RIG_DIFFERENTIALS};
|
||||||
if ( m_addWellPathDerivedResults )
|
if ( m_addWellPathDerivedResults )
|
||||||
{
|
{
|
||||||
optionItems.push_back( RIG_WELLPATH_DERIVED );
|
optionItems.push_back( RIG_WELLPATH_DERIVED );
|
||||||
@@ -509,13 +511,31 @@ void RimGeoMechResultDefinition::setAddWellPathDerivedResults( bool addWellPathD
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RigFemResultAddress RimGeoMechResultDefinition::resultAddress() const
|
RigFemResultAddress RimGeoMechResultDefinition::resultAddress() const
|
||||||
{
|
{
|
||||||
return RigFemResultAddress( resultPositionType(),
|
// Convert differentials to their underlying position type
|
||||||
resultFieldName().toStdString(),
|
if ( resultPositionType() == RIG_DIFFERENTIALS )
|
||||||
resultComponentName().toStdString(),
|
{
|
||||||
m_timeLapseBaseTimestep(),
|
RigFemResultPosEnum resultPositionType = RIG_ELEMENT_NODAL;
|
||||||
resultFieldName().toStdString() == RigFemPartResultsCollection::FIELD_NAME_COMPACTION
|
if ( resultFieldName().toStdString() == "POR-Bar" )
|
||||||
? m_compactionRefLayer()
|
{
|
||||||
: RigFemResultAddress::noCompactionValue() );
|
resultPositionType = RIG_NODAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return RigFemResultAddress( resultPositionType,
|
||||||
|
resultFieldName().toStdString(),
|
||||||
|
resultComponentName().toStdString(),
|
||||||
|
m_timeLapseBaseTimestep(),
|
||||||
|
RigFemResultAddress::noCompactionValue() );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return RigFemResultAddress( resultPositionType(),
|
||||||
|
resultFieldName().toStdString(),
|
||||||
|
resultComponentName().toStdString(),
|
||||||
|
m_timeLapseBaseTimestep(),
|
||||||
|
resultFieldName().toStdString() == RigFemPartResultsCollection::FIELD_NAME_COMPACTION
|
||||||
|
? m_compactionRefLayer()
|
||||||
|
: RigFemResultAddress::noCompactionValue() );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -289,7 +289,9 @@ void RiuFemResultTextBuilder::appendTextFromResultColors( RigGeoMechCaseData*
|
|||||||
{
|
{
|
||||||
float scalarValue = std::numeric_limits<float>::infinity();
|
float scalarValue = std::numeric_limits<float>::infinity();
|
||||||
int nodeIdx = elmentConn[lNodeIdx];
|
int nodeIdx = elmentConn[lNodeIdx];
|
||||||
if ( resultDefinition->resultPositionType() == RIG_NODAL )
|
if ( resultDefinition->resultPositionType() == RIG_NODAL ||
|
||||||
|
( resultDefinition->resultPositionType() == RIG_DIFFERENTIALS &&
|
||||||
|
resultDefinition->resultFieldName() == "POR-Bar" ) )
|
||||||
{
|
{
|
||||||
scalarValue = scalarResults[nodeIdx];
|
scalarValue = scalarResults[nodeIdx];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user