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