Chombo + EB + MF  3.2
RemoteCopier.H
Go to the documentation of this file.
1 #ifdef CH_LANG_CC
2 /*
3  * _______ __
4  * / ___/ / ___ __ _ / / ___
5  * / /__/ _ \/ _ \/ V \/ _ \/ _ \
6  * \___/_//_/\___/_/_/_/_.__/\___/
7  * Please refer to Copyright.txt, in Chombo's root directory.
8  */
9 #endif
10 
11 #ifndef _REMOTECOPIER_H_
12 #define _REMOTECOPIER_H_
13 
14 #include "Copier.H"
15 #include <map>
16 #include "NamespaceHeader.H"
17 
18 class RemoteCopier: public Copier
19 {
20  public:
21 
22  RemoteCopier();
23  RemoteCopier(const DisjointBoxLayout& a_level, const BoxLayout& a_dest, const IntVect& a_ghostVect = IntVect::Zero, bool a_exchange = false);
24 
25  virtual ~RemoteCopier();
26 
27  void define(const DisjointBoxLayout& a_level,
28  const BoxLayout& a_dest,
29  const IntVect& a_destGhost,
30  bool a_exchange = false);
31 
32  void define(const DisjointBoxLayout& a_level,
33  const BoxLayout& a_dest,
34  bool a_exchange = false)
35  {
36  define(a_level, a_dest, IntVect::Zero, a_exchange);
37  }
38 
39  //! This allows one to define a transfer of information from boxes that are contained by
40  //! those in a given disjoint box layout.
41  void define(const DisjointBoxLayout& a_from,
42  const DisjointBoxLayout& a_to,
43  const DisjointBoxLayout& a_sourceBoxes,
44  const BoxLayout& a_destBoxes,
45  const std::map<Box, Box>& sourceToDestMapping,
46  const IntVect& a_destGhost,
47  bool a_exchange = false);
48 
49  //! This allows one to define a transfer of information from boxes that are contained by
50  //! those in a given disjoint box layout.
51  void define(const DisjointBoxLayout& a_from,
52  const DisjointBoxLayout& a_to,
53  const DisjointBoxLayout& a_sourceBoxes,
54  const BoxLayout& a_destBoxes,
55  const std::map<Box, Box>& sourceToDestMapping,
56  bool a_exchange = false)
57  {
58  define(a_from, a_to, a_sourceBoxes, a_destBoxes, sourceToDestMapping, IntVect::Zero, a_exchange);
59  }
60 
61  private:
62 
63  void define(const DisjointBoxLayout& a_level,
64  const BoxLayout& a_dest,
65  const ProblemDomain& a_domain,
66  bool a_exchange = false)
67  {
68  }
69 
70  void define(const BoxLayout& a_level,
71  const BoxLayout& a_dest,
72  const ProblemDomain& a_domain,
73  const IntVect& a_destGhost,
74  bool a_exchange = false)
75  {
76  }
77 
78  void exchangeDefine(const DisjointBoxLayout& a_grids,
79  const IntVect& a_ghost)
80  {
81  }
82 
83  void ghostDefine(const DisjointBoxLayout& a_src,
84  const DisjointBoxLayout& a_dest,
85  const ProblemDomain& a_domain,
86  const IntVect& a_srcGhost)
87  {
88  }
89 
90  void reverse()
91  {
92  }
93 
94 };
95 
96 #include "NamespaceFooter.H"
97 #endif
void reverse()
Definition: RemoteCopier.H:90
Definition: RemoteCopier.H:18
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:141
void define(const DisjointBoxLayout &a_from, const DisjointBoxLayout &a_to, const DisjointBoxLayout &a_sourceBoxes, const BoxLayout &a_destBoxes, const std::map< Box, Box > &sourceToDestMapping, bool a_exchange=false)
Definition: RemoteCopier.H:51
A not-necessarily-disjoint collective of boxes.
Definition: BoxLayout.H:145
A strange but true thing to make copying from one boxlayoutdata to another fast.
Definition: Copier.H:152
void define(const DisjointBoxLayout &a_level, const BoxLayout &a_dest, bool a_exchange=false)
Definition: RemoteCopier.H:32
void exchangeDefine(const DisjointBoxLayout &a_grids, const IntVect &a_ghost)
Definition: RemoteCopier.H:78
void define(const BoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, const IntVect &a_destGhost, bool a_exchange=false)
Definition: RemoteCopier.H:70
virtual ~RemoteCopier()
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:30
static const IntVect Zero
Definition: IntVect.H:658
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
void define(const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const IntVect &a_destGhost, bool a_exchange=false)
void ghostDefine(const DisjointBoxLayout &a_src, const DisjointBoxLayout &a_dest, const ProblemDomain &a_domain, const IntVect &a_srcGhost)
Definition: RemoteCopier.H:83
void define(const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, bool a_exchange=false)
Definition: RemoteCopier.H:63