Chombo + EB + MF  3.2
TripleCartesianCS.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 // TripleCartesianCS.H
12 // petermc, 28 Jan 2011
13 
14 #ifndef _TRIPLECARTESIANCS_H_
15 #define _TRIPLECARTESIANCS_H_
16 
17 #include "MultiBlockCoordSys.H"
18 #include "NamespaceHeader.H"
19 
20 /// MultiBlockCoordSys consisting of three blocks in each dimension.
22 {
23 public:
24 
25  /**
26  \name Constructors, destructor and defines
27  */
28  /*@{*/
29 
30  ///
31  /** Default constructor.
32  */
34 
35  ///
36  /** Destructor.
37  */
38  virtual ~TripleCartesianCS();
39 
40  virtual void define(const ProblemDomain& a_levelDomain,
41  const RealVect& a_dx);
42 
43  /*@}*/
44 
45  /// block mapping conversion function
46  /** given xi_k in block k, returns which block (k_valid)
47  contains that location in its valid region and its
48  location in that block's computational coordinate space.
49  */
50  virtual void blockRemapping(RealVect& a_xi_valid,
51  int& a_n_valid,
52  const RealVect& a_xiSrc,
53  int a_nSrc) const;
54 
55  virtual Vector<RealVect> displacements(const Vector<RealVect>& a_dstCoords,
56  const Vector<int>& a_dstBlocks,
57  const RealVect& a_srcCoords,
58  int a_srcBlock) const;
59 
60 protected:
61 
62  const static int NUMBLOCKS = D_TERM6(3, *3, *3, *3, *3, *3);
63 
65 
67 
69 
70  // define m_boundaries
71  void defineBoundaries();
72 
73 private:
74 
76  {
77  }
78 
80  {
81  }
82 };
83 
84 
86 {
87 
88 public:
89 
91  {
92  }
93 
95  {
96  }
97 
98  virtual MultiBlockCoordSys* getCoordSys(const ProblemDomain& a_levelDomain,
99  const RealVect& a_dx) const;
100 };
101 
102 #include "NamespaceFooter.H"
103 
104 #endif
void operator=(const TripleCartesianCS &)
Definition: TripleCartesianCS.H:75
#define D_TERM6(a, b, c, d, e, f)
Definition: CHArray.H:40
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:141
virtual void blockRemapping(RealVect &a_xi_valid, int &a_n_valid, const RealVect &a_xiSrc, int a_nSrc) const
block mapping conversion function
MultiBlockCoordSys consisting of three blocks in each dimension.
Definition: TripleCartesianCS.H:21
TripleCartesianCSFactory()
Definition: TripleCartesianCS.H:90
static const int NUMBLOCKS
Definition: TripleCartesianCS.H:62
TripleCartesianCS(const TripleCartesianCS &)
Definition: TripleCartesianCS.H:79
Tuple< IntVect, NUMBLOCKS > m_origin
Definition: TripleCartesianCS.H:64
virtual const NewCoordSys * getCoordSys(int a_n) const
Return the mapping which corresponds to the block with the given index.
Definition: MultiBlockCoordSys.H:250
virtual interface class encapsulating multi-block mapping API
Definition: MultiBlockCoordSys.H:34
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:469
A Real vector in SpaceDim-dimensional space.
Definition: RealVect.H:41
Definition: TripleCartesianCS.H:85
virtual ~TripleCartesianCSFactory()
Definition: TripleCartesianCS.H:94
pure-virtual base class defining factory interface for MultiBlockCoordSys
Definition: MultiBlockCoordSys.H:409
virtual ~TripleCartesianCS()
Box m_blockIndicesBox
Definition: TripleCartesianCS.H:66
virtual void define(const ProblemDomain &a_levelDomain, const RealVect &a_dx)
BaseFab< int > m_blockIndices
Definition: TripleCartesianCS.H:68
virtual Vector< RealVect > displacements(const Vector< RealVect > &a_dstCoords, const Vector< int > &a_dstBlocks, const RealVect &a_srcCoords, int a_srcBlock) const
return displacements