mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Result Divided by Area: Establish concept used to compute flow velocity and normalized trans (#7349)
* Geometry Tools : Add convenience functions for polygon area * #7232 Result Divided by Area: Add cell face result and show in GUI Native support for flow rate is given by mass rate (mass per time) over a cell face. Add a derived result that takes flow rate divided by cell face area to get velocity (distance per time). Add support for this concept on relevant native results, and indicate this result type in UI using a "/A" postfix * Speed up divided-by-area calculations by using openmp * Some refactoring of result data access. * Make sure NNC data is scaled correctly in vector flow viz. Co-authored-by: jonjenssen <jon@soundsoft.no>
This commit is contained in:
@@ -96,12 +96,10 @@ public:
|
||||
QString resultVariableUiName() const;
|
||||
QString resultVariableUiShortName() const;
|
||||
|
||||
QString diffResultUiName() const;
|
||||
QString diffResultUiShortName() const;
|
||||
QString diffResultUiShortNameHTML() const;
|
||||
|
||||
int timeLapseBaseTimeStep() const;
|
||||
int caseDiffIndex() const;
|
||||
void enableDeltaResults( bool enable );
|
||||
int timeLapseBaseTimeStep() const;
|
||||
int caseDiffIndex() const;
|
||||
QString additionalResultText() const;
|
||||
|
||||
void loadResult();
|
||||
RigEclipseResultAddress eclipseResultAddress() const;
|
||||
@@ -127,8 +125,6 @@ public:
|
||||
|
||||
void updateUiFieldsFromActiveResult();
|
||||
|
||||
void setDiffResultOptionsEnabled( bool enabled );
|
||||
|
||||
bool hasDualPorFractureResult();
|
||||
|
||||
static QList<caf::PdmOptionItemInfo> calcOptionsForVariableUiFieldStandard( RiaDefines::ResultCatType resultCatType,
|
||||
@@ -162,11 +158,8 @@ protected:
|
||||
caf::PdmField<caf::AppEnum<RiaDefines::ResultCatType>> m_resultType;
|
||||
caf::PdmField<caf::AppEnum<RiaDefines::PorosityModelType>> m_porosityModel;
|
||||
caf::PdmField<QString> m_resultVariable;
|
||||
caf::PdmField<int> m_timeLapseBaseTimestep;
|
||||
caf::PdmField<QString> m_inputPropertyFileName;
|
||||
|
||||
caf::PdmPtrField<RimEclipseCase*> m_differenceCase;
|
||||
|
||||
caf::PdmPtrField<RimFlowDiagSolution*> m_flowSolution;
|
||||
caf::PdmField<std::vector<QString>> m_selectedInjectorTracers;
|
||||
caf::PdmField<std::vector<QString>> m_selectedProducerTracers;
|
||||
@@ -207,6 +200,10 @@ private:
|
||||
bool operator()( const QString& lhs, const QString& rhs ) const;
|
||||
};
|
||||
|
||||
caf::PdmField<int> m_timeLapseBaseTimestep;
|
||||
caf::PdmPtrField<RimEclipseCase*> m_differenceCase;
|
||||
caf::PdmField<bool> m_divideByCellFaceArea;
|
||||
|
||||
private:
|
||||
void assignFlowSolutionFromCase();
|
||||
|
||||
@@ -232,22 +229,26 @@ private:
|
||||
void syncInjectorToProducerSelection();
|
||||
void syncProducerToInjectorSelection();
|
||||
|
||||
bool enableDiffResultOptions() const;
|
||||
bool isTimeDiffResultAvailable() const;
|
||||
bool isTimeDiffResult() const;
|
||||
bool isCaseDiffResultAvailable() const;
|
||||
bool isCaseDiffResult() const;
|
||||
// Delta Case / Delta Time Step / Divide by Cell Face Area
|
||||
bool isDeltaResultEnabled() const;
|
||||
bool isDeltaCasePossible() const;
|
||||
bool isDeltaCaseActive() const;
|
||||
bool isDeltaTimeStepPossible() const;
|
||||
bool isDeltaTimeStepActive() const;
|
||||
bool isDivideByCellFaceAreaPossible() const;
|
||||
bool isDivideByCellFaceAreaActive() const;
|
||||
|
||||
QString additionalResultTextShort() const;
|
||||
|
||||
bool showDerivedResultsFirstInVariableUiField() const;
|
||||
bool addPerCellFaceOptionsForVariableUiField() const;
|
||||
|
||||
void ensureProcessingOfObsoleteFields();
|
||||
bool isTernaryEnabled() const;
|
||||
|
||||
QString getInputPropertyFileName( const QString& resultName ) const;
|
||||
|
||||
private:
|
||||
bool m_diffResultOptionsEnabled;
|
||||
bool m_isDeltaResultEnabled;
|
||||
caf::PdmUiItemInfo::LabelPosType m_labelPosition;
|
||||
bool m_ternaryEnabled;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user