mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1487 Remove vector<FractureData> from RigFracture
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user