From e47f2e6317c04a776d9af83acc443af499585f55 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Fri, 8 Nov 2013 10:34:05 +0100 Subject: [PATCH] Performance: Added OpenMP to mock models --- .../RigReservoirBuilderMock.cpp | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/ApplicationCode/ReservoirDataModel/RigReservoirBuilderMock.cpp b/ApplicationCode/ReservoirDataModel/RigReservoirBuilderMock.cpp index 7c1f5a203e..d99f6d1a2d 100644 --- a/ApplicationCode/ReservoirDataModel/RigReservoirBuilderMock.cpp +++ b/ApplicationCode/ReservoirDataModel/RigReservoirBuilderMock.cpp @@ -135,10 +135,14 @@ void RigReservoirBuilderMock::appendCubeNodes(const cvf::Vec3d& min, const cvf:: void RigReservoirBuilderMock::appendCells(size_t nodeStartIndex, size_t cellCount, RigGridBase* hostGrid, std::vector& cells) { size_t activeCellIndex = 0; - size_t i; - for (i = 0; i < cellCount; i++) + long long i; + + cells.resize(cellCount); + +#pragma omp parallel for + for (i = 0; i < static_cast(cellCount); i++) { - RigCell riCell; + RigCell& riCell = cells[i]; riCell.setHostGrid(hostGrid); riCell.setCellIndex(i); @@ -165,8 +169,6 @@ void RigReservoirBuilderMock::appendCells(size_t nodeStartIndex, size_t cellCoun riCell.setActiveIndexInMatrixModel(activeCellIndex++); } */ - - cells.push_back(riCell); } } @@ -348,13 +350,15 @@ bool RigReservoirBuilderMock::dynamicResult(RigCaseData* eclipseCase, const QStr double scaleValue = 1.0 + resultIndex * 0.1; double offsetValue = 100 * resultIndex; - size_t k; - for (k = 0; k < eclipseCase->mainGrid()->cells().size(); k++) + values->resize(eclipseCase->mainGrid()->cells().size()); + +#pragma omp parallel for + for (long long k = 0; k < static_cast(eclipseCase->mainGrid()->cells().size()); k++) { RigCell& cell = eclipseCase->mainGrid()->cells()[k]; { double val = offsetValue + scaleValue * ( (stepIndex * 1000 + k) % eclipseCase->mainGrid()->cells().size() ); - values->push_back(val); + values->at(k) = val; } }