AMDiS  0.1
The Adaptive Multi-Dimensional Simulation Toolbox
Communication.hpp
1 #pragma once
2 
3 #include <memory>
4 #include <type_traits>
5 
6 #include <dune/common/unused.hh>
7 #include <dune/common/typeutilities.hh>
8 
9 #include <amdis/Output.hpp>
10 
11 namespace AMDiS
12 {
15  {
16  public:
18 
19  template <class T>
21 
22  Impl const& get() const
23  {
24  return *this;
25  }
26 
27  template <class Basis>
28  void update(Basis const&) { /* do nothing */ }
29  };
30 
31 
32  template <class C>
34  {
35  using Communication = C;
36 
37  template <class Basis>
38  static Communication create(Basis const& basis)
39  {
40  return {Environment::comm()};
41  }
42  };
43 
44 
46  template <class C>
48  {
49  using Communication = C;
50 
51  template <class Basis>
52  static Communication create(Basis const& basis, [[maybe_unused]] std::string const& prefix = "")
53  {
55  }
56  };
57 
58 } // end namespace AMDiS
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6
Implementation of a creator pattern for Communication types.
Definition: Communication.hpp:47
Dummy implementation for sequential communication.
Definition: Communication.hpp:14
Definition: Communication.hpp:33
static Dune::MPIHelper::MPICommunicator comm()
Return the MPI_Comm object (or a fake communicator)
Definition: Environment.hpp:86