mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1836 Add region selection threshold fields
This commit is contained in:
parent
fa943226bc
commit
c736e10ad5
@ -93,6 +93,8 @@ RimFlowCharacteristicsPlot::RimFlowCharacteristicsPlot()
|
||||
CAF_PDM_InitFieldNoDefault(&m_selectedTracerNames, "SelectedTracerNames", " ", "", "", "");
|
||||
m_selectedTracerNames.uiCapability()->setUiEditorTypeName(caf::PdmUiListEditor::uiEditorTypeName());
|
||||
CAF_PDM_InitFieldNoDefault(&m_showRegion, "ShowRegion", "", "", "", "");
|
||||
CAF_PDM_InitField(&m_minCommunication, "MinCommunication", 0.0, "Min Communication", "", "", "");
|
||||
CAF_PDM_InitField(&m_maxTof, "MaxTof", 146000, "Max Time of Flight [days]", "", "", "");
|
||||
m_showRegion.xmlCapability()->setIOWritable(false);
|
||||
m_showRegion.xmlCapability()->setIOReadable(false);
|
||||
m_showRegion.uiCapability()->setUiEditorTypeName(caf::PdmUiPushButtonEditor::uiEditorTypeName());
|
||||
@ -363,6 +365,16 @@ void RimFlowCharacteristicsPlot::defineUiOrdering(QString uiConfigName, caf::Pdm
|
||||
{
|
||||
regionGroup->add(&m_cellFilterView);
|
||||
}
|
||||
|
||||
if (m_cellFilter() == RigFlowDiagResults::CELLS_COMMUNICATION)
|
||||
{
|
||||
regionGroup->add(&m_minCommunication);
|
||||
}
|
||||
else if (m_cellFilter() == RigFlowDiagResults::CELLS_DRAINED ||
|
||||
m_cellFilter() == RigFlowDiagResults::CELLS_FLOODED)
|
||||
{
|
||||
regionGroup->add(&m_maxTof);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
@ -602,7 +614,12 @@ void RimFlowCharacteristicsPlot::loadDataAndUpdate()
|
||||
}
|
||||
else
|
||||
{
|
||||
auto flowCharResults = flowResult->flowCharacteristicsResults(timeStepIdx, m_cellFilter(), selectedTracerNames, m_maxPvFraction());
|
||||
auto flowCharResults = flowResult->flowCharacteristicsResults(timeStepIdx,
|
||||
m_cellFilter(),
|
||||
selectedTracerNames,
|
||||
m_maxPvFraction(),
|
||||
m_minCommunication(),
|
||||
m_maxTof());
|
||||
timeStepToFlowResultMap[timeStepIdx] = flowCharResults;
|
||||
}
|
||||
lorenzVals[timeStepIdx] = timeStepToFlowResultMap[timeStepIdx].m_lorenzCoefficient;
|
||||
|
@ -104,6 +104,9 @@ private:
|
||||
caf::PdmField< std::vector<QString> > m_selectedTracerNames;
|
||||
caf::PdmField<bool> m_showRegion;
|
||||
|
||||
caf::PdmField<double> m_minCommunication;
|
||||
caf::PdmField<int> m_maxTof;
|
||||
|
||||
std::vector<int> m_currentlyPlottedTimeSteps;
|
||||
|
||||
QPointer<RiuFlowCharacteristicsPlot> m_flowCharPlotWidget;
|
||||
|
@ -695,7 +695,9 @@ std::vector<int> RigFlowDiagResults::calculatedTimeSteps(RigFlowDiagResultAddres
|
||||
RigFlowDiagSolverInterface::FlowCharacteristicsResultFrame RigFlowDiagResults::flowCharacteristicsResults(int frameIndex,
|
||||
CellFilter cellSelection,
|
||||
const std::vector<QString>& tracerNames,
|
||||
double max_pv_fraction)
|
||||
double max_pv_fraction,
|
||||
double minCommunication,
|
||||
int maxTof)
|
||||
{
|
||||
std::set<std::string> injectorNames;
|
||||
std::set<std::string> producerNames;
|
||||
@ -734,7 +736,7 @@ RigFlowDiagSolverInterface::FlowCharacteristicsResultFrame RigFlowDiagResults::f
|
||||
|
||||
for (size_t i = 0; i < communicationResult->size(); ++i)
|
||||
{
|
||||
if (communicationResult->at(i) != HUGE_VAL && communicationResult->at(i) >= 0)
|
||||
if (communicationResult->at(i) != HUGE_VAL && communicationResult->at(i) >= minCommunication)
|
||||
{
|
||||
selectedCellIndices.push_back(i);
|
||||
if (allInjectorResults != nullptr) injectorResults.push_back(allInjectorResults->at(i));
|
||||
@ -748,7 +750,7 @@ RigFlowDiagSolverInterface::FlowCharacteristicsResultFrame RigFlowDiagResults::f
|
||||
{
|
||||
for (size_t i = 0; i < allInjectorResults->size(); ++i)
|
||||
{
|
||||
if (allInjectorResults->at(i) != HUGE_VAL)
|
||||
if (allInjectorResults->at(i) != HUGE_VAL && allInjectorResults->at(i) <= maxTof)
|
||||
{
|
||||
selectedCellIndices.push_back(i);
|
||||
injectorResults.push_back(allInjectorResults->at(i));
|
||||
@ -770,7 +772,7 @@ RigFlowDiagSolverInterface::FlowCharacteristicsResultFrame RigFlowDiagResults::f
|
||||
{
|
||||
for (size_t i = 0; i < allProducerResults->size(); ++i)
|
||||
{
|
||||
if (allProducerResults->at(i) != HUGE_VAL)
|
||||
if (allProducerResults->at(i) != HUGE_VAL && allProducerResults->at(i) <= maxTof)
|
||||
{
|
||||
selectedCellIndices.push_back(i);
|
||||
producerResults.push_back(allProducerResults->at(i));
|
||||
|
@ -84,7 +84,9 @@ public:
|
||||
RigFlowDiagSolverInterface::FlowCharacteristicsResultFrame flowCharacteristicsResults(int frameIndex,
|
||||
CellFilter cellSelection,
|
||||
const std::vector<QString>& tracerNames,
|
||||
double max_pv_fraction);
|
||||
double max_pv_fraction,
|
||||
double minCommunication,
|
||||
int maxTof);
|
||||
|
||||
RigFlowDiagSolverInterface::FlowCharacteristicsResultFrame flowCharacteristicsResults(int frameIndex,
|
||||
const std::vector<char>& visibleActiveCells,
|
||||
|
Loading…
Reference in New Issue
Block a user