mirror of
				https://github.com/OPM/ResInsight.git
				synced 2025-02-25 18:55:39 -06:00 
			
		
		
		
	Added RigResultModifier
This commit is contained in:
		| @@ -16,6 +16,7 @@ ${CEE_CURRENT_LIST_DIR}RigAllGridCellsResultAccessor.h | ||||
| ${CEE_CURRENT_LIST_DIR}RigActiveCellsResultAccessor.h | ||||
| ${CEE_CURRENT_LIST_DIR}RigCellEdgeResultAccessor.h | ||||
| ${CEE_CURRENT_LIST_DIR}RigCombTransResultAccessor.h | ||||
| ${CEE_CURRENT_LIST_DIR}RigResultModifier.h | ||||
| ${CEE_CURRENT_LIST_DIR}RigLocalGrid.h | ||||
| ${CEE_CURRENT_LIST_DIR}RigMainGrid.h | ||||
| ${CEE_CURRENT_LIST_DIR}RigReservoirBuilderMock.h | ||||
|   | ||||
							
								
								
									
										88
									
								
								ApplicationCode/ReservoirDataModel/RigResultModifier.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								ApplicationCode/ReservoirDataModel/RigResultModifier.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,88 @@ | ||||
| ///////////////////////////////////////////////////////////////////////////////// | ||||
| // | ||||
| //  Copyright (C) Statoil ASA, Ceetron Solutions AS | ||||
| //  | ||||
| //  ResInsight is free software: you can redistribute it and/or modify | ||||
| //  it under the terms of the GNU General Public License as published by | ||||
| //  the Free Software Foundation, either version 3 of the License, or | ||||
| //  (at your option) any later version. | ||||
| //  | ||||
| //  ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY | ||||
| //  WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
| //  FITNESS FOR A PARTICULAR PURPOSE. | ||||
| //  | ||||
| //  See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>  | ||||
| //  for more details. | ||||
| // | ||||
| ///////////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
|  | ||||
| //================================================================================================== | ||||
| ///  | ||||
| //================================================================================================== | ||||
| class RigResultModifier : public cvf::Object | ||||
| { | ||||
| public: | ||||
|     virtual void setCellScalar(size_t gridLocalCellIndex, double scalarValue) = 0; | ||||
| }; | ||||
|  | ||||
|  | ||||
|  | ||||
| //================================================================================================== | ||||
| ///  | ||||
| //================================================================================================== | ||||
| class RigAllGridCellsResultModifier : public RigResultModifier | ||||
| { | ||||
| public: | ||||
|     RigAllGridCellsResultModifier(const RigGridBase* grid, std::vector<double>* reservoirResultValues) | ||||
|         : m_grid(grid), | ||||
|         m_reservoirResultValues(reservoirResultValues) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     virtual void setCellScalar(size_t gridLocalCellIndex, double scalarValue) | ||||
|     { | ||||
|         size_t globalGridCellIndex = m_grid->globalGridCellIndex(gridLocalCellIndex); | ||||
|         CVF_TIGHT_ASSERT(globalGridCellIndex < m_reservoirResultValues->size()); | ||||
|  | ||||
|         (*m_reservoirResultValues)[globalGridCellIndex] = scalarValue; | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     const RigGridBase*      m_grid; | ||||
|     std::vector<double>*    m_reservoirResultValues; | ||||
| }; | ||||
|  | ||||
|  | ||||
| //================================================================================================== | ||||
| ///  | ||||
| //================================================================================================== | ||||
| class RigActiveCellsResultModifier : public RigResultModifier | ||||
| { | ||||
| public: | ||||
|     RigActiveCellsResultModifier(const RigGridBase* grid, std::vector<double>* reservoirResultValues, const RigActiveCellInfo* activeCellInfo) | ||||
|         : m_grid(grid), | ||||
|         m_reservoirResultValues(reservoirResultValues), | ||||
|         m_activeCellInfo(activeCellInfo) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     virtual void setCellScalar(size_t gridLocalCellIndex, double scalarValue) | ||||
|     { | ||||
|         size_t globalGridCellIndex = m_grid->globalGridCellIndex(gridLocalCellIndex); | ||||
|         size_t resultValueIndex = m_activeCellInfo->cellResultIndex(globalGridCellIndex); | ||||
|  | ||||
|         CVF_TIGHT_ASSERT(m_reservoirResultValues != NULL && resultValueIndex < m_reservoirResultValues->size()); | ||||
|  | ||||
|         (*m_reservoirResultValues)[resultValueIndex] = scalarValue; | ||||
|     } | ||||
|  | ||||
|  | ||||
| private: | ||||
|     const RigActiveCellInfo*    m_activeCellInfo; | ||||
|     const RigGridBase*          m_grid; | ||||
|     std::vector<double>*        m_reservoirResultValues; | ||||
| }; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user