diff --git a/dumux/discretization/cellcentered/mpfa/localassemblerbase.hh b/dumux/discretization/cellcentered/mpfa/localassemblerbase.hh index 3939f1f1cdca93fa4d535190350c566c611df088..d1f76822045bee375b184231750d97a46361392e 100644 --- a/dumux/discretization/cellcentered/mpfa/localassemblerbase.hh +++ b/dumux/discretization/cellcentered/mpfa/localassemblerbase.hh @@ -57,9 +57,11 @@ class InteractionVolumeAssemblerBase using Problem = P; using FVElementGeometry = EG; using ElementVolumeVariables = EV; - using Helper = InteractionVolumeAssemblerHelper; + template< class IV > + using Scalar = typename IV::Traits::MatVecTraits::FaceVector::value_type; + public: /*! * \brief The constructor. @@ -97,9 +99,9 @@ class InteractionVolumeAssemblerBase * \param getT Lambda to evaluate the scv-wise tensors */ template< class DataHandle, class IV, class TensorFunc > - void assembleMatrices(DataHandle& handle, IV& iv, const TensorFunc& getT) + void assembleMatrices(DataHandle& handle, IV& iv, const TensorFunc& getT, Scalar<IV> wijZeroThresh = 0.0) { - DUNE_THROW(Dune::NotImplemented, "Implementation does not provide a assembleMatrices() function"); + DUNE_THROW(Dune::NotImplemented, "Implementation does not provide an assembleMatrices() function"); } /*! @@ -116,7 +118,7 @@ class InteractionVolumeAssemblerBase template< class DataHandle, class IV, class GetU > void assembleU(DataHandle& handle, const IV& iv, const GetU& getU) { - DUNE_THROW(Dune::NotImplemented, "Implementation does not provide a assemble() function for the cell/Dirichlet unknowns"); + DUNE_THROW(Dune::NotImplemented, "Implementation does not provide an assemble() function for the cell/Dirichlet unknowns"); } /*! diff --git a/dumux/discretization/cellcentered/mpfa/omethod/localassembler.hh b/dumux/discretization/cellcentered/mpfa/omethod/localassembler.hh index bb5cf6a7fc73c368e4bd762842bfff840fb66083..52b287045f09f45a8563e8398626770f2542722f 100644 --- a/dumux/discretization/cellcentered/mpfa/omethod/localassembler.hh +++ b/dumux/discretization/cellcentered/mpfa/omethod/localassembler.hh @@ -258,7 +258,7 @@ private: if (otherLocalDofIdx == curLocalDofIdx) { - if (abs(wijk[faceIdx][0][localDir]) < wijZeroThresh) + if (abs(wijk[faceIdx][0][localDir]) <= wijZeroThresh) { if (!curIsDirichlet) { @@ -322,7 +322,7 @@ private: // check for zero transmissibilities (skip if inside has been zero already) if (otherLocalDofIdx == curLocalDofIdx && !insideZeroWij) - if (abs(wijk[faceIdx][idxOnScvf][localDir]) < wijZeroThresh) + if (abs(wijk[faceIdx][idxOnScvf][localDir]) <= wijZeroThresh) faceMarkers.emplace_back( std::make_pair(curLocalDofIdx, faceIdx) ); if (!otherLocalScvf.isDirichlet())