#1126 moving finding data and calling sortTofAndCalculateAccPhaseFraction to constructor

This commit is contained in:
astridkbjorke 2017-08-11 09:27:27 +02:00
parent db6d471e9c
commit ebab0b50a3
2 changed files with 26 additions and 52 deletions

View File

@ -40,65 +40,46 @@
RigTofAccumulatedPhaseFractionsCalculator::RigTofAccumulatedPhaseFractionsCalculator(RimEclipseResultCase* caseToApply, RigTofAccumulatedPhaseFractionsCalculator::RigTofAccumulatedPhaseFractionsCalculator(RimEclipseResultCase* caseToApply,
QString wellname, QString wellname,
size_t timestep) size_t timestep)
:m_case(caseToApply),
m_wellName(wellname),
m_timeStep(timestep)
{ {
m_flowDiagSolution = caseToApply->defaultFlowDiagSolution();
computeTOFaccumulations();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigTofAccumulatedPhaseFractionsCalculator::computeTOFaccumulations()
{
RigEclipseCaseData* eclipseCaseData = m_case->eclipseCaseData();
RigEclipseCaseData* eclipseCaseData = caseToApply->eclipseCaseData();
RifReaderInterface::PorosityModelResultType porosityModel = RifReaderInterface::MATRIX_RESULTS; RifReaderInterface::PorosityModelResultType porosityModel = RifReaderInterface::MATRIX_RESULTS;
RimReservoirCellResultsStorage* gridCellResults = caseToApply->results(porosityModel);
RimReservoirCellResultsStorage* gridCellResults = m_case->results(porosityModel);
size_t scalarResultIndexSwat = gridCellResults->findOrLoadScalarResult(RiaDefines::DYNAMIC_NATIVE, "SWAT"); size_t scalarResultIndexSwat = gridCellResults->findOrLoadScalarResult(RiaDefines::DYNAMIC_NATIVE, "SWAT");
size_t scalarResultIndexSoil = gridCellResults->findOrLoadScalarResult(RiaDefines::DYNAMIC_NATIVE, "SOIL"); size_t scalarResultIndexSoil = gridCellResults->findOrLoadScalarResult(RiaDefines::DYNAMIC_NATIVE, "SOIL");
size_t scalarResultIndexSgas = gridCellResults->findOrLoadScalarResult(RiaDefines::DYNAMIC_NATIVE, "SGAS"); size_t scalarResultIndexSgas = gridCellResults->findOrLoadScalarResult(RiaDefines::DYNAMIC_NATIVE, "SGAS");
size_t scalarResultIndexPorv = gridCellResults->findOrLoadScalarResult(RiaDefines::STATIC_NATIVE, "PORV"); size_t scalarResultIndexPorv = gridCellResults->findOrLoadScalarResult(RiaDefines::STATIC_NATIVE, "PORV");
const std::vector<double>* swatResults = &(eclipseCaseData->results(RifReaderInterface::MATRIX_RESULTS)->cellScalarResults(scalarResultIndexSwat, timestep));
const std::vector<double>* soilResults = &(eclipseCaseData->results(RifReaderInterface::MATRIX_RESULTS)->cellScalarResults(scalarResultIndexSoil, timestep));
const std::vector<double>* sgasResults = &(eclipseCaseData->results(RifReaderInterface::MATRIX_RESULTS)->cellScalarResults(scalarResultIndexSgas, timestep));
const std::vector<double>* porvResults = &(eclipseCaseData->results(RifReaderInterface::MATRIX_RESULTS)->cellScalarResults(scalarResultIndexPorv, timestep));
const std::vector<double>* swatResults = &(eclipseCaseData->results(RifReaderInterface::MATRIX_RESULTS)->cellScalarResults(scalarResultIndexSwat, m_timeStep));
const std::vector<double>* soilResults = &(eclipseCaseData->results(RifReaderInterface::MATRIX_RESULTS)->cellScalarResults(scalarResultIndexSoil, m_timeStep));
const std::vector<double>* sgasResults = &(eclipseCaseData->results(RifReaderInterface::MATRIX_RESULTS)->cellScalarResults(scalarResultIndexSgas, m_timeStep));
const std::vector<double>* porvResults = &(eclipseCaseData->results(RifReaderInterface::MATRIX_RESULTS)->cellScalarResults(scalarResultIndexPorv, m_timeStep));
const RigActiveCellInfo* activeCellInfo = eclipseCaseData->activeCellInfo(porosityModel); RimFlowDiagSolution* flowDiagSolution = caseToApply->defaultFlowDiagSolution();
std::string resultNameTof = "TOF"; std::string resultNameTof = "TOF";
const std::vector<double>* tofData = m_flowDiagSolution->flowDiagResults()->resultValues(RigFlowDiagResultAddress(resultNameTof, const std::vector<double>* tofData = flowDiagSolution->flowDiagResults()->resultValues(RigFlowDiagResultAddress(resultNameTof,
m_wellName.toStdString()), wellname.toStdString()),
m_timeStep); timestep);
std::string resultNameFraction = "Fraction"; std::string resultNameFraction = "Fraction";
const std::vector<double>* fractionData = m_flowDiagSolution->flowDiagResults()->resultValues(RigFlowDiagResultAddress(resultNameFraction, const std::vector<double>* fractionData = flowDiagSolution->flowDiagResults()->resultValues(RigFlowDiagResultAddress(resultNameFraction,
m_wellName.toStdString()), wellname.toStdString()),
m_timeStep); timestep);
sortTofAndCalculateAccPhaseFraction(tofData, sortTofAndCalculateAccPhaseFraction(tofData,
fractionData, fractionData,
porvResults, porvResults,
swatResults, swatResults,
soilResults, soilResults,
sgasResults, sgasResults,
m_accumulatedPhaseFractionSwat, m_accumulatedPhaseFractionSwat,
m_accumulatedPhaseFractionSoil, m_accumulatedPhaseFractionSoil,
m_accumulatedPhaseFractionSgas, m_accumulatedPhaseFractionSgas,
m_tofInIncreasingOrder); m_tofInIncreasingOrder);
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -47,6 +47,8 @@ public:
const std::vector<double>& accumulatedPhaseFractionsSoil() const { return m_accumulatedPhaseFractionSoil; } const std::vector<double>& accumulatedPhaseFractionsSoil() const { return m_accumulatedPhaseFractionSoil; }
const std::vector<double>& accumulatedPhaseFractionsSgas() const { return m_accumulatedPhaseFractionSgas; } const std::vector<double>& accumulatedPhaseFractionsSgas() const { return m_accumulatedPhaseFractionSgas; }
private:
static void sortTofAndCalculateAccPhaseFraction(const std::vector<double>* tofData, static void sortTofAndCalculateAccPhaseFraction(const std::vector<double>* tofData,
const std::vector<double>* fractionData, const std::vector<double>* fractionData,
const std::vector<double>* porvResults, const std::vector<double>* porvResults,
@ -59,16 +61,6 @@ public:
std::vector<double>& accumulatedPhaseFractionSgas); std::vector<double>& accumulatedPhaseFractionSgas);
private: private:
void computeTOFaccumulations();
private:
RimEclipseResultCase* m_case;
QString m_wellName;
size_t m_timeStep;
RimFlowDiagSolution* m_flowDiagSolution ; //hente fra case, rimEclipseResultCase?
std::vector<double> m_tofInIncreasingOrder; std::vector<double> m_tofInIncreasingOrder;
std::vector<double> m_accumulatedPhaseFractionSwat; std::vector<double> m_accumulatedPhaseFractionSwat;
std::vector<double> m_accumulatedPhaseFractionSgas; std::vector<double> m_accumulatedPhaseFractionSgas;
@ -76,3 +68,4 @@ private:
}; };
//TODO: tester...