mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
parent
b7b31f6c03
commit
492b777040
@ -231,11 +231,7 @@ void RimWellAllocationPlot::updateFromWell()
|
|||||||
|
|
||||||
accumulatedWellFlowPlot()->addTrack(plotTrack);
|
accumulatedWellFlowPlot()->addTrack(plotTrack);
|
||||||
|
|
||||||
std::vector<double> connNumbers;
|
std::vector<double> connNumbers = wfCalculator->connectionNumbersFromTop(brIdx);
|
||||||
{
|
|
||||||
const std::vector<size_t>& connNumbersSize_t = wfCalculator->connectionNumbersFromTop(brIdx);
|
|
||||||
for ( size_t conNumb : connNumbersSize_t ) connNumbers.push_back(static_cast<double>(conNumb));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( m_flowDiagSolution )
|
if ( m_flowDiagSolution )
|
||||||
{
|
{
|
||||||
|
@ -125,9 +125,9 @@ const std::vector<double>& RigAccWellFlowCalculator::accumulatedTracerFlowPrConn
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
const std::vector<size_t>& RigAccWellFlowCalculator::connectionNumbersFromTop(size_t branchIdx) const
|
const std::vector<double>& RigAccWellFlowCalculator::connectionNumbersFromTop(size_t branchIdx) const
|
||||||
{
|
{
|
||||||
return m_accConnectionFlowPrBranch[branchIdx].connectionNumbersFromTop;
|
return m_accConnectionFlowPrBranch[branchIdx].depthValuesFromTop;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -206,7 +206,7 @@ void RigAccWellFlowCalculator::calculateAccumulatedFlowPrConnection(size_t branc
|
|||||||
int clSegIdx = static_cast<int>(branchCells.size()) - 1;
|
int clSegIdx = static_cast<int>(branchCells.size()) - 1;
|
||||||
|
|
||||||
std::map<QString, std::vector<double> >& accConnFlowFractionsPrTracer = m_accConnectionFlowPrBranch[branchIdx].accFlowPrTracer;
|
std::map<QString, std::vector<double> >& accConnFlowFractionsPrTracer = m_accConnectionFlowPrBranch[branchIdx].accFlowPrTracer;
|
||||||
std::vector<size_t>& connNumbersFromTop = m_accConnectionFlowPrBranch[branchIdx].connectionNumbersFromTop;
|
std::vector<double>& connNumbersFromTop = m_accConnectionFlowPrBranch[branchIdx].depthValuesFromTop;
|
||||||
|
|
||||||
std::vector<double> accFlow;
|
std::vector<double> accFlow;
|
||||||
accFlow.resize(m_tracerNames.size(), 0.0);
|
accFlow.resize(m_tracerNames.size(), 0.0);
|
||||||
@ -261,10 +261,10 @@ void RigAccWellFlowCalculator::calculateAccumulatedFlowPrConnection(size_t branc
|
|||||||
std::vector<size_t> downstreamBranches = findDownstreamBranchIdxs(branchCells[clSegIdx]);
|
std::vector<size_t> downstreamBranches = findDownstreamBranchIdxs(branchCells[clSegIdx]);
|
||||||
for ( size_t dsBidx : downstreamBranches )
|
for ( size_t dsBidx : downstreamBranches )
|
||||||
{
|
{
|
||||||
if ( dsBidx != branchIdx && m_accConnectionFlowPrBranch[dsBidx].connectionNumbersFromTop.size() == 0 ) // Not this branch or already calculated
|
if ( dsBidx != branchIdx && m_accConnectionFlowPrBranch[dsBidx].depthValuesFromTop.size() == 0 ) // Not this branch or already calculated
|
||||||
{
|
{
|
||||||
calculateAccumulatedFlowPrConnection(dsBidx, connNumFromTop);
|
calculateAccumulatedFlowPrConnection(dsBidx, connNumFromTop);
|
||||||
BranchFlowPrConnection& accConnFlowFractionsDsBranch = m_accConnectionFlowPrBranch[dsBidx];
|
BranchFlow& accConnFlowFractionsDsBranch = m_accConnectionFlowPrBranch[dsBidx];
|
||||||
|
|
||||||
size_t tracerIdx = 0;
|
size_t tracerIdx = 0;
|
||||||
for ( const auto & tracerName: m_tracerNames )
|
for ( const auto & tracerName: m_tracerNames )
|
||||||
@ -412,9 +412,9 @@ void RigAccWellFlowCalculator::groupSmallContributions()
|
|||||||
|
|
||||||
// Concatenate the values for each branch, erasing the tracers being grouped, replaced with the concatenated values
|
// Concatenate the values for each branch, erasing the tracers being grouped, replaced with the concatenated values
|
||||||
|
|
||||||
for ( BranchFlowPrConnection& brRes : m_accConnectionFlowPrBranch )
|
for ( BranchFlow& brRes : m_accConnectionFlowPrBranch )
|
||||||
{
|
{
|
||||||
std::vector<double> groupedConnectionValues( brRes.connectionNumbersFromTop.size(), 0.0);
|
std::vector<double> groupedConnectionValues( brRes.depthValuesFromTop.size(), 0.0);
|
||||||
|
|
||||||
for ( const QString& tracername:tracersToGroup )
|
for ( const QString& tracername:tracersToGroup )
|
||||||
{
|
{
|
||||||
|
@ -70,7 +70,7 @@ public:
|
|||||||
|
|
||||||
const std::vector<double>& accumulatedTotalFlowPrConnection( size_t branchIdx);// const;
|
const std::vector<double>& accumulatedTotalFlowPrConnection( size_t branchIdx);// const;
|
||||||
const std::vector<double>& accumulatedTracerFlowPrConnection(const QString& tracerName, size_t branchIdx);// const;
|
const std::vector<double>& accumulatedTracerFlowPrConnection(const QString& tracerName, size_t branchIdx);// const;
|
||||||
const std::vector<size_t>& connectionNumbersFromTop(size_t branchIdx) const;
|
const std::vector<double>& connectionNumbersFromTop(size_t branchIdx) const;
|
||||||
const std::vector<QString>& tracerNames() const { return m_tracerNames;}
|
const std::vector<QString>& tracerNames() const { return m_tracerNames;}
|
||||||
|
|
||||||
std::vector<std::pair<QString, double> > totalTracerFractions();
|
std::vector<std::pair<QString, double> > totalTracerFractions();
|
||||||
@ -95,24 +95,16 @@ private:
|
|||||||
std::vector<QString> m_tracerNames;
|
std::vector<QString> m_tracerNames;
|
||||||
double m_smallContributionsThreshold;
|
double m_smallContributionsThreshold;
|
||||||
|
|
||||||
struct BranchFlowPrConnection
|
struct BranchFlow
|
||||||
{
|
{
|
||||||
std::vector<size_t> connectionNumbersFromTop;
|
std::vector<double> depthValuesFromTop;
|
||||||
std::map<QString, std::vector<double> > accFlowPrTracer;
|
std::map<QString, std::vector<double> > accFlowPrTracer;
|
||||||
std::map<QString, std::vector<double> > flowPrTracer;
|
std::map<QString, std::vector<double> > flowPrTracer;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::vector< BranchFlowPrConnection > m_accConnectionFlowPrBranch;
|
std::vector< BranchFlow > m_accConnectionFlowPrBranch;
|
||||||
|
std::vector< BranchFlow > m_accPseudoLengthFlowPrBranch;
|
||||||
struct BranchFlowPrDepth
|
std::vector< BranchFlow > m_accTvdFlowPrBranch;
|
||||||
{
|
|
||||||
std::vector<double> depthValueFromTop;
|
|
||||||
std::map<QString, std::vector<double> > accFlowPrTracer;
|
|
||||||
std::map<QString, std::vector<double> > flowPrTracer;
|
|
||||||
};
|
|
||||||
|
|
||||||
std::vector< BranchFlowPrDepth > m_accPseudoLengthFlowPrBranch;
|
|
||||||
std::vector< BranchFlowPrDepth > m_accTvdFlowPrBranch;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user