mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Fault Reactivation: export density and elastic properties to INP.
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
#include "RiaPorosityModel.h"
|
||||
|
||||
#include "RigCaseCellResultsData.h"
|
||||
#include "RigCaseToCaseCellMapperTools.h"
|
||||
#include "RigEclipseCaseData.h"
|
||||
#include "RigEclipseResultAddress.h"
|
||||
#include "RigFault.h"
|
||||
@@ -99,6 +100,10 @@ std::vector<double> RimFaultReactivationDataAccess::extractModelData( const RigF
|
||||
RimFaultReactivation::Property property,
|
||||
size_t timeStep )
|
||||
{
|
||||
std::set<RimFaultReactivation::Property> nodeProperties = { RimFaultReactivation::Property::PorePressure,
|
||||
RimFaultReactivation::Property::VoidRatio,
|
||||
RimFaultReactivation::Property::Temperature };
|
||||
|
||||
std::shared_ptr<RimFaultReactivationDataAccessor> accessor = getAccessor( property );
|
||||
if ( accessor )
|
||||
{
|
||||
@@ -107,11 +112,27 @@ std::vector<double> RimFaultReactivationDataAccess::extractModelData( const RigF
|
||||
auto grid = model.grid( gridPart );
|
||||
|
||||
std::vector<double> values;
|
||||
for ( auto& node : grid->globalNodes() )
|
||||
|
||||
if ( nodeProperties.contains( property ) )
|
||||
{
|
||||
double value = accessor->valueAtPosition( node );
|
||||
values.push_back( value );
|
||||
for ( auto& node : grid->globalNodes() )
|
||||
{
|
||||
double value = accessor->valueAtPosition( node );
|
||||
values.push_back( value );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
size_t numElements = grid->elementIndices().size();
|
||||
for ( size_t elementIndex = 0; elementIndex < numElements; elementIndex++ )
|
||||
{
|
||||
std::vector<cvf::Vec3d> corners = grid->elementCorners( elementIndex );
|
||||
cvf::Vec3d position = RigCaseToCaseCellMapperTools::calculateCellCenter( corners.data() );
|
||||
double value = accessor->valueAtPosition( position );
|
||||
values.push_back( value );
|
||||
}
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
|
||||
@@ -118,6 +118,8 @@ RimFaultReactivationModel::RimFaultReactivationModel()
|
||||
CAF_PDM_InitField( &m_useGridPorePressure, "UseGridPorePressure", true, "Use Grid Pore Pressure" );
|
||||
CAF_PDM_InitField( &m_useGridVoidRatio, "UseGridVoidRatio", true, "Use Grid Void Ratio" );
|
||||
CAF_PDM_InitField( &m_useGridTemperature, "UseGridTemperature", true, "Use Grid Temperature" );
|
||||
CAF_PDM_InitField( &m_useGridDensity, "UseGridDensity", true, "Use Grid Density" );
|
||||
CAF_PDM_InitField( &m_useGridElasticProperties, "UseGridElasticProperties", true, "Use Grid Elastic Properties" );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_targets, "Targets", "Targets" );
|
||||
m_targets.uiCapability()->setUiEditorTypeName( caf::PdmUiTableViewEditor::uiEditorTypeName() );
|
||||
@@ -500,6 +502,8 @@ void RimFaultReactivationModel::defineUiOrdering( QString uiConfigName, caf::Pdm
|
||||
propertiesGrp->add( &m_useGridPorePressure );
|
||||
propertiesGrp->add( &m_useGridVoidRatio );
|
||||
propertiesGrp->add( &m_useGridTemperature );
|
||||
propertiesGrp->add( &m_useGridDensity );
|
||||
propertiesGrp->add( &m_useGridElasticProperties );
|
||||
|
||||
auto appModelGrp = modelGrp->addNewGroup( "Appearance" );
|
||||
appModelGrp->add( &m_modelPart1Color );
|
||||
@@ -796,3 +800,19 @@ bool RimFaultReactivationModel::useGridTemperature() const
|
||||
{
|
||||
return m_useGridTemperature();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimFaultReactivationModel::useGridDensity() const
|
||||
{
|
||||
return m_useGridDensity();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimFaultReactivationModel::useGridElasticProperties() const
|
||||
{
|
||||
return m_useGridElasticProperties();
|
||||
}
|
||||
|
||||
@@ -128,6 +128,8 @@ public:
|
||||
bool useGridVoidRatio() const;
|
||||
bool useGridPorePressure() const;
|
||||
bool useGridTemperature() const;
|
||||
bool useGridDensity() const;
|
||||
bool useGridElasticProperties() const;
|
||||
|
||||
protected:
|
||||
caf::PdmFieldHandle* userDescriptionField() override;
|
||||
@@ -181,6 +183,8 @@ private:
|
||||
caf::PdmField<bool> m_useGridPorePressure;
|
||||
caf::PdmField<bool> m_useGridVoidRatio;
|
||||
caf::PdmField<bool> m_useGridTemperature;
|
||||
caf::PdmField<bool> m_useGridDensity;
|
||||
caf::PdmField<bool> m_useGridElasticProperties;
|
||||
|
||||
cvf::ref<RigBasicPlane> m_faultPlane;
|
||||
cvf::ref<RigFaultReactivationModel> m_modelPlane;
|
||||
|
||||
Reference in New Issue
Block a user