From 477acf0c6ccb0e95cec7072b35ee7a9ec4353d62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atgeirr=20Fl=C3=B8=20Rasmussen?= Date: Thu, 27 Oct 2022 09:56:01 +0200 Subject: [PATCH] Add interface for updating stored parameters in linearizers. Implement for the TpfaLinearizer to update transmissibilities. --- .../discretization/common/fvbaselinearizer.hh | 5 +++++ .../discretization/common/tpfalinearizer.hh | 21 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/opm/models/discretization/common/fvbaselinearizer.hh b/opm/models/discretization/common/fvbaselinearizer.hh index 855021434..d0e2c55a4 100644 --- a/opm/models/discretization/common/fvbaselinearizer.hh +++ b/opm/models/discretization/common/fvbaselinearizer.hh @@ -282,6 +282,11 @@ public: return linearizationType_; }; + void updateDiscretizationParameters() + { + // This linearizer stores no such parameters. + } + /*! * \brief Returns the map of constraint degrees of freedom. * diff --git a/opm/models/discretization/common/tpfalinearizer.hh b/opm/models/discretization/common/tpfalinearizer.hh index ae13410c2..6b8b2ea48 100644 --- a/opm/models/discretization/common/tpfalinearizer.hh +++ b/opm/models/discretization/common/tpfalinearizer.hh @@ -265,6 +265,11 @@ public: return linearizationType_; }; + void updateDiscretizationParameters() + { + updateStoredTransmissibilities(); + } + /*! * \brief Returns the map of constraint degrees of freedom. * @@ -498,6 +503,22 @@ private: } } + void updateStoredTransmissibilities() + { + unsigned numCells = model_().numTotalDof(); +#ifdef _OPENMP +#pragma omp parallel for +#endif + for (unsigned globI = 0; globI < numCells; globI++) { + auto nbInfos = neighborInfo_[globI]; // nbInfos will be a SparseTable<...>::mutable_iterator_range. + for (auto& nbInfo : nbInfos) { + unsigned globJ = nbInfo.neighbor; + nbInfo.trans = problem_().transmissibility(globI, globJ); + } + } + } + + Simulator *simulatorPtr_; // the jacobian matrix