1 #ifdef HAVE_CONFIG_H
2 #  include "config.h"
3 #endif
4 
5 #include <dune/common/parallel/mpihelper.hh>
6 #include <dune/grid/yaspgrid.hh>
7 #include <dune/grid-glue/adapter/gridgluevtkwriter.hh>
8 #include <dune/grid-glue/extractors/codim1extractor.hh>
9 #include <dune/grid-glue/gridglue.hh>
10 #include <dune/grid-glue/merging/contactmerge.hh>
11 
12 const unsigned dim = 3;
13 using Coordinates = Dune::EquidistantOffsetCoordinates<double, dim>;
14 using Grid = Dune::YaspGrid<dim, Coordinates>;
15 using Element = Grid::Codim<0>::Entity;
16 using Extractor = Dune::GridGlue::Codim1Extractor<Grid::LeafGridView>;
17 using GridGlue = Dune::GridGlue::GridGlue<Extractor, Extractor>;
18 using ContactMerge = Dune::GridGlue::ContactMerge<dim, Grid::ctype>;
19 
main(int argc,char ** argv)20 int main(int argc, char** argv)
21 {
22   Dune::MPIHelper::instance(argc, argv);
23 
24   Grid grid0{{0., 0., 0.}, {1., 1., 1.}, {10, 10, 10}};
25   Grid grid1{{.12, 0.23, 1.05}, {1.12, 1.23, 2.05}, {10, 10, 10}};
26 
27   auto truePredicate = [](const Element&, unsigned int) { return true; };
28 
29   auto extractor0 = std::make_shared<Extractor>(grid0.leafGridView(), truePredicate);
30   auto extractor1 = std::make_shared<Extractor>(grid1.leafGridView(), truePredicate);
31 
32   auto merger = std::make_shared<ContactMerge>();
33 
34   GridGlue glue(extractor0, extractor1, merger);
35   glue.build();
36 
37   Dune::GridGlue::GridGlueVtkWriter::write(glue, "contactmerge");
38 
39   return 0;
40 }
41