dune-alugrid  2.8-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/communication.hh>
7 #if ALU3DGRID_PARALLEL
8 #include <dune/common/parallel/mpicommunication.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 #if ALU3DGRID_PARALLEL
36  ALUGridNoComm( MPI_Comm comm ) : noComm_() {}
37  operator MPI_Comm () const { return MPI_COMM_SELF; }
38 #endif
39  operator No_Comm () const { return noComm_; }
40  };
41 
43  struct ALUGridMPIComm {
44 #if ALU3DGRID_PARALLEL
45  MPI_Comm mpiComm_;
46  ALUGridMPIComm() : mpiComm_( MPI_COMM_WORLD ) {}
47  ALUGridMPIComm( MPI_Comm comm ) : mpiComm_( comm ) {}
48  operator MPI_Comm () const { return mpiComm_; }
49 #endif
50  } ;
51 
70  template <int dim, int dimworld, ALUGridElementType elType, ALUGridRefinementType refineType,
71  class Comm =
72 #if ALU3DGRID_PARALLEL
73  ALUGridMPIComm
74 #else
75  ALUGridNoComm
76 #endif
77  >
78  class ALUGrid;
79 
80  //- traits class for declaring base class for ALUGrid
81  template <int dim, int dimw, ALUGridElementType elType, class Comm >
82  struct ALUGridBaseGrid ;
83 }
84 #endif // #ifndef DUNE_ALUGRID_COMMON_DECLARATION_HH
Definition: alu3dinclude.hh:33
Definition: alu3dinclude.hh:63
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
ALUGridNoComm(MPI_Comm comm)
Definition: declaration.hh:36
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:43
ALUGridMPIComm()
Definition: declaration.hh:46
MPI_Comm mpiComm_
Definition: declaration.hh:45
ALUGridMPIComm(MPI_Comm comm)
Definition: declaration.hh:47
Definition: declaration.hh:82