| 1 | /**
|
|---|
| 2 | * @file grid_iterator_suite.hpp
|
|---|
| 3 | * @author Julian Iseringhausen <isering@ins.uni-bonn.de>
|
|---|
| 4 | * @date Thu Apr 21 18:48:09 2011
|
|---|
| 5 | *
|
|---|
| 6 | * @brief Some useful grid iterators.
|
|---|
| 7 | *
|
|---|
| 8 | */
|
|---|
| 9 |
|
|---|
| 10 | #ifndef GRID_ITERATOR_SUITE_HPP_
|
|---|
| 11 | #define GRID_ITERATOR_SUITE_HPP_
|
|---|
| 12 |
|
|---|
| 13 | #include "grid/grid_iterator_set.hpp"
|
|---|
| 14 | #include "grid/grid_iterator.hpp"
|
|---|
| 15 | #include "grid/grid_properties.hpp"
|
|---|
| 16 |
|
|---|
| 17 | namespace VMG
|
|---|
| 18 | {
|
|---|
| 19 |
|
|---|
| 20 | class GridIteratorSuite
|
|---|
| 21 | {
|
|---|
| 22 | public:
|
|---|
| 23 | GridIteratorSuite()
|
|---|
| 24 | {
|
|---|
| 25 | LocalIndices local;
|
|---|
| 26 | SetSubgrids(local);
|
|---|
| 27 | }
|
|---|
| 28 |
|
|---|
| 29 | GridIteratorSuite(const LocalIndices& local)
|
|---|
| 30 | {
|
|---|
| 31 | SetSubgrids(local);
|
|---|
| 32 | }
|
|---|
| 33 |
|
|---|
| 34 | GridIteratorSuite(const GridIteratorSuite& other) :
|
|---|
| 35 | local(other.local),
|
|---|
| 36 | complete_grid(other.complete_grid),
|
|---|
| 37 | inner_local_grid(other.inner_local_grid),
|
|---|
| 38 | halo_1(other.halo_1),
|
|---|
| 39 | halo_2(other.halo_2),
|
|---|
| 40 | boundary_1(other.boundary_1),
|
|---|
| 41 | boundary_2(other.boundary_2),
|
|---|
| 42 | near_boundary_1(other.near_boundary_1),
|
|---|
| 43 | near_boundary_2(other.near_boundary_2)
|
|---|
| 44 | {
|
|---|
| 45 | }
|
|---|
| 46 |
|
|---|
| 47 | virtual ~GridIteratorSuite() {}
|
|---|
| 48 |
|
|---|
| 49 | void SetSubgrids(const LocalIndices& local);
|
|---|
| 50 |
|
|---|
| 51 | const GridIteratorSet& Local() const {return local;}
|
|---|
| 52 | const GridIteratorSet& CompleteGrid() const {return complete_grid;}
|
|---|
| 53 | const GridIteratorSet& InnerLocalGrid() const {return inner_local_grid;}
|
|---|
| 54 |
|
|---|
| 55 | const GridIteratorSet3& Halo1() const {return halo_1;}
|
|---|
| 56 | const GridIteratorSet3& Halo2() const {return halo_2;}
|
|---|
| 57 |
|
|---|
| 58 | const GridIteratorSet3& Boundary1() const {return boundary_1;}
|
|---|
| 59 | const GridIteratorSet3& Boundary2() const {return boundary_2;}
|
|---|
| 60 |
|
|---|
| 61 | const GridIteratorSet3& NearBoundary1() const {return near_boundary_1;}
|
|---|
| 62 | const GridIteratorSet3& NearBoundary2() const {return near_boundary_2;}
|
|---|
| 63 |
|
|---|
| 64 | private:
|
|---|
| 65 | GridIteratorSet local;
|
|---|
| 66 | GridIteratorSet complete_grid;
|
|---|
| 67 | GridIteratorSet inner_local_grid;
|
|---|
| 68 |
|
|---|
| 69 | GridIteratorSet3 halo_1, halo_2;
|
|---|
| 70 | GridIteratorSet3 boundary_1, boundary_2;
|
|---|
| 71 | GridIteratorSet3 near_boundary_1, near_boundary_2;
|
|---|
| 72 | };
|
|---|
| 73 |
|
|---|
| 74 | }
|
|---|
| 75 |
|
|---|
| 76 | #endif /* GRID_ITERATOR_SUITE_HPP_ */
|
|---|