dune-alugrid  2.6-git
declaration.hh
Go to the documentation of this file.
1 #ifndef DUNE_ALUGRID_COMMON_DECLARATION_HH
2 #define DUNE_ALUGRID_COMMON_DECLARATION_HH
3 
4 #define ALU3DGRID_PARALLEL HAVE_MPI
5 
6 #include <dune/common/parallel/collectivecommunication.hh>
7 #if ALU3DGRID_PARALLEL
8 #include <dune/common/parallel/mpicollectivecommunication.hh>
9 #endif // #if ALU3DGRID_PARALLEL
10 
11 
12 namespace Dune
13 {
14 
17  {
19  cube
20  };
21 
24  {
27  };
28 
31  {
32  No_Comm noComm_;
34  ALUGridNoComm( const No_Comm& comm ) : noComm_( comm ) {}
35  operator No_Comm () const { return noComm_; }
36  };
37 
39  struct ALUGridMPIComm {
40 #if ALU3DGRID_PARALLEL
41  MPI_Comm mpiComm_;
42  ALUGridMPIComm() : mpiComm_( MPI_COMM_WORLD ) {}
43  ALUGridMPIComm( MPI_Comm comm ) : mpiComm_( comm ) {}
44  operator MPI_Comm () const { return mpiComm_; }
45 #endif
46  } ;
47 
66  template <int dim, int dimworld, ALUGridElementType elType, ALUGridRefinementType refineType,
67  class Comm =
68 #if ALU3DGRID_PARALLEL
69  ALUGridMPIComm
70 #else
71  ALUGridNoComm
72 #endif
73  >
74  class ALUGrid;
75 
76  //- traits class for declaring base class for ALUGrid
77  template <int dim, int dimw, ALUGridElementType elType, class Comm >
78  struct ALUGridBaseGrid ;
79 }
80 #endif // #ifndef DUNE_ALUGRID_COMMON_DECLARATION_HH
Definition: alu3dinclude.hh:50
Definition: alu3dinclude.hh:80
ALUGridElementType
basic element types for ALUGrid
Definition: declaration.hh:17
@ simplex
use only simplex elements (i.e., triangles or tetrahedra)
Definition: declaration.hh:18
@ cube
use only cube elements (i.e., quadrilaterals or hexahedra)
Definition: declaration.hh:19
ALUGridRefinementType
available refinement types for ALUGrid
Definition: declaration.hh:24
@ nonconforming
use non-conforming (red) refinement
Definition: declaration.hh:26
@ conforming
use conforming bisection refinement
Definition: declaration.hh:25
type of class for specialization of serial ALUGrid (No_Comm as communicator)
Definition: declaration.hh:31
ALUGridNoComm(const No_Comm &comm)
Definition: declaration.hh:34
No_Comm noComm_
Definition: declaration.hh:32
ALUGridNoComm()
Definition: declaration.hh:33
type of class for specialization of parallel ALUGrid (MPI_Comm as communicator)
Definition: declaration.hh:39
ALUGridMPIComm()
Definition: declaration.hh:42
MPI_Comm mpiComm_
Definition: declaration.hh:41
ALUGridMPIComm(MPI_Comm comm)
Definition: declaration.hh:43
Definition: declaration.hh:78