3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
glue.hh
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3/*****************************************************************************
4 * See the file COPYING for full copying permissions. *
5 * *
6 * This program is free software: you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation, either version 3 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
18 *****************************************************************************/
26#ifndef DUMUX_MULTIDOMAIN_GLUE_HH
27#define DUMUX_MULTIDOMAIN_GLUE_HH
28
32
33namespace Dumux {
34
35template<class DomainGridView, class TargetGridView, class DomainMapper, class TargetMapper>
36class MultiDomainGlue : public IntersectionEntitySet<GridViewGeometricEntitySet<DomainGridView, 0, DomainMapper>,
37 GridViewGeometricEntitySet<TargetGridView, 0, TargetMapper>>
38{
44public:
45 using ParentType::ParentType;
46
47 // TODO: After the deprecation period (after release 3.2) this class can be replaced by an alias template
48 [[deprecated("Will be removed after 3.2. Use default constructor and call build(domainTree, targetTree)!")]]
49 MultiDomainGlue(const DomainTree& domainTree, const TargetTree& targetTree)
50 { this->build(domainTree, targetTree); }
51};
52
61template<class DomainGG, class TargetGG>
62MultiDomainGlue< typename DomainGG::GridView, typename TargetGG::GridView,
63 typename DomainGG::ElementMapper, typename TargetGG::ElementMapper >
64makeGlue(const DomainGG& domainGridGeometry, const TargetGG& targetGridGeometry)
65{
66 MultiDomainGlue< typename DomainGG::GridView, typename TargetGG::GridView,
67 typename DomainGG::ElementMapper, typename TargetGG::ElementMapper > glue;
68 glue.build(domainGridGeometry.boundingBoxTree(), targetGridGeometry.boundingBoxTree());
69 return glue;
70}
71
72} // end namespace Dumux
73
74#endif
An axis-aligned bounding box volume hierarchy for dune grids.
An interface for a set of geometric entities.
A class representing the intersection entites two geometric entity sets.
MultiDomainGlue< typename DomainGG::GridView, typename TargetGG::GridView, typename DomainGG::ElementMapper, typename TargetGG::ElementMapper > makeGlue(const DomainGG &domainGridGeometry, const TargetGG &targetGridGeometry)
Creates the glue object containing the intersections between two grids obtained from given grid geome...
Definition: glue.hh:64
Definition: adapt.hh:29
An axis-aligned bounding box volume tree implementation.
Definition: boundingboxtree.hh:66
An interface for a set of geometric entities based on a GridView.
Definition: geometricentityset.hh:42
A class representing the intersection entites two geometric entity sets.
Definition: intersectionentityset.hh:55
void build(std::shared_ptr< const GridViewGeometricEntitySet< DomainGridView, 0, DomainMapper > > domainSet, std::shared_ptr< const GridViewGeometricEntitySet< TargetGridView, 0, TargetMapper > > targetSet)
Build intersections.
Definition: intersectionentityset.hh:160
Definition: glue.hh:38
MultiDomainGlue(const DomainTree &domainTree, const TargetTree &targetTree)
Definition: glue.hh:49