mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#6597 Use and display scaled elastic properties.
This commit is contained in:
@@ -20,6 +20,8 @@
|
||||
|
||||
#include "RiaInterpolationTools.h"
|
||||
|
||||
#include "cafAssert.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -62,78 +64,6 @@ const std::vector<double>& RigElasticProperties::porosity() const
|
||||
return m_porosity;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<double>& RigElasticProperties::youngsModulus() const
|
||||
{
|
||||
return m_youngsModulus;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<double>& RigElasticProperties::poissonsRatio() const
|
||||
{
|
||||
return m_poissonsRatio;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<double>& RigElasticProperties::K_Ic() const
|
||||
{
|
||||
return m_K_Ic;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<double>& RigElasticProperties::proppantEmbedment() const
|
||||
{
|
||||
return m_proppantEmbedment;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<double>& RigElasticProperties::biotCoefficient() const
|
||||
{
|
||||
return m_biotCoefficient;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<double>& RigElasticProperties::k0() const
|
||||
{
|
||||
return m_k0;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<double>& RigElasticProperties::fluidLossCoefficient() const
|
||||
{
|
||||
return m_fluidLossCoefficient;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<double>& RigElasticProperties::spurtLoss() const
|
||||
{
|
||||
return m_spurtLoss;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<double>& RigElasticProperties::immobileFluidSaturation() const
|
||||
{
|
||||
return m_immobileFluidSaturation;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -163,71 +93,51 @@ void RigElasticProperties::appendValues( double porosity,
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RigElasticProperties::getYoungsModulus( double porosity ) const
|
||||
size_t RigElasticProperties::numValues() const
|
||||
{
|
||||
return RiaInterpolationTools::linear( m_porosity, m_youngsModulus, porosity );
|
||||
return m_porosity.size();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RigElasticProperties::getPoissonsRatio( double porosity ) const
|
||||
double RigElasticProperties::getValue( RiaDefines::CurveProperty property, size_t index, double scale ) const
|
||||
{
|
||||
return RiaInterpolationTools::linear( m_porosity, m_poissonsRatio, porosity );
|
||||
CAF_ASSERT( index < numValues() );
|
||||
const std::vector<double>& unscaledValues = getVector( property );
|
||||
return unscaledValues[index] * scale;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RigElasticProperties::getK_Ic( double porosity ) const
|
||||
const std::vector<double>& RigElasticProperties::getVector( RiaDefines::CurveProperty property ) const
|
||||
{
|
||||
return RiaInterpolationTools::linear( m_porosity, m_K_Ic, porosity );
|
||||
if ( property == RiaDefines::CurveProperty::YOUNGS_MODULUS ) return m_youngsModulus;
|
||||
if ( property == RiaDefines::CurveProperty::POISSONS_RATIO ) return m_poissonsRatio;
|
||||
if ( property == RiaDefines::CurveProperty::K_IC ) return m_K_Ic;
|
||||
if ( property == RiaDefines::CurveProperty::PROPPANT_EMBEDMENT ) return m_proppantEmbedment;
|
||||
if ( property == RiaDefines::CurveProperty::BIOT_COEFFICIENT ) return m_biotCoefficient;
|
||||
if ( property == RiaDefines::CurveProperty::K0 ) return m_k0;
|
||||
if ( property == RiaDefines::CurveProperty::FLUID_LOSS_COEFFICIENT ) return m_fluidLossCoefficient;
|
||||
if ( property == RiaDefines::CurveProperty::SPURT_LOSS ) return m_spurtLoss;
|
||||
|
||||
// Default: if we get this far only one option left
|
||||
CAF_ASSERT( property == RiaDefines::CurveProperty::IMMOBILE_FLUID_SATURATION );
|
||||
return m_immobileFluidSaturation;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RigElasticProperties::getProppantEmbedment( double porosity ) const
|
||||
double RigElasticProperties::getValueForPorosity( RiaDefines::CurveProperty property, double porosity, double scale ) const
|
||||
{
|
||||
return RiaInterpolationTools::linear( m_porosity, m_proppantEmbedment, porosity );
|
||||
}
|
||||
const std::vector<double>& unscaledValues = getVector( property );
|
||||
std::vector<double> scaledValues;
|
||||
for ( double unscaled : unscaledValues )
|
||||
{
|
||||
scaledValues.push_back( unscaled * scale );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RigElasticProperties::getBiotCoefficient( double porosity ) const
|
||||
{
|
||||
return RiaInterpolationTools::linear( m_porosity, m_biotCoefficient, porosity );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RigElasticProperties::getK0( double porosity ) const
|
||||
{
|
||||
return RiaInterpolationTools::linear( m_porosity, m_k0, porosity );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RigElasticProperties::getFluidLossCoefficient( double porosity ) const
|
||||
{
|
||||
return RiaInterpolationTools::linear( m_porosity, m_fluidLossCoefficient, porosity );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RigElasticProperties::getSpurtLoss( double porosity ) const
|
||||
{
|
||||
return RiaInterpolationTools::linear( m_porosity, m_spurtLoss, porosity );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RigElasticProperties::getImmobileFluidSaturation( double porosity ) const
|
||||
{
|
||||
return RiaInterpolationTools::linear( m_porosity, m_immobileFluidSaturation, porosity );
|
||||
return RiaInterpolationTools::linear( m_porosity, scaledValues, porosity );
|
||||
}
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "RiaFractureModelDefines.h"
|
||||
|
||||
#include <QString>
|
||||
|
||||
#include <vector>
|
||||
@@ -43,28 +45,16 @@ public:
|
||||
double fluidLossCoefficient,
|
||||
double spurtLoss,
|
||||
double immobileFluidSaturation );
|
||||
double getYoungsModulus( double porosity ) const;
|
||||
double getPoissonsRatio( double porosity ) const;
|
||||
double getK_Ic( double porosity ) const;
|
||||
double getProppantEmbedment( double porosity ) const;
|
||||
double getBiotCoefficient( double porosity ) const;
|
||||
double getK0( double porosity ) const;
|
||||
double getFluidLossCoefficient( double porosity ) const;
|
||||
double getSpurtLoss( double porosity ) const;
|
||||
double getImmobileFluidSaturation( double porosity ) const;
|
||||
|
||||
size_t numValues() const;
|
||||
double getValue( RiaDefines::CurveProperty property, size_t index, double scale = 1.0 ) const;
|
||||
double getValueForPorosity( RiaDefines::CurveProperty property, double porosity, double scale = 1.0 ) const;
|
||||
|
||||
const std::vector<double>& porosity() const;
|
||||
const std::vector<double>& youngsModulus() const;
|
||||
const std::vector<double>& poissonsRatio() const;
|
||||
const std::vector<double>& K_Ic() const;
|
||||
const std::vector<double>& proppantEmbedment() const;
|
||||
const std::vector<double>& biotCoefficient() const;
|
||||
const std::vector<double>& k0() const;
|
||||
const std::vector<double>& fluidLossCoefficient() const;
|
||||
const std::vector<double>& spurtLoss() const;
|
||||
const std::vector<double>& immobileFluidSaturation() const;
|
||||
|
||||
private:
|
||||
const std::vector<double>& getVector( RiaDefines::CurveProperty property ) const;
|
||||
|
||||
QString m_fieldName;
|
||||
QString m_formationName;
|
||||
QString m_faciesName;
|
||||
|
||||
Reference in New Issue
Block a user