mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Version 0.8.6
This commit is contained in:
@@ -250,20 +250,16 @@ double RigGridBase::cellScalar(size_t timeStepIndex, size_t scalarSetIndex, size
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RigGridBase::cellScalar(size_t timeStepIndex, size_t scalarSetIndex, size_t cellIndex) const
|
||||
{
|
||||
size_t resultIndex = cellIndex;
|
||||
size_t resultValueIndex = cellIndex;
|
||||
|
||||
bool useGlobalActiveIndex = m_mainGrid->results()->isUsingGlobalActiveIndex(scalarSetIndex);
|
||||
if (useGlobalActiveIndex)
|
||||
{
|
||||
resultIndex = cell(cellIndex).globalActiveIndex();
|
||||
if (resultIndex == cvf::UNDEFINED_SIZE_T) return HUGE_VAL;
|
||||
resultValueIndex = cell(cellIndex).globalActiveIndex();
|
||||
if (resultValueIndex == cvf::UNDEFINED_SIZE_T) return HUGE_VAL;
|
||||
}
|
||||
|
||||
const std::vector< std::vector<double> >& scalarResult = m_mainGrid->results()->cellScalarResults(scalarSetIndex);
|
||||
|
||||
if (!(timeStepIndex < scalarResult.size() && resultIndex < scalarResult[timeStepIndex].size())) return HUGE_VAL;
|
||||
|
||||
return scalarResult[timeStepIndex][resultIndex];
|
||||
return m_mainGrid->results()->cellScalarResult(timeStepIndex, scalarSetIndex, resultValueIndex);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -347,6 +347,12 @@ bool RigReservoirBuilderMock::dynamicResult(RigReservoir* reservoir, const QStri
|
||||
}
|
||||
}
|
||||
|
||||
// Set result size to zero for some timesteps
|
||||
if ((stepIndex + 1) % 3 == 0)
|
||||
{
|
||||
values->clear();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -152,11 +152,19 @@ std::vector< std::vector<double> > & RigReservoirCellResults::cellScalarResults(
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector< std::vector<double> >& RigReservoirCellResults::cellScalarResults( size_t scalarResultIndex ) const
|
||||
double RigReservoirCellResults::cellScalarResult(size_t timeStepIndex, size_t scalarResultIndex, size_t resultValueIndex)
|
||||
{
|
||||
CVF_TIGHT_ASSERT(scalarResultIndex < resultCount());
|
||||
|
||||
return m_cellScalarResults[scalarResultIndex];
|
||||
if (scalarResultIndex < resultCount() &&
|
||||
timeStepIndex < m_cellScalarResults[scalarResultIndex].size() &&
|
||||
resultValueIndex != cvf::UNDEFINED_SIZE_T &&
|
||||
resultValueIndex < m_cellScalarResults[scalarResultIndex][timeStepIndex].size())
|
||||
{
|
||||
return m_cellScalarResults[scalarResultIndex][timeStepIndex][resultValueIndex];
|
||||
}
|
||||
else
|
||||
{
|
||||
return HUGE_VAL;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -172,8 +180,10 @@ size_t RigReservoirCellResults::findOrLoadScalarResult(RimDefines::ResultCatType
|
||||
|
||||
if (cellScalarResults(resultGridIndex).size()) return resultGridIndex;
|
||||
|
||||
// Generated and Input properties should always be loaded up front.
|
||||
CVF_ASSERT(type == RimDefines::STATIC_NATIVE || type == RimDefines::DYNAMIC_NATIVE);
|
||||
if (type == RimDefines::GENERATED)
|
||||
{
|
||||
return cvf::UNDEFINED_SIZE_T;
|
||||
}
|
||||
|
||||
if (m_readerInterface.notNull())
|
||||
{
|
||||
@@ -475,3 +485,15 @@ void RigReservoirCellResults::removeResult(const QString& resultName)
|
||||
|
||||
m_resultInfos[resultIdx].m_resultType = RimDefines::REMOVED;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RigReservoirCellResults::clearAllResults()
|
||||
{
|
||||
for (size_t i = 0; i < m_cellScalarResults.size(); i++)
|
||||
{
|
||||
m_cellScalarResults[i].clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -58,12 +58,13 @@ public:
|
||||
QString makeResultNameUnique(const QString& resultNameProposal) const;
|
||||
|
||||
void removeResult(const QString& resultName);
|
||||
void clearAllResults();
|
||||
|
||||
void loadOrComputeSOIL();
|
||||
|
||||
// Access the results data
|
||||
std::vector< std::vector<double> > & cellScalarResults(size_t scalarResultIndex);
|
||||
const std::vector< std::vector<double> >& cellScalarResults(size_t scalarResultIndex) const;
|
||||
double cellScalarResult(size_t timeStepIndex, size_t scalarResultIndex, size_t resultValueIndex);
|
||||
|
||||
private:
|
||||
std::vector< std::vector< std::vector<double> > > m_cellScalarResults; ///< Scalar results for each timestep for each Result index (ResultVariable)
|
||||
|
||||
Reference in New Issue
Block a user