AMDiS  2.10
The Adaptive Multi-Dimensional Simulation Toolbox
NoDataTransfer.hpp
1 #pragma once
2 
3 #include <amdis/DataTransfer.hpp>
4 
5 namespace AMDiS {
6 
12 namespace tag {
13 
15  : datatransfer
16  {};
17 
18 } // end namespace tag
19 
20 
26 {
27 public:
28  template <class... Args>
29  void preAdapt(Args&&...) { /* do nothing */ }
30 
31  template <class Basis, class Container>
32  void adapt(Basis const& basis, Container& container)
33  {
34  container.resize(basis);
35  }
36 
37  template <class... Args>
38  void postAdapt(Args&&...) { /* do nothing */ }
39 };
40 
41 template <>
42 struct DataTransferFactory<tag::no_datatransfer>
43 {
44  template <class Basis, class Container,
45  REQUIRES(Concepts::GlobalBasis<Basis>)>
46  static DataTransfer<Basis,Container> create(Basis const&, Container const&)
47  {
48  return NoDataTransfer{};
49  }
50 };
51 
53 
54 } // end namespace AMDiS
Definition: NoDataTransfer.hpp:14
Base tag type for all data transfer tags.
Definition: DataTransfer.hpp:121
Definition: AdaptBase.hpp:6
The base class for data transfer classes.
Definition: DataTransfer.hpp:66
Definition: DataTransfer.hpp:132
Implementation of DataTransfer that does not interpolate, but just resizes the containers to the dime...
Definition: NoDataTransfer.hpp:25