#3807 Initial implementation of GeoMech contour maps.

This commit is contained in:
Gaute Lindkvist
2019-01-16 10:51:43 +01:00
parent aed0de8a2b
commit 1f754f2b63
34 changed files with 2108 additions and 525 deletions

View File

@@ -62,18 +62,20 @@ protected:
typedef RimContourMapProjection::CellIndexAndResult CellIndexAndResult;
void updateGridInformation() override;
void generateGridMapping() override;
std::vector<double> retrieveParameterWeights() override;
void generateResults(int timeStep) override;
bool gridMappingImplNeedsUpdating() const override;
bool resultsImplNeedsUpdating() const override;
void clearImplSpecificResultData() override;
bool resultVariableChanged() const override;
void clearResultVariable() override;
RimGridView* baseView() const override;
std::vector<size_t> findIntersectingCells(const cvf::BoundingBox& bbox) const override;
double calculateOverlapVolume(size_t globalCellIdx, const cvf::BoundingBox& bbox, size_t* cellKLayerOut) const override;
double calculateRayLengthInCell(size_t globalCellIdx, const cvf::Vec3d& highestPoint, const cvf::Vec3d& lowestPoint, size_t* cellKLayerOut) const override;
double getParameterWeightForCell(size_t globalCellIdx, const std::vector<double>& parameterWeights) const override;
double gridCellValue(size_t globalCellIdx) const override;
// Eclipse implementation specific data generation methods
double calculateValueInCell(uint i, uint j) const;
double calculateValueInMapCell(uint i, uint j) const;
double calculateColumnResult(ResultAggregation resultAggregation, size_t cellGlobalIdx) const;
std::vector<CellIndexAndResult> visibleCellsAndOverlapVolumeFrom2dPoint(const cvf::Vec2d& globalPos2d, const std::vector<double>* weightingResultValues = nullptr) const;
std::vector<CellIndexAndResult> visibleCellsAndLengthInCellFrom2dPoint(const cvf::Vec2d& globalPos2d, const std::vector<double>* weightingResultValues = nullptr) const;
RimEclipseResultCase* eclipseCase() const;
RimEclipseContourMapView* view() const;
@@ -89,11 +91,8 @@ protected:
caf::PdmField<bool> m_weightByParameter;
caf::PdmChildField<RimEclipseResultDefinition*> m_weightingResult;
cvf::ref<cvf::UByteArray> m_cellGridIdxVisibility;
cvf::ref<RigResultAccessor> m_resultAccessor;
caf::PdmPointer<RimEclipseResultCase> m_eclipseCase;
cvf::ref<RigMainGrid> m_mainGrid;
QString m_currentResultName;
};