mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#5910 Add calculator for stress anisotropy.
This commit is contained in:
@@ -52,6 +52,7 @@
|
||||
#include "RigFemPartResultCalculatorSTM.h"
|
||||
#include "RigFemPartResultCalculatorShearSE.h"
|
||||
#include "RigFemPartResultCalculatorShearST.h"
|
||||
#include "RigFemPartResultCalculatorStressAnisotropy.h"
|
||||
#include "RigFemPartResultCalculatorStressGradients.h"
|
||||
#include "RigFemPartResultCalculatorSurfaceAlignedStress.h"
|
||||
#include "RigFemPartResultCalculatorSurfaceAngles.h"
|
||||
@@ -161,6 +162,8 @@ RigFemPartResultsCollection::RigFemPartResultsCollection( RifGeoMechReaderInterf
|
||||
std::unique_ptr<RigFemPartResultCalculator>( new RigFemPartResultCalculatorPrincipalStrain( *this ) ) );
|
||||
m_resultCalculators.push_back(
|
||||
std::unique_ptr<RigFemPartResultCalculator>( new RigFemPartResultCalculatorPrincipalStress( *this ) ) );
|
||||
m_resultCalculators.push_back(
|
||||
std::unique_ptr<RigFemPartResultCalculator>( new RigFemPartResultCalculatorStressAnisotropy( *this ) ) );
|
||||
m_resultCalculators.push_back(
|
||||
std::unique_ptr<RigFemPartResultCalculator>( new RigFemPartResultCalculatorFormationIndices( *this ) ) );
|
||||
}
|
||||
@@ -339,6 +342,13 @@ void RigFemPartResultsCollection::setBiotCoefficientParameters( double biotFixed
|
||||
deleteResult(
|
||||
RigFemResultAddress( elementType, fieldName, componentName, RigFemResultAddress::allTimeLapsesValue() ) );
|
||||
}
|
||||
|
||||
const std::vector<std::string> stressAnisotropyComponentNames = getStressAnisotropyComponentNames();
|
||||
for ( auto componentName : stressAnisotropyComponentNames )
|
||||
{
|
||||
deleteResult(
|
||||
RigFemResultAddress( elementType, fieldName, componentName, RigFemResultAddress::allTimeLapsesValue() ) );
|
||||
}
|
||||
}
|
||||
|
||||
// SE only: depends on SE.S1 and SE.S3
|
||||
@@ -514,8 +524,9 @@ std::map<std::string, std::vector<std::string>>
|
||||
if ( activeFormationNames() ) fieldCompNames["Active Formation Names"];
|
||||
}
|
||||
|
||||
const std::vector<std::string> stressComponentNames = getStressComponentNames();
|
||||
const std::vector<std::string> stressGradientComponentNames = getStressGradientComponentNames();
|
||||
const std::vector<std::string> stressComponentNames = getStressComponentNames();
|
||||
const std::vector<std::string> stressGradientComponentNames = getStressGradientComponentNames();
|
||||
const std::vector<std::string> stressAnisotropyComponentNames = getStressAnisotropyComponentNames();
|
||||
|
||||
if ( m_readerInterface.notNull() )
|
||||
{
|
||||
@@ -539,6 +550,11 @@ std::map<std::string, std::vector<std::string>>
|
||||
fieldCompNames["SE"].push_back( s );
|
||||
}
|
||||
|
||||
for ( auto& s : stressAnisotropyComponentNames )
|
||||
{
|
||||
fieldCompNames["SE"].push_back( "SE" + s );
|
||||
}
|
||||
|
||||
fieldCompNames["SE"].push_back( "S1inc" );
|
||||
fieldCompNames["SE"].push_back( "S1azi" );
|
||||
fieldCompNames["SE"].push_back( "S2inc" );
|
||||
@@ -554,6 +570,11 @@ std::map<std::string, std::vector<std::string>>
|
||||
fieldCompNames["ST"].push_back( s );
|
||||
}
|
||||
|
||||
for ( auto& s : stressAnisotropyComponentNames )
|
||||
{
|
||||
fieldCompNames["ST"].push_back( "ST" + s );
|
||||
}
|
||||
|
||||
fieldCompNames["ST"].push_back( "S1inc" );
|
||||
fieldCompNames["ST"].push_back( "S1azi" );
|
||||
fieldCompNames["ST"].push_back( "S2inc" );
|
||||
@@ -599,6 +620,11 @@ std::map<std::string, std::vector<std::string>>
|
||||
fieldCompNames["SE"].push_back( "S2" );
|
||||
fieldCompNames["SE"].push_back( "S3" );
|
||||
|
||||
for ( auto& s : stressAnisotropyComponentNames )
|
||||
{
|
||||
fieldCompNames["SE"].push_back( "SE" + s );
|
||||
}
|
||||
|
||||
fieldCompNames["SE"].push_back( "S1inc" );
|
||||
fieldCompNames["SE"].push_back( "S1azi" );
|
||||
fieldCompNames["SE"].push_back( "S2inc" );
|
||||
@@ -619,6 +645,11 @@ std::map<std::string, std::vector<std::string>>
|
||||
fieldCompNames["ST"].push_back( "S2" );
|
||||
fieldCompNames["ST"].push_back( "S3" );
|
||||
|
||||
for ( auto& s : stressAnisotropyComponentNames )
|
||||
{
|
||||
fieldCompNames["ST"].push_back( "ST" + s );
|
||||
}
|
||||
|
||||
fieldCompNames["ST"].push_back( "S1inc" );
|
||||
fieldCompNames["ST"].push_back( "S1azi" );
|
||||
fieldCompNames["ST"].push_back( "S2inc" );
|
||||
@@ -1355,6 +1386,14 @@ std::vector<std::string> RigFemPartResultsCollection::getStressComponentNames( b
|
||||
return componentNames;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<std::string> RigFemPartResultsCollection::getStressAnisotropyComponentNames()
|
||||
{
|
||||
return {"A12", "A13", "A23"};
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user