#1487 Remove vector<FractureData> from RigFracture

This commit is contained in:
Jacob Støren
2017-05-16 17:26:40 +02:00
parent f057f83d4f
commit d298963d94
7 changed files with 26 additions and 62 deletions

View File

@@ -114,13 +114,16 @@ bool RifEclipseExportTools::writeFracturesToTextFile(const QString& fileName, c
RiaLogging::debug(QString("Writing intermediate results from COMPDAT calculation"));
std::map<RimFracture*, std::vector<RigFracturedEclipseCellExportData> > exportDataPrFracture;
for (RimFracture* fracture : fractures)
{
RigFractureTransCalc transmissibilityCalculator(caseToApply, fracture);
//TODO: Check that there is a fracture template available for given fracture....
transmissibilityCalculator.computeTransmissibilityFromPolygonWithInfiniteConductivityInFracture();
std::vector<RigFracturedEclipseCellExportData> fracDataVector = fracture->attachedRigFracture()->fractureData();
std::vector<RigFracturedEclipseCellExportData> fracDataVector = transmissibilityCalculator.computeTransmissibilityFromPolygonWithInfiniteConductivityInFracture();
exportDataPrFracture[fracture] = fracDataVector;
for (RigFracturedEclipseCellExportData fracData : fracDataVector)
{
@@ -134,13 +137,13 @@ bool RifEclipseExportTools::writeFracturesToTextFile(const QString& fileName, c
for (RimFracture* fracture : fractures)
{
RiaLogging::debug(QString("Writing COMPDAT values for fracture %1").arg(fracture->name()));
std::vector<RigFracturedEclipseCellExportData> fracDataVector = fracture->attachedRigFracture()->fractureData();
std::vector<RigFracturedEclipseCellExportData> fracDataVector = exportDataPrFracture[fracture];
for (RigFracturedEclipseCellExportData fracData : fracDataVector)
{
if (fracData.transmissibility > 0)
if ( fracData.transmissibility > 0 )
{
printCOMPDATvalues(out, fracData, fracture, wellPath, simWell, mainGrid);
printCOMPDATvalues(out, fracData, fracture, wellPath, simWell, mainGrid);
}
}
@@ -161,20 +164,18 @@ bool RifEclipseExportTools::writeFracturesToTextFile(const QString& fileName, c
//--------------------------------------------------------------------------------------------------
void RifEclipseExportTools::performStimPlanUpscalingAndPrintResults(const std::vector<RimFracture *>& fractures, RimEclipseCase* caseToApply, QTextStream &out, RimWellPath* wellPath, RimEclipseWell* simWell, const RigMainGrid* mainGrid)
{
//TODO: Get these more generally:
QString resultName = "CONDUCTIVITY";
QString resultUnit = "md-m";
size_t timeStepIndex = 0;
for (RimFracture* fracture : fractures) //For testing upscaling...
{
RigFractureTransCalc transmissibilityCalculator(caseToApply, fracture);
transmissibilityCalculator.computeUpscaledPropertyFromStimPlan(resultName, resultUnit, timeStepIndex);
std::vector<RigFracturedEclipseCellExportData> fracDataVector = fracture->attachedRigFracture()->fractureData();
std::vector<RigFracturedEclipseCellExportData> fracDataVector;
fracDataVector = transmissibilityCalculator.computeUpscaledPropertyFromStimPlan(resultName, resultUnit, timeStepIndex);
out << qSetFieldWidth(4);
out << "-- ";
@@ -185,7 +186,6 @@ void RifEclipseExportTools::performStimPlanUpscalingAndPrintResults(const std::v
out << qSetFieldWidth(16);
out << "Fracture name ";
out << qSetFieldWidth(5);
out << "i"; // 2. I location grid block, adding 1 to go to eclipse 1-based grid definition
out << "j"; // 3. J location grid block, adding 1 to go to eclipse 1-based grid definition

View File

@@ -136,14 +136,6 @@ const std::vector<cvf::Vec3f>& RimFracture::nodeCoords() const
return m_rigFracture->nodeCoords();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimFracture::setFractureData(std::vector<RigFracturedEclipseCellExportData> fractureDataVector)
{
m_rigFracture->setFractureData(fractureDataVector);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -85,8 +85,6 @@ public:
const std::vector<cvf::uint>& triangleIndices() const;
const std::vector<cvf::Vec3f>& nodeCoords() const;
void setFractureData(std::vector<RigFracturedEclipseCellExportData> fractureDataVector);
std::vector<size_t> getPotentiallyFracturedCells();

View File

@@ -76,22 +76,6 @@ const std::vector<cvf::Vec3f>& RigFracture::nodeCoords() const
return m_nodeCoords;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigFracture::setFractureData(const std::vector<RigFracturedEclipseCellExportData>& data)
{
m_fractureData = data;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<RigFracturedEclipseCellExportData>& RigFracture::fractureData() const
{
return m_fractureData;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -89,12 +89,7 @@ public:
const std::vector<cvf::uint>& triangleIndices() const;
const std::vector<cvf::Vec3f>& nodeCoords() const;
void setFractureData(const std::vector<RigFracturedEclipseCellExportData>& data);
const std::vector<RigFracturedEclipseCellExportData>& fractureData() const; //Access frac data
std::vector<RigFracturedEclipseCellExportData> m_fractureData;
void addStimPlanCellFractureCell(RigStimPlanFractureCell fracStimPlanCellData);
private:

View File

@@ -82,7 +82,7 @@ RigFractureTransCalc::RigFractureTransCalc(RimEclipseCase* caseToApply, RimFract
//--------------------------------------------------------------------------------------------------
/// TODO: Document equation
//--------------------------------------------------------------------------------------------------
void RigFractureTransCalc::computeTransmissibilityFromPolygonWithInfiniteConductivityInFracture()
std::vector<RigFracturedEclipseCellExportData> RigFractureTransCalc::computeTransmissibilityFromPolygonWithInfiniteConductivityInFracture()
{
if (m_fracture->attachedFractureDefinition()->fractureConductivity == RimFractureTemplate::FINITE_CONDUCTIVITY)
{
@@ -242,7 +242,7 @@ void RigFractureTransCalc::computeTransmissibilityFromPolygonWithInfiniteConduct
}
m_fracture->setFractureData(fracDataVec);
return fracDataVec;
}
@@ -526,23 +526,26 @@ double RigFractureTransCalc::arithmeticAverage(std::vector<double> values)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigFractureTransCalc::computeUpscaledPropertyFromStimPlan( QString resultName, QString resultUnit, size_t timeStepIndex)
std::vector<RigFracturedEclipseCellExportData> RigFractureTransCalc::computeUpscaledPropertyFromStimPlan( QString resultName, QString resultUnit, size_t timeStepIndex)
{
std::vector<RigFracturedEclipseCellExportData> fracDataVec;
RimStimPlanFractureTemplate* fracTemplateStimPlan;
if (dynamic_cast<RimStimPlanFractureTemplate*>(m_fracture->attachedFractureDefinition()))
{
fracTemplateStimPlan = dynamic_cast<RimStimPlanFractureTemplate*>(m_fracture->attachedFractureDefinition());
}
else return;
else
{
return fracDataVec;
}
std::vector<std::vector<cvf::Vec3d> > stimPlanCellsAsPolygons;
std::vector<double> stimPlanParameterValues;
fracTemplateStimPlan->getStimPlanDataAsPolygonsAndValues(stimPlanCellsAsPolygons, stimPlanParameterValues, resultName, resultUnit, timeStepIndex);
//TODO: A lot of common code with function above... Can be cleaned up...?
std::vector<size_t> fracCells = m_fracture->getPotentiallyFracturedCells();
RigEclipseCaseData* eclipseCaseData = m_case->eclipseCaseData();
@@ -550,11 +553,8 @@ void RigFractureTransCalc::computeUpscaledPropertyFromStimPlan( QString resultNa
RimReservoirCellResultsStorage* gridCellResults = m_case->results(porosityModel);
RigActiveCellInfo* activeCellInfo = eclipseCaseData->activeCellInfo(porosityModel);
std::vector<RigFracturedEclipseCellExportData> fracDataVec;
for (size_t fracCell : fracCells)
{
RigFracturedEclipseCellExportData fracData;
fracData.reservoirCellIndex = fracCell;
@@ -572,13 +572,7 @@ void RigFractureTransCalc::computeUpscaledPropertyFromStimPlan( QString resultNa
}
}
//TODO: Hvis fracture allerede har en s<>nn vektor, trenger vi vel ikke en til for RigFractureTransCalc...?
//Trenger bare funksjoner for <20> sette / hente ut data for en gitt Eclipse celle...
m_fracture->setFractureData(fracDataVec);
return fracDataVec;
}

View File

@@ -31,6 +31,7 @@
#include <vector>
#include <QString>
#include "RigFracture.h"
class RimFracture;
class RimEclipseCase;
@@ -47,11 +48,11 @@ public:
explicit RigFractureTransCalc(RimEclipseCase* caseToApply, RimFracture* fracture);
// Calculations based on fracture polygon and eclipse grid cells
void computeTransmissibilityFromPolygonWithInfiniteConductivityInFracture();
std::vector<RigFracturedEclipseCellExportData> computeTransmissibilityFromPolygonWithInfiniteConductivityInFracture();
// Functions needed for upscaling from StimPlan grid to Eclipse Grid, for transmissibility calculations on eclipse grid
// Obsolete if final calculations will be done on the stimPlan grid
void computeUpscaledPropertyFromStimPlan(QString resultName, QString resultUnit, size_t timeStepIndex);
std::vector<RigFracturedEclipseCellExportData> computeUpscaledPropertyFromStimPlan(QString resultName, QString resultUnit, size_t timeStepIndex);
// Calculations based on StimPlan grid
static double computeStimPlanCellTransmissibilityInFracture(double conductivity, double sideLengthParallellTrans, double sideLengthNormalTrans);