mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1139 - pre-proto - Reading in all parameters available in StimPlan file.
This commit is contained in:
parent
a10b96ba3e
commit
e971c5276d
@ -151,7 +151,6 @@ void RimStimPlanFractureTemplate::readStimPlanXMLFile(QString * errorMessage)
|
|||||||
m_stimPlanFractureDefinitionData = new RigStimPlanFractureDefinition;
|
m_stimPlanFractureDefinitionData = new RigStimPlanFractureDefinition;
|
||||||
{
|
{
|
||||||
QFile dataFile(m_stimPlanFileName());
|
QFile dataFile(m_stimPlanFileName());
|
||||||
|
|
||||||
if (!dataFile.open(QFile::ReadOnly))
|
if (!dataFile.open(QFile::ReadOnly))
|
||||||
{
|
{
|
||||||
if (errorMessage) (*errorMessage) += "Could not open the File: " + (m_stimPlanFileName()) + "\n";
|
if (errorMessage) (*errorMessage) += "Could not open the File: " + (m_stimPlanFileName()) + "\n";
|
||||||
@ -167,9 +166,7 @@ void RimStimPlanFractureTemplate::readStimPlanXMLFile(QString * errorMessage)
|
|||||||
qDebug() << "Error: Failed to parse file " << dataFile.fileName();
|
qDebug() << "Error: Failed to parse file " << dataFile.fileName();
|
||||||
qDebug() << xmlStream.errorString();
|
qDebug() << xmlStream.errorString();
|
||||||
}
|
}
|
||||||
|
|
||||||
dataFile.close();
|
dataFile.close();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t numberOfDepthValues;
|
size_t numberOfDepthValues;
|
||||||
@ -177,12 +174,13 @@ void RimStimPlanFractureTemplate::readStimPlanXMLFile(QString * errorMessage)
|
|||||||
size_t numberOfTimeSteps;
|
size_t numberOfTimeSteps;
|
||||||
numberOfTimeSteps = m_stimPlanFractureDefinitionData->timeSteps.size();
|
numberOfTimeSteps = m_stimPlanFractureDefinitionData->timeSteps.size();
|
||||||
|
|
||||||
std::vector<std::vector<std::vector<double>>> condValues(numberOfTimeSteps);
|
|
||||||
m_stimPlanFractureDefinitionData->conductivities = condValues;
|
// std::vector<std::vector<std::vector<double>>> condValues(numberOfTimeSteps);
|
||||||
std::vector<std::vector<std::vector<double>>> widthValues(numberOfTimeSteps);
|
// m_stimPlanFractureDefinitionData->conductivities = condValues;
|
||||||
m_stimPlanFractureDefinitionData->widths = widthValues;
|
// std::vector<std::vector<std::vector<double>>> widthValues(numberOfTimeSteps);
|
||||||
std::vector<std::vector<std::vector<double>>> permValues(numberOfTimeSteps);
|
// m_stimPlanFractureDefinitionData->widths = widthValues;
|
||||||
m_stimPlanFractureDefinitionData->permeabilities = permValues;
|
// std::vector<std::vector<std::vector<double>>> permValues(numberOfTimeSteps);
|
||||||
|
// m_stimPlanFractureDefinitionData->permeabilities = permValues;
|
||||||
|
|
||||||
//Start reading from top:
|
//Start reading from top:
|
||||||
QFile dataFile(m_stimPlanFileName());
|
QFile dataFile(m_stimPlanFileName());
|
||||||
@ -221,32 +219,9 @@ void RimStimPlanFractureTemplate::readStimPlanXMLFile(QString * errorMessage)
|
|||||||
{
|
{
|
||||||
qDebug() << "Inconsistency detected in reading XML file!";
|
qDebug() << "Inconsistency detected in reading XML file!";
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t timeStepIndex = m_stimPlanFractureDefinitionData->getTimeStepIndex(timeStepValue);
|
m_stimPlanFractureDefinitionData->setDataAtTimeValue(parameter, unit, propertyValuesAtTimestep, timeStepValue);
|
||||||
if (parameter == "CONDUCTIVITY")
|
|
||||||
{
|
|
||||||
m_stimPlanFractureDefinitionData->conductivities[timeStepIndex]=propertyValuesAtTimestep;
|
|
||||||
if (unit == "md-m" || unit == "md-ft")
|
|
||||||
{
|
|
||||||
m_stimPlanFractureDefinitionData->conductivityUnit = unit;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
qDebug() << "Unsupported units in StimPlan file. Reading of file not completed";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (parameter == "PERMEABILITY")
|
|
||||||
{
|
|
||||||
m_stimPlanFractureDefinitionData->permeabilities[timeStepIndex] = propertyValuesAtTimestep;
|
|
||||||
m_stimPlanFractureDefinitionData->permeabilityUnit = unit;
|
|
||||||
}
|
|
||||||
else if (parameter == "WIDTH")
|
|
||||||
{
|
|
||||||
m_stimPlanFractureDefinitionData->widths[timeStepIndex] = propertyValuesAtTimestep;
|
|
||||||
m_stimPlanFractureDefinitionData->widthUnit = unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -265,13 +240,6 @@ void RimStimPlanFractureTemplate::readStimPlanXMLFile(QString * errorMessage)
|
|||||||
qDebug() << dataFile.errorString();
|
qDebug() << dataFile.errorString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Setting unit for fracture template
|
|
||||||
if (m_stimPlanFractureDefinitionData->conductivityUnit.isEmpty())
|
|
||||||
{
|
|
||||||
if (m_stimPlanFractureDefinitionData->conductivityUnit == "md-m") fractureTemplateUnit = RimDefines::UNITS_METRIC;
|
|
||||||
if (m_stimPlanFractureDefinitionData->conductivityUnit == "md-ft") fractureTemplateUnit = RimDefines::UNITS_FIELD;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -582,7 +550,7 @@ std::vector<double> RimStimPlanFractureTemplate::getStimPlanTimeValues()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
std::vector<std::vector<double>> RimStimPlanFractureTemplate::getConductivitiesAtTimeStep(size_t timStep)
|
std::vector<std::vector<double>> RimStimPlanFractureTemplate::getConductivitiesAtTimeStep(size_t timStep)
|
||||||
{
|
{
|
||||||
return m_stimPlanFractureDefinitionData->conductivities[timStep];
|
return m_stimPlanFractureDefinitionData->getDataAtTimeIndex("CONDUCTIVITY", timStep);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -590,7 +558,7 @@ std::vector<std::vector<double>> RimStimPlanFractureTemplate::getConductivitiesA
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
std::vector<std::vector<double>> RimStimPlanFractureTemplate::getPermeabilitiesAtTimeStep(size_t timStep)
|
std::vector<std::vector<double>> RimStimPlanFractureTemplate::getPermeabilitiesAtTimeStep(size_t timStep)
|
||||||
{
|
{
|
||||||
return m_stimPlanFractureDefinitionData->permeabilities[timStep];
|
return m_stimPlanFractureDefinitionData->getDataAtTimeIndex("PERMEABILITY", timStep);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -598,7 +566,7 @@ std::vector<std::vector<double>> RimStimPlanFractureTemplate::getPermeabilitiesA
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
std::vector<std::vector<double>> RimStimPlanFractureTemplate::getWidthsAtTimeStep(size_t timStep)
|
std::vector<std::vector<double>> RimStimPlanFractureTemplate::getWidthsAtTimeStep(size_t timStep)
|
||||||
{
|
{
|
||||||
return m_stimPlanFractureDefinitionData->widths[timStep];
|
return m_stimPlanFractureDefinitionData->getDataAtTimeIndex("WIDTH", timStep);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -63,7 +63,7 @@ public:
|
|||||||
std::vector<double> adjustedDepthCoordsAroundWellPathPosition();
|
std::vector<double> adjustedDepthCoordsAroundWellPathPosition();
|
||||||
std::vector<double> getStimPlanTimeValues();
|
std::vector<double> getStimPlanTimeValues();
|
||||||
|
|
||||||
|
//TODO: Remove!!!
|
||||||
std::vector<std::vector<double>> getConductivitiesAtTimeStep(size_t timStep);
|
std::vector<std::vector<double>> getConductivitiesAtTimeStep(size_t timStep);
|
||||||
std::vector<std::vector<double>> getPermeabilitiesAtTimeStep(size_t timStep);
|
std::vector<std::vector<double>> getPermeabilitiesAtTimeStep(size_t timStep);
|
||||||
std::vector<std::vector<double>> getWidthsAtTimeStep(size_t timStep);
|
std::vector<std::vector<double>> getWidthsAtTimeStep(size_t timStep);
|
||||||
|
@ -18,6 +18,17 @@
|
|||||||
|
|
||||||
#include "RigStimPlanFractureDefinition.h"
|
#include "RigStimPlanFractureDefinition.h"
|
||||||
|
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RigStimPlanData::RigStimPlanData()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -76,6 +87,57 @@ size_t RigStimPlanFractureDefinition::getTimeStepIndex(double timeStepValue)
|
|||||||
return -1; //returns -1 if not found
|
return -1; //returns -1 if not found
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RigStimPlanFractureDefinition::setDataAtTimeValue(QString resultName, QString unit, std::vector<std::vector<double>> data, double timeStepValue)
|
||||||
|
{
|
||||||
|
bool resultNameExists = false;
|
||||||
|
for (RigStimPlanData& resultData : stimPlanData)
|
||||||
|
{
|
||||||
|
if (resultData.resultName == resultName)
|
||||||
|
{
|
||||||
|
resultNameExists = true;
|
||||||
|
resultData.parameterValues[getTimeStepIndex(timeStepValue)] = data;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!resultNameExists)
|
||||||
|
{
|
||||||
|
RigStimPlanData resultData;
|
||||||
|
|
||||||
|
resultData.resultName = resultName;
|
||||||
|
resultData.unit = unit;
|
||||||
|
|
||||||
|
std::vector<std::vector<std::vector<double>>> values(timeSteps.size());
|
||||||
|
resultData.parameterValues = values;
|
||||||
|
resultData.parameterValues[getTimeStepIndex(timeStepValue)] = data;
|
||||||
|
|
||||||
|
stimPlanData.push_back(resultData);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
std::vector<std::vector<double>> RigStimPlanFractureDefinition::getDataAtTimeIndex(QString resultName, size_t timeStepIndex)
|
||||||
|
{
|
||||||
|
for (RigStimPlanData& resultData : stimPlanData)
|
||||||
|
{
|
||||||
|
if (resultData.resultName == resultName)
|
||||||
|
{
|
||||||
|
return resultData.parameterValues[timeStepIndex];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug() << "ERROR: Requested parameter does not exists in stimPlan data";
|
||||||
|
std::vector<std::vector<double>> emptyVector;
|
||||||
|
return emptyVector;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -24,6 +24,17 @@
|
|||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
class RigStimPlanData
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
RigStimPlanData();
|
||||||
|
|
||||||
|
QString resultName;
|
||||||
|
QString unit;
|
||||||
|
std::vector<std::vector<std::vector<double>>> parameterValues;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
class RigStimPlanFractureDefinition: public cvf::Object
|
class RigStimPlanFractureDefinition: public cvf::Object
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -38,6 +49,8 @@ public:
|
|||||||
std::vector<double> timeSteps;
|
std::vector<double> timeSteps;
|
||||||
std::vector<double> depths;
|
std::vector<double> depths;
|
||||||
|
|
||||||
|
|
||||||
|
std::vector<RigStimPlanData> stimPlanData;
|
||||||
//Vector for each time step, for each depth and for each x-value
|
//Vector for each time step, for each depth and for each x-value
|
||||||
std::vector<std::vector<std::vector<double>>> conductivities;
|
std::vector<std::vector<std::vector<double>>> conductivities;
|
||||||
QString conductivityUnit;
|
QString conductivityUnit;
|
||||||
@ -46,10 +59,12 @@ public:
|
|||||||
std::vector<std::vector<std::vector<double>>> permeabilities;
|
std::vector<std::vector<std::vector<double>>> permeabilities;
|
||||||
QString permeabilityUnit;
|
QString permeabilityUnit;
|
||||||
|
|
||||||
bool timeStepExisist(double timeStepValue);
|
bool timeStepExisist(double timeStepValue);
|
||||||
void reorderYgridToDepths();
|
void reorderYgridToDepths();
|
||||||
size_t getTimeStepIndex(double timeStepValue);
|
size_t getTimeStepIndex(double timeStepValue);
|
||||||
|
|
||||||
|
void setDataAtTimeValue(QString resultName, QString unit, std::vector<std::vector<double>> data, double timeStepValue);
|
||||||
|
std::vector<std::vector<double>> getDataAtTimeIndex(QString resultName, size_t timeStepIndex);
|
||||||
|
|
||||||
std::vector<QString> resultNames() const;
|
std::vector<QString> resultNames() const;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user