Skip to content
Snippets Groups Projects
Unverified Commit d4d2b463 authored by Tobias Leibner's avatar Tobias Leibner Committed by GitHub
Browse files

Merge pull request #75 from dune-community/dailywork_tleibner

Some improvements to the periodic gridview
parents 9432a18b 338faaf8
No related branches found
No related tags found
No related merge requests found
...@@ -4,23 +4,23 @@ status = 1a3bcab04b011a5d6e44f9983cae6ff89fa695e8 bin (heads/master) ...@@ -4,23 +4,23 @@ status = 1a3bcab04b011a5d6e44f9983cae6ff89fa695e8 bin (heads/master)
20a673b9dad7e2e25bd97defa8849debb59d247c config.opts (heads/master) 20a673b9dad7e2e25bd97defa8849debb59d247c config.opts (heads/master)
8f2c5aba441417bf2c42f22272f538c68a89cc4a dune-alugrid (remotes/origin/releases/2.5) 8f2c5aba441417bf2c42f22272f538c68a89cc4a dune-alugrid (remotes/origin/releases/2.5)
707acf201d5a754c80f87cc4d71aa36bf29a6e3f dune-common (v2.5.1-9-g707acf20) 707acf201d5a754c80f87cc4d71aa36bf29a6e3f dune-common (v2.5.1-9-g707acf20)
+319ee44af8a7e1809b53770fd78199158554e0e1 dune-gdt (heads/dailywork_tleibner) +041e8f22fcce8f4c5420fe74d9dc1872ca118f02 dune-gdt (heads/entropy_flux_even_newer)
390a2c503783bbed778a8ff610f8c5ca09c238d0 dune-geometry (v2.5.1-5-g390a2c5) 390a2c503783bbed778a8ff610f8c5ca09c238d0 dune-geometry (v2.5.1-5-g390a2c5)
d7b20bbc5f6fdcfc312beb0ea5d16d39ea26904e dune-grid (v2.5.1-2-gd7b20bbc5) d7b20bbc5f6fdcfc312beb0ea5d16d39ea26904e dune-grid (v2.5.1-2-gd7b20bbc5)
+e9d9a3336735090648637e044e279866bbea3597 dune-grid-glue (v2.4.0-60-ge9d9a33) 9e29a333e8af02382d80b95335a784d5ce1ea2c8 dune-grid-glue (v2.4.0-70-g9e29a33)
63df56a54f81eda308233a683eb329e77e69f0a9 dune-istl (v2.5.1rc1) 63df56a54f81eda308233a683eb329e77e69f0a9 dune-istl (v2.5.1rc1)
0d757d65e5d57134a7ecf304e35d063f4ccc7116 dune-localfunctions (v2.5.1rc1) 0d757d65e5d57134a7ecf304e35d063f4ccc7116 dune-localfunctions (v2.5.1rc1)
8a69fc68165780921bbba77da338b6932daf983c dune-pybindxi (v2.2.1-16-g8a69fc6) 8a69fc68165780921bbba77da338b6932daf983c dune-pybindxi (v2.2.1-16-g8a69fc6)
741e4f8e53bdd3e1b6e19d84eb22b6e3dc48526c dune-python (remotes/origin/releases/2.5) 741e4f8e53bdd3e1b6e19d84eb22b6e3dc48526c dune-python (remotes/origin/releases/2.5)
26cc8cb4161a3a51002ab2a81b8c81d2c951ee79 dune-testtools (remotes/origin/p/renemilk/testname_listing_hack_no-skiptest) 26cc8cb4161a3a51002ab2a81b8c81d2c951ee79 dune-testtools (remotes/origin/p/renemilk/testname_listing_hack_no-skiptest)
0a74e7dd0b2115778a5d490dab08a2ed07fcaa1e dune-uggrid (v2.5.2) 0a74e7dd0b2115778a5d490dab08a2ed07fcaa1e dune-uggrid (v2.5.2)
c3ee5cbe84b1e7f6c77b371d84f99f8f94dfc7df dune-xt-common (heads/master) 3d4a5b7d9382eb27c692ec5143082ae9534796d3 dune-xt-common (heads/dailywork_tleibner)
b8cf8efc32e46511990b691afee55da3b7af15c8 dune-xt-data (heads/master) f93419066883a68c4e0ba96acc3d451ba971876a dune-xt-data (heads/dailywork_tleibner)
0c9df39934e23b950f357c912b4c800b86de683f dune-xt-functions (heads/dailywork_tleibner) 83b29cbe84d0af6579d6904f59598ad3dd132996 dune-xt-functions (heads/dailywork_tleibner)
dd30fcd7d4485eb2a8158d5ddf01333f58502c40 dune-xt-grid (heads/dailywork_tleibner) +9311eab336a8b9dda59654ac901066b5a66f2474 dune-xt-grid (heads/dailywork_tleibner)
+0a9e28f4dabfbfd5d7492f3bf1317131b466c8b1 dune-xt-la (heads/remove_cow) +21ffba0055be4aaa5437cb058119b1ff7611f7f1 dune-xt-la (heads/remove_cow)
09d0378f616b94d68bcdd9fc6114813181849ec0 scripts (heads/master) 09d0378f616b94d68bcdd9fc6114813181849ec0 scripts (heads/master)
commit = 307074d1e2f1a09b1f71520fd5d69ec0601e7781 commit = dff37227b1cc0d426e10087d1ff1d3089a912b02
[submodule.bin] [submodule.bin]
remote = git@github.com:dune-community/local-bin.git remote = git@github.com:dune-community/local-bin.git
...@@ -45,7 +45,7 @@ commit = 707acf201d5a754c80f87cc4d71aa36bf29a6e3f ...@@ -45,7 +45,7 @@ commit = 707acf201d5a754c80f87cc4d71aa36bf29a6e3f
[submodule.dune-gdt] [submodule.dune-gdt]
remote = git@github.com:dune-community/dune-gdt.git remote = git@github.com:dune-community/dune-gdt.git
status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master) status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
commit = 319ee44af8a7e1809b53770fd78199158554e0e1 commit = 041e8f22fcce8f4c5420fe74d9dc1872ca118f02
[submodule.dune-geometry] [submodule.dune-geometry]
remote = git@github.com:dune-community/dune-geometry.git remote = git@github.com:dune-community/dune-geometry.git
...@@ -60,7 +60,7 @@ commit = d7b20bbc5f6fdcfc312beb0ea5d16d39ea26904e ...@@ -60,7 +60,7 @@ commit = d7b20bbc5f6fdcfc312beb0ea5d16d39ea26904e
[submodule.dune-grid-glue] [submodule.dune-grid-glue]
remote = https://github.com/dune-mirrors/dune-grid-glue.git remote = https://github.com/dune-mirrors/dune-grid-glue.git
status = status =
commit = e9d9a3336735090648637e044e279866bbea3597 commit = 9e29a333e8af02382d80b95335a784d5ce1ea2c8
[submodule.dune-istl] [submodule.dune-istl]
remote = https://github.com/dune-mirrors/dune-istl.git remote = https://github.com/dune-mirrors/dune-istl.git
...@@ -95,27 +95,27 @@ commit = 0a74e7dd0b2115778a5d490dab08a2ed07fcaa1e ...@@ -95,27 +95,27 @@ commit = 0a74e7dd0b2115778a5d490dab08a2ed07fcaa1e
[submodule.dune-xt-common] [submodule.dune-xt-common]
remote = git@github.com:dune-community/dune-xt-common.git remote = git@github.com:dune-community/dune-xt-common.git
status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master) status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
commit = c3ee5cbe84b1e7f6c77b371d84f99f8f94dfc7df commit = 3d4a5b7d9382eb27c692ec5143082ae9534796d3
[submodule.dune-xt-data] [submodule.dune-xt-data]
remote = https://github.com/dune-community/dune-xt-data remote = git@github.com:dune-community/dune-xt-data
status = -2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
commit = b8cf8efc32e46511990b691afee55da3b7af15c8 commit = f93419066883a68c4e0ba96acc3d451ba971876a
[submodule.dune-xt-functions] [submodule.dune-xt-functions]
remote = git@github.com:dune-community/dune-xt-functions.git remote = git@github.com:dune-community/dune-xt-functions.git
status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup ((null)) status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
commit = 0c9df39934e23b950f357c912b4c800b86de683f commit = 83b29cbe84d0af6579d6904f59598ad3dd132996
[submodule.dune-xt-grid] [submodule.dune-xt-grid]
remote = git@github.com:dune-community/dune-xt-grid.git remote = git@github.com:dune-community/dune-xt-grid.git
status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master) status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
commit = dd30fcd7d4485eb2a8158d5ddf01333f58502c40 commit = 9311eab336a8b9dda59654ac901066b5a66f2474
[submodule.dune-xt-la] [submodule.dune-xt-la]
remote = git@github.com:dune-community/dune-xt-la.git remote = git@github.com:dune-community/dune-xt-la.git
status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master) status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
commit = 0a9e28f4dabfbfd5d7492f3bf1317131b466c8b1 commit = 21ffba0055be4aaa5437cb058119b1ff7611f7f1
[submodule.scripts] [submodule.scripts]
remote = https://github.com/wwu-numerik/scripts.git remote = https://github.com/wwu-numerik/scripts.git
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <dune/xt/common/fixed_map.hh> #include <dune/xt/common/fixed_map.hh>
#include <dune/xt/grid/type_traits.hh> #include <dune/xt/grid/type_traits.hh>
#include <dune/xt/grid/view/periodic.hh>
#include <dune/xt/grid/view/subdomain/view.hh> #include <dune/xt/grid/view/subdomain/view.hh>
namespace Dune { namespace Dune {
...@@ -67,14 +68,14 @@ namespace internal { ...@@ -67,14 +68,14 @@ namespace internal {
template <Backends backend> template <Backends backend>
struct backend_dependent_typename struct backend_dependent_typename
{ {
typedef void type; using type = void;
}; };
template <Layers layer> template <Layers layer>
struct layer_dependent_typename struct layer_dependent_typename
{ {
typedef void type; using type = void;
}; };
...@@ -84,12 +85,12 @@ struct layer_dependent_typename ...@@ -84,12 +85,12 @@ struct layer_dependent_typename
/** /**
* \brief Allows to statically create a leaf or level part or view (unspecialized variant). * \brief Allows to statically create a leaf or level part or view (unspecialized variant).
*/ */
template <class GridType, Layers layer, Backends backend, class DdGridType = int> template <class GridType, Layers layer, Backends backend, class DdGridType = int, bool periodic = false>
struct Layer struct Layer
{ {
static_assert(AlwaysFalse<GridType>::value, "No layer available for this combination!"); static_assert(AlwaysFalse<GridType>::value, "No layer available for this combination!");
typedef void type; using type = void;
static type static type
create(const GridType& /*grid*/, const int /*level*/ = 0, const std::shared_ptr<DdGridType> /*dd_grid*/ = nullptr) create(const GridType& /*grid*/, const int /*level*/ = 0, const std::shared_ptr<DdGridType> /*dd_grid*/ = nullptr)
...@@ -108,9 +109,9 @@ struct Layer ...@@ -108,9 +109,9 @@ struct Layer
* \brief Allows to statically create a leaf or level part or view (leaf view variant). * \brief Allows to statically create a leaf or level part or view (leaf view variant).
*/ */
template <class GridType, class DdGridType> template <class GridType, class DdGridType>
struct Layer<GridType, Layers::leaf, Backends::view, DdGridType> struct Layer<GridType, Layers::leaf, Backends::view, DdGridType, false>
{ {
typedef typename GridType::LeafGridView type; using type = typename GridType::LeafGridView;
static type static type
create(const GridType& grid, const int /*level*/ = 0, const std::shared_ptr<DdGridType> /*dd_grid*/ = nullptr) create(const GridType& grid, const int /*level*/ = 0, const std::shared_ptr<DdGridType> /*dd_grid*/ = nullptr)
...@@ -124,9 +125,9 @@ struct Layer<GridType, Layers::leaf, Backends::view, DdGridType> ...@@ -124,9 +125,9 @@ struct Layer<GridType, Layers::leaf, Backends::view, DdGridType>
* \brief Allows to statically create a leaf or level part or view (leaf view variant). * \brief Allows to statically create a leaf or level part or view (leaf view variant).
*/ */
template <class GridType, class DdGridType> template <class GridType, class DdGridType>
struct Layer<GridType, Layers::level, Backends::view, DdGridType> struct Layer<GridType, Layers::level, Backends::view, DdGridType, false>
{ {
typedef typename GridType::LevelGridView type; using type = typename GridType::LevelGridView;
static type create(const GridType& grid, const int level, const std::shared_ptr<DdGridType> /*dd_grid*/ = nullptr) static type create(const GridType& grid, const int level, const std::shared_ptr<DdGridType> /*dd_grid*/ = nullptr)
{ {
...@@ -138,9 +139,9 @@ struct Layer<GridType, Layers::level, Backends::view, DdGridType> ...@@ -138,9 +139,9 @@ struct Layer<GridType, Layers::level, Backends::view, DdGridType>
template <class GridType, class DdGridType> template <class GridType, class DdGridType>
struct Layer<GridType, Layers::dd_subdomain, Backends::view, DdGridType> struct Layer<GridType, Layers::dd_subdomain, Backends::view, DdGridType, false>
{ {
typedef typename DD::SubdomainGrid<GridType>::LocalGridViewType type; using type = typename DD::SubdomainGrid<GridType>::LocalGridViewType;
static type create(const GridType& /*grid*/, static type create(const GridType& /*grid*/,
const int subdomain = 0, const int subdomain = 0,
...@@ -161,9 +162,9 @@ struct Layer<GridType, Layers::dd_subdomain, Backends::view, DdGridType> ...@@ -161,9 +162,9 @@ struct Layer<GridType, Layers::dd_subdomain, Backends::view, DdGridType>
template <class GridType, class DdGridType> template <class GridType, class DdGridType>
struct Layer<GridType, Layers::dd_subdomain_oversampled, Backends::view, DdGridType> struct Layer<GridType, Layers::dd_subdomain_oversampled, Backends::view, DdGridType, false>
{ {
typedef typename DD::SubdomainGrid<GridType>::LocalGridViewType type; using type = typename DD::SubdomainGrid<GridType>::LocalGridViewType;
static type create(const GridType& /*grid*/, static type create(const GridType& /*grid*/,
const int subdomain = 0, const int subdomain = 0,
...@@ -184,9 +185,9 @@ struct Layer<GridType, Layers::dd_subdomain_oversampled, Backends::view, DdGridT ...@@ -184,9 +185,9 @@ struct Layer<GridType, Layers::dd_subdomain_oversampled, Backends::view, DdGridT
template <class GridType, class DdGridType> template <class GridType, class DdGridType>
struct Layer<GridType, Layers::dd_subdomain_coupling, Backends::view, DdGridType> struct Layer<GridType, Layers::dd_subdomain_coupling, Backends::view, DdGridType, false>
{ {
typedef typename DD::SubdomainGrid<GridType>::CouplingGridViewType type; using type = typename DD::SubdomainGrid<GridType>::CouplingGridViewType;
static type create(const GridType& /*grid*/, static type create(const GridType& /*grid*/,
const int /*subdomain */ = 0, const int /*subdomain */ = 0,
...@@ -209,9 +210,9 @@ struct Layer<GridType, Layers::dd_subdomain_coupling, Backends::view, DdGridType ...@@ -209,9 +210,9 @@ struct Layer<GridType, Layers::dd_subdomain_coupling, Backends::view, DdGridType
template <class GridType, class DdGridType> template <class GridType, class DdGridType>
struct Layer<GridType, Layers::dd_subdomain_boundary, Backends::view, DdGridType> struct Layer<GridType, Layers::dd_subdomain_boundary, Backends::view, DdGridType, false>
{ {
typedef typename DD::SubdomainGrid<GridType>::BoundaryGridViewType type; using type = typename DD::SubdomainGrid<GridType>::BoundaryGridViewType;
static type create(const GridType& /*grid*/, static type create(const GridType& /*grid*/,
const int subdomain = 0, const int subdomain = 0,
...@@ -231,6 +232,27 @@ struct Layer<GridType, Layers::dd_subdomain_boundary, Backends::view, DdGridType ...@@ -231,6 +232,27 @@ struct Layer<GridType, Layers::dd_subdomain_boundary, Backends::view, DdGridType
}; // struct Layer<..., dd_subdomain_boundary, view> }; // struct Layer<..., dd_subdomain_boundary, view>
// create periodic grid_layer
template <class GridType, Layers layer, Backends backend, class DdGridType>
struct Layer<GridType, layer, backend, DdGridType, true>
{
using NonPeriodicLayerType = Layer<GridType, layer, backend, DdGridType, false>;
using type = XT::Grid::PeriodicGridLayer<typename NonPeriodicLayerType::type>;
static type create(const GridType& grid,
const int subdomain = 0,
const std::shared_ptr<DD::SubdomainGrid<GridType>> dd_grid = nullptr)
{
return type(NonPeriodicLayerType::create(grid, subdomain, dd_grid));
}
static type create(GridType& grid, const int subdomain, std::shared_ptr<DD::SubdomainGrid<GridType>> dd_grid)
{
return type(NonPeriodicLayerType::create(grid, subdomain, dd_grid));
}
}; // struct Layer<..., periodic>
namespace internal { namespace internal {
......
...@@ -417,27 +417,27 @@ private: ...@@ -417,27 +417,27 @@ private:
* *
* \see PeriodicGridView * \see PeriodicGridView
*/ */
template <class RealGridLayerImp> template <class RealIntersectionImp>
class PeriodicIntersectionImp : public extract_intersection_t<RealGridLayerImp> class PeriodicIntersectionImp : public RealIntersectionImp
{ {
typedef RealGridLayerImp RealGridLayerType; // using BaseType = extract_intersection_t<RealGridLayerType>;
using BaseType = extract_intersection_t<RealGridLayerType>; using BaseType = RealIntersectionImp;
public: public:
using typename BaseType::LocalGeometry; using typename BaseType::LocalGeometry;
typedef typename BaseType::Entity EntityType; using EntityType = typename BaseType::Entity;
using RealIntersectionIteratorType = extract_intersection_iterator_t<RealGridLayerType>;
static const size_t dimDomain = RealGridLayerType::dimension;
//! \brief Constructor from real intersection //! \brief Constructor from real intersection
template <class RealGridLayerType>
PeriodicIntersectionImp(const BaseType& real_intersection, PeriodicIntersectionImp(const BaseType& real_intersection,
const RealGridLayerType& real_grid_layer, const RealGridLayerType& real_grid_layer,
const std::pair<bool, EntityType>& periodic_pair) const std::pair<bool, EntityType>& periodic_pair)
: BaseType(real_intersection) : BaseType(real_intersection)
, periodic_(periodic_pair.first) , periodic_(periodic_pair.first)
, outside_(periodic_pair.second) , outside_(periodic_pair.second)
, real_grid_layer_(&real_grid_layer)
{ {
if (periodic_)
intersection_in_outside_ = find_intersection_in_outside(real_grid_layer);
} }
//! \brief Default constructor //! \brief Default constructor
...@@ -466,7 +466,7 @@ public: ...@@ -466,7 +466,7 @@ public:
LocalGeometry geometryInOutside() const LocalGeometry geometryInOutside() const
{ {
if (periodic_) { if (periodic_) {
return find_intersection_in_outside().geometryInInside(); return intersection_in_outside_.geometryInInside();
} else { } else {
return BaseType::geometryInOutside(); return BaseType::geometryInOutside();
} }
...@@ -475,7 +475,7 @@ public: ...@@ -475,7 +475,7 @@ public:
int indexInOutside() const int indexInOutside() const
{ {
if (periodic_) { if (periodic_) {
return find_intersection_in_outside().indexInInside(); return intersection_in_outside_.indexInInside();
} else { } else {
return BaseType::indexInOutside(); return BaseType::indexInOutside();
} }
...@@ -483,18 +483,19 @@ public: ...@@ -483,18 +483,19 @@ public:
private: private:
// tries to find intersection in outside (works only if periodic_ == true) // tries to find intersection in outside (works only if periodic_ == true)
BaseType find_intersection_in_outside() const template <class RealGridLayerType>
BaseType find_intersection_in_outside(const RealGridLayerType& real_grid_layer) const
{ {
const auto coords = this->geometry().center(); const auto coords = this->geometry().center();
RealIntersectionIteratorType outside_i_it = real_grid_layer_->ibegin(outside_); auto outside_i_it = real_grid_layer.ibegin(outside_);
const RealIntersectionIteratorType outside_i_it_end = real_grid_layer_->iend(outside_); const auto outside_i_it_end = real_grid_layer.iend(outside_);
// walk over outside intersections and find an intersection on the boundary that differs only in one coordinate // walk over outside intersections and find an intersection on the boundary that differs only in one coordinate
for (; outside_i_it != outside_i_it_end; ++outside_i_it) { for (; outside_i_it != outside_i_it_end; ++outside_i_it) {
const BaseType& curr_outside_intersection = *outside_i_it; const BaseType& curr_outside_intersection = *outside_i_it;
if (curr_outside_intersection.boundary()) { if (curr_outside_intersection.boundary()) {
const auto curr_outside_intersection_coords = curr_outside_intersection.geometry().center(); const auto curr_outside_intersection_coords = curr_outside_intersection.geometry().center();
size_t coord_difference_count = 0; size_t coord_difference_count = 0;
for (size_t ii = 0; ii < dimDomain; ++ii) { for (size_t ii = 0; ii < coords.size(); ++ii) {
if (Dune::XT::Common::FloatCmp::ne(curr_outside_intersection_coords[ii], coords[ii])) { if (Dune::XT::Common::FloatCmp::ne(curr_outside_intersection_coords[ii], coords[ii])) {
++coord_difference_count; ++coord_difference_count;
} }
...@@ -505,13 +506,13 @@ private: ...@@ -505,13 +506,13 @@ private:
} }
} }
DUNE_THROW(Dune::InvalidStateException, "Could not find outside intersection!"); DUNE_THROW(Dune::InvalidStateException, "Could not find outside intersection!");
return *(real_grid_layer_->ibegin(outside_)); return *(real_grid_layer.ibegin(outside_));
} // ... find_intersection_in_outside() const } // ... find_intersection_in_outside() const
protected: protected:
bool periodic_; bool periodic_;
EntityType outside_; EntityType outside_;
const RealGridLayerType* real_grid_layer_; BaseType intersection_in_outside_;
}; // ... class PeriodicIntersectionImp ... }; // ... class PeriodicIntersectionImp ...
...@@ -529,7 +530,7 @@ class PeriodicIntersectionIterator : public extract_intersection_iterator_t<Real ...@@ -529,7 +530,7 @@ class PeriodicIntersectionIterator : public extract_intersection_iterator_t<Real
typedef RealGridLayerImp RealGridLayerType; typedef RealGridLayerImp RealGridLayerType;
using BaseType = extract_intersection_iterator_t<RealGridLayerImp>; using BaseType = extract_intersection_iterator_t<RealGridLayerImp>;
typedef PeriodicIntersectionIterator<RealGridLayerImp> ThisType; typedef PeriodicIntersectionIterator<RealGridLayerImp> ThisType;
typedef PeriodicIntersectionImp<RealGridLayerType> IntersectionImp; typedef PeriodicIntersectionImp<extract_intersection_t<RealGridLayerImp>> IntersectionImp;
public: public:
typedef typename BaseType::Intersection RealIntersectionType; typedef typename BaseType::Intersection RealIntersectionType;
...@@ -707,7 +708,8 @@ public: ...@@ -707,7 +708,8 @@ public:
typedef typename Grid::ctype ctype; typedef typename Grid::ctype ctype;
// ...except for the Intersection and IntersectionIterator // ...except for the Intersection and IntersectionIterator
typedef Dune::Intersection<extract_grid_t<RealGridLayerType>, PeriodicIntersectionImp<RealGridLayerType>> typedef Dune::Intersection<extract_grid_t<RealGridLayerType>,
PeriodicIntersectionImp<extract_intersection_t<RealGridLayerType>>>
Intersection; Intersection;
typedef PeriodicIntersectionIterator<RealGridLayerType> IntersectionIterator; typedef PeriodicIntersectionIterator<RealGridLayerType> IntersectionIterator;
}; // ... class PeriodicGridLayerWrapperTraits ... }; // ... class PeriodicGridLayerWrapperTraits ...
...@@ -732,7 +734,7 @@ public: ...@@ -732,7 +734,7 @@ public:
typedef typename Traits::IndexSet::IndexType IndexType; typedef typename Traits::IndexSet::IndexType IndexType;
typedef int IntersectionIndexType; typedef int IntersectionIndexType;
typedef typename RealIntersectionType::GlobalCoordinate DomainType; typedef typename RealIntersectionType::GlobalCoordinate DomainType;
typedef Dune::Intersection<Grid, PeriodicIntersectionImp<BaseType>> Intersection; typedef Dune::Intersection<Grid, PeriodicIntersectionImp<RealIntersectionType>> Intersection;
typedef std::vector<std::pair<bool, EntityType>> IntersectionMapType; typedef std::vector<std::pair<bool, EntityType>> IntersectionMapType;
static const size_t dimDomain = BaseType::dimension; static const size_t dimDomain = BaseType::dimension;
static const size_t num_geometries = GlobalGeometryTypeIndex::size(dimDomain); static const size_t num_geometries = GlobalGeometryTypeIndex::size(dimDomain);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment