Commit 99c6d1d5 authored by Timo Koch's avatar Timo Koch
Browse files

[next] Rename GlobalFvGeometry -> FVGridGeometry

parent d4663f86
...@@ -380,7 +380,7 @@ public: ...@@ -380,7 +380,7 @@ public:
// check in which subcontrolvolume(s) we are // check in which subcontrolvolume(s) we are
// TODO mapper/problem in bboxtree would allow to make this much better // TODO mapper/problem in bboxtree would allow to make this much better
const auto element = boundingBoxTree.entity(eIdx); const auto element = boundingBoxTree.entity(eIdx);
auto fvGeometry = localView(problem.model().globalFvGeometry()); auto fvGeometry = localView(problem.model().fvGridGeometry());
fvGeometry.bindElement(element); fvGeometry.bindElement(element);
const auto globalPos = source.position(); const auto globalPos = source.position();
......
...@@ -36,8 +36,8 @@ namespace Dumux ...@@ -36,8 +36,8 @@ namespace Dumux
{ {
//! forward declaration of the global finite volume geometry //! forward declaration of the global finite volume geometry
template<class TypeTag, bool EnableGlobalFVGeometryCache> template<class TypeTag, bool EnableFVGridGeometryCache>
class BoxGlobalFVGeometry; class BoxFVGridGeometry;
/*! /*!
* \ingroup ImplicitModel * \ingroup ImplicitModel
...@@ -45,7 +45,7 @@ class BoxGlobalFVGeometry; ...@@ -45,7 +45,7 @@ class BoxGlobalFVGeometry;
* This builds up the sub control volumes and sub control volume faces * This builds up the sub control volumes and sub control volume faces
* for each element. * for each element.
*/ */
template<class TypeTag, bool EnableGlobalFVGeometryCache> template<class TypeTag, bool EnableFVGridGeometryCache>
class BoxFVElementGeometry class BoxFVElementGeometry
{}; {};
...@@ -60,7 +60,7 @@ class BoxFVElementGeometry<TypeTag, true> ...@@ -60,7 +60,7 @@ class BoxFVElementGeometry<TypeTag, true>
using SubControlVolume = typename GET_PROP_TYPE(TypeTag, SubControlVolume); using SubControlVolume = typename GET_PROP_TYPE(TypeTag, SubControlVolume);
using SubControlVolumeFace = typename GET_PROP_TYPE(TypeTag, SubControlVolumeFace); using SubControlVolumeFace = typename GET_PROP_TYPE(TypeTag, SubControlVolumeFace);
using Element = typename GridView::template Codim<0>::Entity; using Element = typename GridView::template Codim<0>::Entity;
using GlobalFVGeometry = typename GET_PROP_TYPE(TypeTag, GlobalFVGeometry); using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
using CoordScalar = typename GridView::ctype; using CoordScalar = typename GridView::ctype;
...@@ -77,19 +77,19 @@ class BoxFVElementGeometry<TypeTag, true> ...@@ -77,19 +77,19 @@ class BoxFVElementGeometry<TypeTag, true>
public: public:
//! Constructor //! Constructor
BoxFVElementGeometry(const GlobalFVGeometry& globalFvGeometry) BoxFVElementGeometry(const FVGridGeometry& fvGridGeometry)
: globalFvGeometryPtr_(&globalFvGeometry) {} : fvGridGeometryPtr_(&fvGridGeometry) {}
//! Get a sub control volume with a local scv index //! Get a sub control volume with a local scv index
const SubControlVolume& scv(IndexType scvIdx) const const SubControlVolume& scv(IndexType scvIdx) const
{ {
return globalFvGeometry().scvs(eIdx_)[scvIdx]; return fvGridGeometry().scvs(eIdx_)[scvIdx];
} }
//! Get a sub control volume face with a local scvf index //! Get a sub control volume face with a local scvf index
const SubControlVolumeFace& scvf(IndexType scvfIdx) const const SubControlVolumeFace& scvf(IndexType scvfIdx) const
{ {
return globalFvGeometry().scvfs(eIdx_)[scvfIdx]; return fvGridGeometry().scvfs(eIdx_)[scvfIdx];
} }
//! iterator range for sub control volumes. Iterates over //! iterator range for sub control volumes. Iterates over
...@@ -100,7 +100,7 @@ public: ...@@ -100,7 +100,7 @@ public:
friend inline Dune::IteratorRange<typename std::vector<SubControlVolume>::const_iterator> friend inline Dune::IteratorRange<typename std::vector<SubControlVolume>::const_iterator>
scvs(const BoxFVElementGeometry& fvGeometry) scvs(const BoxFVElementGeometry& fvGeometry)
{ {
const auto& g = fvGeometry.globalFvGeometry(); const auto& g = fvGeometry.fvGridGeometry();
using Iter = typename std::vector<SubControlVolume>::const_iterator; using Iter = typename std::vector<SubControlVolume>::const_iterator;
return Dune::IteratorRange<Iter>(g.scvs(fvGeometry.eIdx_).begin(), g.scvs(fvGeometry.eIdx_).end()); return Dune::IteratorRange<Iter>(g.scvs(fvGeometry.eIdx_).begin(), g.scvs(fvGeometry.eIdx_).end());
} }
...@@ -113,7 +113,7 @@ public: ...@@ -113,7 +113,7 @@ public:
friend inline Dune::IteratorRange<typename std::vector<SubControlVolumeFace>::const_iterator> friend inline Dune::IteratorRange<typename std::vector<SubControlVolumeFace>::const_iterator>
scvfs(const BoxFVElementGeometry& fvGeometry) scvfs(const BoxFVElementGeometry& fvGeometry)
{ {
const auto& g = fvGeometry.globalFvGeometry(); const auto& g = fvGeometry.fvGridGeometry();
using Iter = typename std::vector<SubControlVolumeFace>::const_iterator; using Iter = typename std::vector<SubControlVolumeFace>::const_iterator;
return Dune::IteratorRange<Iter>(g.scvfs(fvGeometry.eIdx_).begin(), g.scvfs(fvGeometry.eIdx_).end()); return Dune::IteratorRange<Iter>(g.scvfs(fvGeometry.eIdx_).begin(), g.scvfs(fvGeometry.eIdx_).end());
} }
...@@ -121,19 +121,19 @@ public: ...@@ -121,19 +121,19 @@ public:
//! Get a local finite element basis //! Get a local finite element basis
const FeLocalBasis& feLocalBasis() const const FeLocalBasis& feLocalBasis() const
{ {
return globalFvGeometry().feCache().get(elementPtr_->geometry().type()).localBasis(); return fvGridGeometry().feCache().get(elementPtr_->geometry().type()).localBasis();
} }
//! The total number of sub control volumes //! The total number of sub control volumes
std::size_t numScv() const std::size_t numScv() const
{ {
return globalFvGeometry().scvs(eIdx_).size(); return fvGridGeometry().scvs(eIdx_).size();
} }
//! The total number of sub control volume faces //! The total number of sub control volume faces
std::size_t numScvf() const std::size_t numScvf() const
{ {
return globalFvGeometry().scvfs(eIdx_).size(); return fvGridGeometry().scvfs(eIdx_).size();
} }
//! this function is for compatibility reasons with cc methods //! this function is for compatibility reasons with cc methods
...@@ -150,16 +150,16 @@ public: ...@@ -150,16 +150,16 @@ public:
void bindElement(const Element& element) void bindElement(const Element& element)
{ {
elementPtr_ = &element; elementPtr_ = &element;
eIdx_ = globalFvGeometry().problem_().elementMapper().index(element); eIdx_ = fvGridGeometry().problem_().elementMapper().index(element);
} }
//! The global finite volume geometry we are a restriction of //! The global finite volume geometry we are a restriction of
const GlobalFVGeometry& globalFvGeometry() const const FVGridGeometry& fvGridGeometry() const
{ return *globalFvGeometryPtr_; } { return *fvGridGeometryPtr_; }
private: private:
const Element* elementPtr_; const Element* elementPtr_;
const GlobalFVGeometry* globalFvGeometryPtr_; const FVGridGeometry* fvGridGeometryPtr_;
IndexType eIdx_; IndexType eIdx_;
}; };
...@@ -174,7 +174,7 @@ class BoxFVElementGeometry<TypeTag, false> ...@@ -174,7 +174,7 @@ class BoxFVElementGeometry<TypeTag, false>
using SubControlVolume = typename GET_PROP_TYPE(TypeTag, SubControlVolume); using SubControlVolume = typename GET_PROP_TYPE(TypeTag, SubControlVolume);
using SubControlVolumeFace = typename GET_PROP_TYPE(TypeTag, SubControlVolumeFace); using SubControlVolumeFace = typename GET_PROP_TYPE(TypeTag, SubControlVolumeFace);
using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry); using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
using GlobalFVGeometry = typename GET_PROP_TYPE(TypeTag, GlobalFVGeometry); using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
static const int dim = GridView::dimension; static const int dim = GridView::dimension;
static const int dimWorld = GridView::dimensionworld; static const int dimWorld = GridView::dimensionworld;
...@@ -192,8 +192,8 @@ class BoxFVElementGeometry<TypeTag, false> ...@@ -192,8 +192,8 @@ class BoxFVElementGeometry<TypeTag, false>
public: public:
//! Constructor //! Constructor
BoxFVElementGeometry(const GlobalFVGeometry& globalFvGeometry) BoxFVElementGeometry(const FVGridGeometry& fvGridGeometry)
: globalFvGeometryPtr_(&globalFvGeometry) {} : fvGridGeometryPtr_(&fvGridGeometry) {}
//! Get a sub control volume with a local scv index //! Get a sub control volume with a local scv index
const SubControlVolume& scv(IndexType scvIdx) const const SubControlVolume& scv(IndexType scvIdx) const
...@@ -234,7 +234,7 @@ public: ...@@ -234,7 +234,7 @@ public:
//! Get a local finite element basis //! Get a local finite element basis
const FeLocalBasis& feLocalBasis() const const FeLocalBasis& feLocalBasis() const
{ {
return globalFvGeometry().feCache().get(elementPtr_->geometry().type()).localBasis(); return fvGridGeometry().feCache().get(elementPtr_->geometry().type()).localBasis();
} }
//! The total number of sub control volumes //! The total number of sub control volumes
...@@ -263,19 +263,19 @@ public: ...@@ -263,19 +263,19 @@ public:
void bindElement(const Element& element) void bindElement(const Element& element)
{ {
elementPtr_ = &element; elementPtr_ = &element;
eIdx_ = globalFvGeometry().problem_().elementMapper().index(element); eIdx_ = fvGridGeometry().problem_().elementMapper().index(element);
makeElementGeometries(element); makeElementGeometries(element);
} }
//! The global finite volume geometry we are a restriction of //! The global finite volume geometry we are a restriction of
const GlobalFVGeometry& globalFvGeometry() const const FVGridGeometry& fvGridGeometry() const
{ return *globalFvGeometryPtr_; } { return *fvGridGeometryPtr_; }
private: private:
void makeElementGeometries(const Element& element) void makeElementGeometries(const Element& element)
{ {
auto eIdx = globalFvGeometry().problem_().elementMapper().index(element); auto eIdx = fvGridGeometry().problem_().elementMapper().index(element);
// get the element geometry // get the element geometry
auto elementGeometry = element.geometry(); auto elementGeometry = element.geometry();
...@@ -289,7 +289,7 @@ private: ...@@ -289,7 +289,7 @@ private:
for (unsigned int scvLocalIdx = 0; scvLocalIdx < elementGeometry.corners(); ++scvLocalIdx) for (unsigned int scvLocalIdx = 0; scvLocalIdx < elementGeometry.corners(); ++scvLocalIdx)
{ {
// get asssociated dof index // get asssociated dof index
auto dofIdxGlobal = globalFvGeometry().problem_().vertexMapper().subIndex(element, scvLocalIdx, dim); auto dofIdxGlobal = fvGridGeometry().problem_().vertexMapper().subIndex(element, scvLocalIdx, dim);
// add scv to the local container // add scv to the local container
scvs_[scvLocalIdx] = SubControlVolume(geometryHelper, scvs_[scvLocalIdx] = SubControlVolume(geometryHelper,
...@@ -318,7 +318,7 @@ private: ...@@ -318,7 +318,7 @@ private:
} }
// construct the sub control volume faces on the domain boundary // construct the sub control volume faces on the domain boundary
for (const auto& intersection : intersections(globalFvGeometry().gridView(), element)) for (const auto& intersection : intersections(fvGridGeometry().gridView(), element))
{ {
if (intersection.boundary()) if (intersection.boundary())
{ {
...@@ -350,7 +350,7 @@ private: ...@@ -350,7 +350,7 @@ private:
IndexType eIdx_; IndexType eIdx_;
//! The global geometry this is a restriction of //! The global geometry this is a restriction of
const GlobalFVGeometry* globalFvGeometryPtr_; const FVGridGeometry* fvGridGeometryPtr_;
//! vectors to store the geometries locally after binding an element //! vectors to store the geometries locally after binding an element
std::vector<SubControlVolume> scvs_; std::vector<SubControlVolume> scvs_;
......
...@@ -42,13 +42,13 @@ namespace Dumux ...@@ -42,13 +42,13 @@ namespace Dumux
* This builds up the sub control volumes and sub control volume faces * This builds up the sub control volumes and sub control volume faces
* for each element. * for each element.
*/ */
template<class TypeTag, bool EnableGlobalFVGeometryCache> template<class TypeTag, bool EnableFVGridGeometryCache>
class BoxGlobalFVGeometry class BoxFVGridGeometry
{}; {};
// specialization in case the FVElementGeometries are stored // specialization in case the FVElementGeometries are stored
template<class TypeTag> template<class TypeTag>
class BoxGlobalFVGeometry<TypeTag, true> class BoxFVGridGeometry<TypeTag, true>
{ {
using Problem = typename GET_PROP_TYPE(TypeTag, Problem); using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
using GridView = typename GET_PROP_TYPE(TypeTag, GridView); using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
...@@ -75,7 +75,7 @@ class BoxGlobalFVGeometry<TypeTag, true> ...@@ -75,7 +75,7 @@ class BoxGlobalFVGeometry<TypeTag, true>
public: public:
//! Constructor //! Constructor
BoxGlobalFVGeometry(const GridView gridView) BoxFVGridGeometry(const GridView gridView)
: gridView_(gridView) {} : gridView_(gridView) {}
//! The total number of sub control volumes //! The total number of sub control volumes
...@@ -193,7 +193,7 @@ public: ...@@ -193,7 +193,7 @@ public:
* The local object is only functional after calling its bind/bindElement method * The local object is only functional after calling its bind/bindElement method
* This is a free function that will be found by means of ADL * This is a free function that will be found by means of ADL
*/ */
friend FVElementGeometry localView(const BoxGlobalFVGeometry& global) friend FVElementGeometry localView(const BoxFVGridGeometry& global)
{ {
return FVElementGeometry(global); return FVElementGeometry(global);
} }
...@@ -228,7 +228,7 @@ private: ...@@ -228,7 +228,7 @@ private:
// specialization in case the FVElementGeometries are not stored // specialization in case the FVElementGeometries are not stored
template<class TypeTag> template<class TypeTag>
class BoxGlobalFVGeometry<TypeTag, false> class BoxFVGridGeometry<TypeTag, false>
{ {
using Problem = typename GET_PROP_TYPE(TypeTag, Problem); using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
using GridView = typename GET_PROP_TYPE(TypeTag, GridView); using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
...@@ -255,7 +255,7 @@ class BoxGlobalFVGeometry<TypeTag, false> ...@@ -255,7 +255,7 @@ class BoxGlobalFVGeometry<TypeTag, false>
public: public:
//! Constructor //! Constructor
BoxGlobalFVGeometry(const GridView gridView) BoxFVGridGeometry(const GridView gridView)
: gridView_(gridView) : gridView_(gridView)
{} {}
...@@ -309,7 +309,7 @@ public: ...@@ -309,7 +309,7 @@ public:
* The local object is only functional after calling its bind/bindElement method * The local object is only functional after calling its bind/bindElement method
* This is a free function that will be found by means of ADL * This is a free function that will be found by means of ADL
*/ */
friend FVElementGeometry localView(const BoxGlobalFVGeometry& global) friend FVElementGeometry localView(const BoxFVGridGeometry& global)
{ {
return FVElementGeometry(global); return FVElementGeometry(global);
} }
......
...@@ -65,7 +65,7 @@ public: ...@@ -65,7 +65,7 @@ public:
{ {
auto eIdx = problem.elementMapper().index(element); auto eIdx = problem.elementMapper().index(element);
// bind the geometries and volume variables to the element (all the elements in stencil) // bind the geometries and volume variables to the element (all the elements in stencil)
auto fvGeometry = localView(problem.model().globalFvGeometry()); auto fvGeometry = localView(problem.model().fvGridGeometry());
fvGeometry.bind(element); fvGeometry.bind(element);
auto elemVolVars = localView(problem.model().curGlobalVolVars()); auto elemVolVars = localView(problem.model().curGlobalVolVars());
......
...@@ -70,7 +70,7 @@ public: ...@@ -70,7 +70,7 @@ public:
{ {
auto eIdx = problem_().elementMapper().index(element); auto eIdx = problem_().elementMapper().index(element);
auto fvGeometry = localView(problem.model().globalFvGeometry()); auto fvGeometry = localView(problem.model().fvGridGeometry());
fvGeometry.bindElement(element); fvGeometry.bindElement(element);
// get the element solution // get the element solution
......
...@@ -66,13 +66,13 @@ public: ...@@ -66,13 +66,13 @@ public:
{ {
problemPtr_ = &problem; problemPtr_ = &problem;
auto numScv = problem.model().globalFvGeometry().numScv(); auto numScv = problem.model().fvGridGeometry().numScv();
auto numBoundaryScvf = problem.model().globalFvGeometry().numBoundaryScvf(); auto numBoundaryScvf = problem.model().fvGridGeometry().numBoundaryScvf();
volumeVariables_.resize(numScv + numBoundaryScvf); volumeVariables_.resize(numScv + numBoundaryScvf);
for (const auto& element : elements(problem.gridView())) for (const auto& element : elements(problem.gridView()))
{ {
auto fvGeometry = localView(problem.model().globalFvGeometry()); auto fvGeometry = localView(problem.model().fvGridGeometry());
fvGeometry.bindElement(element); fvGeometry.bindElement(element);
for (auto&& scv : scvs(fvGeometry)) for (auto&& scv : scvs(fvGeometry))
......
...@@ -138,7 +138,7 @@ class DarcysLawImplementation<TypeTag, DiscretizationMethods::CCMpfa> ...@@ -138,7 +138,7 @@ class DarcysLawImplementation<TypeTag, DiscretizationMethods::CCMpfa>
const FluxVariablesCacheFiller& fluxVarsCacheFiller) const FluxVariablesCacheFiller& fluxVarsCacheFiller)
{ {
// get interaction volume from the flux vars cache filler & upate the cache // get interaction volume from the flux vars cache filler & upate the cache
if (problem.model().globalFvGeometry().isInBoundaryInteractionVolume(scvf)) if (problem.model().fvGridGeometry().isInBoundaryInteractionVolume(scvf))
scvfFluxVarsCache.updateAdvection(fluxVarsCacheFiller.boundaryInteractionVolume(), scvf); scvfFluxVarsCache.updateAdvection(fluxVarsCacheFiller.boundaryInteractionVolume(), scvf);
else else
scvfFluxVarsCache.updateAdvection(fluxVarsCacheFiller.interactionVolume(), scvf); scvfFluxVarsCache.updateAdvection(fluxVarsCacheFiller.interactionVolume(), scvf);
......
...@@ -180,7 +180,7 @@ public: ...@@ -180,7 +180,7 @@ public:
auto& scvfCache = (*this)[scvf]; auto& scvfCache = (*this)[scvf];
if (!scvfCache.isUpdated()) if (!scvfCache.isUpdated())
{ {
auto elementJ = problem.model().globalFvGeometry().element(dataJ.globalJ); auto elementJ = problem.model().fvGridGeometry().element(dataJ.globalJ);
filler.fill(*this, scvfCache, elementJ, fvGeometry, elemVolVars, scvf); filler.fill(*this, scvfCache, elementJ, fvGeometry, elemVolVars, scvf);
} }
} }
...@@ -249,7 +249,7 @@ private: ...@@ -249,7 +249,7 @@ private:
const auto scvfInsideScvIdx = scvf.insideScvIdx(); const auto scvfInsideScvIdx = scvf.insideScvIdx();
const auto insideElement = scvfInsideScvIdx == globalI ? const auto insideElement = scvfInsideScvIdx == globalI ?
element : element :
problem.model().globalFvGeometry().element(scvfInsideScvIdx); problem.model().fvGridGeometry().element(scvfInsideScvIdx);
filler.update(*this, scvfCache, insideElement, fvGeometry, elemVolVars, scvf); filler.update(*this, scvfCache, insideElement, fvGeometry, elemVolVars, scvf);
} }
......
...@@ -118,7 +118,7 @@ public: ...@@ -118,7 +118,7 @@ public:
const SolutionVector& sol) const SolutionVector& sol)
{ {
const auto& problem = globalVolVars().problem_(); const auto& problem = globalVolVars().problem_();
const auto& globalFvGeometry = problem.model().globalFvGeometry(); const auto& fvGridGeometry = problem.model().fvGridGeometry();
// stencil information // stencil information
const auto globalI = problem.elementMapper().index(element); const auto globalI = problem.elementMapper().index(element);
...@@ -143,7 +143,7 @@ public: ...@@ -143,7 +143,7 @@ public:
// Update the volume variables of the neighboring elements // Update the volume variables of the neighboring elements
for (auto&& dataJ : assemblyMapI) for (auto&& dataJ : assemblyMapI)
{ {
const auto& elementJ = globalFvGeometry.element(dataJ.globalJ); const auto& elementJ = fvGridGeometry.element(dataJ.globalJ);
auto&& scvJ = fvGeometry.scv(dataJ.globalJ); auto&& scvJ = fvGeometry.scv(dataJ.globalJ);
volumeVariables_[localIdx].update(problem.model().elementSolution(elementJ, sol), volumeVariables_[localIdx].update(problem.model().elementSolution(elementJ, sol),
problem, problem,
...@@ -195,11 +195,11 @@ public: ...@@ -195,11 +195,11 @@ public:
for (auto&& scvf : scvfs(fvGeometry)) for (auto&& scvf : scvfs(fvGeometry))
{ {
// skip the rest if the scvf does not touch a domain boundary // skip the rest if the scvf does not touch a domain boundary
if (!globalFvGeometry.touchesDomainBoundary(scvf)) if (!fvGridGeometry.touchesDomainBoundary(scvf))
continue; continue;
// loop over all the scvfs in the interaction region // loop over all the scvfs in the interaction region
const auto& ivSeed = globalFvGeometry.boundaryInteractionVolumeSeed(scvf); const auto& ivSeed = fvGridGeometry.boundaryInteractionVolumeSeed(scvf);
for (auto scvfIdx : ivSeed.globalScvfIndices()) for (auto scvfIdx : ivSeed.globalScvfIndices())
{ {
auto&& ivScvf = fvGeometry.scvf(scvfIdx); auto&& ivScvf = fvGeometry.scvf(scvfIdx);
...@@ -208,7 +208,7 @@ public: ...@@ -208,7 +208,7 @@ public:
continue; continue;
auto insideScvIdx = ivScvf.insideScvIdx(); auto insideScvIdx = ivScvf.insideScvIdx();
auto insideElement = globalFvGeometry.element(insideScvIdx); auto insideElement = fvGridGeometry.element(insideScvIdx);
// on dirichlet boundaries use dirichlet values // on dirichlet boundaries use dirichlet values
if (MpfaHelper::getMpfaFaceType(problem, insideElement, ivScvf) == MpfaFaceTypes::dirichlet) if (MpfaHelper::getMpfaFaceType(problem, insideElement, ivScvf) == MpfaFaceTypes::dirichlet)
...@@ -243,7 +243,7 @@ public: ...@@ -243,7 +243,7 @@ public:
volVarIndices_.resize(volVarIndices_.size() + additionalDofDependencies.size()); volVarIndices_.resize(volVarIndices_.size() + additionalDofDependencies.size());
for (auto globalJ : additionalDofDependencies) for (auto globalJ : additionalDofDependencies)
{ {
const auto& elementJ = fvGeometry.globalFvGeometry().element(globalJ); const auto& elementJ = fvGeometry.fvGridGeometry().element(globalJ);
auto&& scvJ = fvGeometry.scv(globalJ); auto&& scvJ = fvGeometry.scv(globalJ);
volumeVariables_[localIdx].update(problem.model().elementSolution(elementJ, sol), volumeVariables_[localIdx].update(problem.model().elementSolution(elementJ, sol),
...@@ -304,7 +304,7 @@ private: ...@@ -304,7 +304,7 @@ private:
for (auto&& scvf : scvfs(fvGeometry)) for (auto&& scvf : scvfs(fvGeometry))
{ {
bool boundary = scvf.boundary(); bool boundary = scvf.boundary();
if (boundary || (!boundary && fvGeometry.globalFvGeometry().touchesDomainBoundary(scvf))) if (boundary || (!boundary && fvGeometry.fvGridGeometry().touchesDomainBoundary(scvf)))
bVolVarEstimate += dim-1; bVolVarEstimate += dim-1;
} }
......
...@@ -148,7 +148,7 @@ class FicksLawImplementation<TypeTag, DiscretizationMethods::CCMpfa> ...@@ -148,7 +148,7 @@ class FicksLawImplementation<TypeTag, DiscretizationMethods::CCMpfa>
const FluxVariablesCacheFiller& fluxVarsCacheFiller) const FluxVariablesCacheFiller& fluxVarsCacheFiller)
{ {
// get interaction volume from the flux vars cache filler & upate the cache // get interaction volume from the flux vars cache filler & upate the cache
if (problem.model().globalFvGeometry().isInBoundaryInteractionVolume(scvf))