1 #include <config.h>
2
3 #include <iostream>
4 #include <sstream>
5 #include <string>
6
7 #include <dune/common/parallel/mpihelper.hh>
8
9 #include <dune/grid/idgrid.hh>
10 #include <dune/grid/io/file/dgfparser/dgfwriter.hh>
11
12 #include "../common/gridtype.hh"
13 #include "../common/metagridtags.hh"
14
15 using namespace Dune;
16
17 #include "checkcalls.cc"
18
main(int argc,char ** argv)19 int main (int argc , char **argv)
20 {
21 // this method calls MPI_Init, if MPI is enabled
22 MPIHelper & mpihelper = MPIHelper::instance(argc,argv);
23 int myrank = mpihelper.rank();
24 int mysize = mpihelper.size();
25
26 try {
27 /* use grid-file appropriate for dimensions */
28
29 if( argc < 2 )
30 {
31 std::cerr << "Usage: " << argv[0] << " <dgf file of hostgrid>" << std::endl;
32 return 1;
33 }
34
35 const bool display = (argc > 2);
36
37 //typedef Dune::GridSelector :: GridType HostGridType ;
38 std::string filename( argv[1] );
39 //GridPtr< HostGridType > hostGrid( filename );
40
41 //typedef IdGrid< HostGridType > IdGridType;
42 //IdGridType grid( *hostGrid );
43
44 // meta grid tuple
45 typedef tuple< METAGRIDS > MetaGridTuple;
46 // grid builder type
47 typedef GridBuilder< GridSelector::GridType, MetaGridTuple > GridBuilder;
48 // grid type
49 typedef GridBuilder::Grid Grid;
50
51 GridPtr< Grid > gridPtr( filename );
52 Grid& grid = *gridPtr ;
53
54 //grid.loadBalance();
55
56 {
57 std::cout << "Check serial grid" << std::endl;
58 checkSerial(grid,
59 (mysize == 1) ? 1 : 0,
60 (mysize == 1) ? display: false);
61 }
62
63 // perform parallel check only when more then one proc
64 if(mysize > 1)
65 {
66 if (myrank == 0) std::cout << "Check conform grid" << std::endl;
67 checkParallel(grid,1,0, display );
68 if (myrank == 0) std::cout << "Check non-conform grid" << std::endl;
69 checkParallel(grid,0,2, display );
70 }
71
72 }
73 catch (Dune::Exception &e)
74 {
75 std::cerr << e << std::endl;
76 return 1;
77 }
78 catch (...)
79 {
80 std::cerr << "Generic exception!" << std::endl;
81 return 2;
82 }
83
84 return 0;
85 }
86