diff --git a/opm/models/blackoil/blackoilintensivequantitiessimple.hh b/opm/models/blackoil/blackoilintensivequantitiessimple.hh index a58caacfa..f4c853be1 100644 --- a/opm/models/blackoil/blackoilintensivequantitiessimple.hh +++ b/opm/models/blackoil/blackoilintensivequantitiessimple.hh @@ -133,8 +133,8 @@ public: void update(const Problem& problem,const PrimaryVariables& primaryVars,unsigned globalSpaceIdx, unsigned timeIdx) { //ParentType::update(elemCtx, dofIdx, timeIdx);//only used for extrusion factor - //const auto& materialParams = problem.materialLawParams(globalSpaceIdx); - const auto& materialParams = problem.materialLawParams(0); + const auto& materialParams = problem.materialLawParams(globalSpaceIdx); + //const auto& materialParams = problem.materialLawParams(0);//NB improve speed Scalar RvMax; if (FluidSystem::enableVaporizedOil()) { RvMax = problem.maxOilVaporizationFactor(timeIdx, globalSpaceIdx); diff --git a/opm/models/discretization/common/fvbasediscretization.hh b/opm/models/discretization/common/fvbasediscretization.hh index 38548ac5e..d7e40976c 100644 --- a/opm/models/discretization/common/fvbasediscretization.hh +++ b/opm/models/discretization/common/fvbasediscretization.hh @@ -801,11 +801,15 @@ public: { //invalidateIntensiveQuantitiesCache(timeIdx); size_t numGridDof = primaryVars.size(); +#ifdef _OPENMP +#pragma omp parallel +#endif for (unsigned dofIdx = 0; dofIdx < numGridDof; ++dofIdx) { const auto& primaryVar = primaryVars[dofIdx]; auto& intquant = intensiveQuantityCache_[timeIdx][dofIdx]; intquant.update(problem, primaryVar, dofIdx, timeIdx); } + std::fill(intensiveQuantityCacheUpToDate_[timeIdx].begin(), intensiveQuantityCacheUpToDate_[timeIdx].end(), /*value=*/true); diff --git a/opm/models/discretization/common/linearizertpfa.hh b/opm/models/discretization/common/linearizertpfa.hh index 23b2c926d..775fda956 100644 --- a/opm/models/discretization/common/linearizertpfa.hh +++ b/opm/models/discretization/common/linearizertpfa.hh @@ -453,6 +453,9 @@ private: const bool well_local = false; resetSystem_(); unsigned numCells = model_().numTotalDof(); +#ifdef _OPENMP +#pragma omp parallel +#endif for(unsigned globI = 0; globI < numCells; globI++){ const auto& neighbours = neighbours_[globI];// this is a set but should maybe be changed // accumulation term @@ -507,7 +510,6 @@ private: setResAndJacobi(res, bMat, adres); residual_[globI] += res; jacobian_->addToBlock(globI, globI, bMat); - //residual_[globJ] += res; bMat *= -1.0; jacobian_->addToBlock(globJ, globI, bMat); }