source: src/grid/grid_iterator_suite.cpp@ 6f05224

Last change on this file since 6f05224 was 4571da, checked in by Julian Iseringhausen <isering@…>, 14 years ago

vmg: Implement fourth-order discretization of the Poisson equation.

git-svn-id: https://svn.version.fz-juelich.de/scafacos/trunk@1762 5161e1c8-67bf-11de-9fd5-51895aff932f

  • Property mode set to 100644
File size: 3.6 KB
Line 
1/**
2 * @file grid_iterator_suite.cpp
3 * @author Julian Iseringhausen <isering@ins.uni-bonn.de>
4 * @date Thu Apr 21 18:52:43 2011
5 *
6 * @brief Some useful grid iterators.
7 *
8 */
9
10#ifdef HAVE_CONFIG_H
11#include <config.h>
12#endif
13
14#include "grid/grid_iterator_suite.hpp"
15#include "grid/grid_properties.hpp"
16
17using namespace VMG;
18
19void GridIteratorSuite::SetSubgrids(const LocalIndices& local_)
20{
21 local.SetBounds(local_.Begin(), local_.End());
22 complete_grid.SetBounds(0, local_.SizeTotal());
23 inner_local_grid.SetBounds(local_.Begin()+local_.HaloSize1(), local_.End()-local_.HaloSize2());
24
25 halo_1.X().SetBounds(Index(local_.HaloBegin1().X(), 0, 0),
26 Index(local_.HaloEnd1().X(), local_.SizeTotal().Y(), local_.SizeTotal().Z()));
27
28 halo_1.Y().SetBounds(Index(local_.Begin().X(), local_.HaloBegin1().Y(), 0),
29 Index(local_.End().X(), local_.HaloEnd1().Y(), local_.SizeTotal().Z()));
30
31 halo_1.Z().SetBounds(Index(local_.Begin().X(), local_.Begin().Y(), local_.HaloBegin1().Z()),
32 Index(local_.End().X(), local_.End().Y(), local_.HaloEnd1().Z()));
33
34 halo_2.X().SetBounds(Index(local_.HaloBegin2().X(), 0, 0),
35 Index(local_.HaloEnd2().X(), local_.SizeTotal().Y(), local_.SizeTotal().Z()));
36
37 halo_2.Y().SetBounds(Index(local_.Begin().X(), local_.HaloBegin2().Y(), 0),
38 Index(local_.End().X(), local_.HaloEnd2().Y(), local_.SizeTotal().Z()));
39
40 halo_2.Z().SetBounds(Index(local_.Begin().X(), local_.Begin().Y(), local_.HaloBegin2().Z()),
41 Index(local_.End().X(), local_.End().Y(), local_.HaloEnd2().Z()));
42
43 boundary_1.X().SetBounds(Index(local_.BoundaryBegin1().X(), 0, 0),
44 Index(local_.BoundaryEnd1().X(), local_.SizeTotal().Y(), local_.SizeTotal().Z()));
45
46 boundary_1.Y().SetBounds(Index(local_.Begin().X(), local_.BoundaryBegin1().Y(), 0),
47 Index(local_.End().X(), local_.BoundaryEnd1().Y(), local_.SizeTotal().Z()));
48
49 boundary_1.Z().SetBounds(Index(local_.Begin().X(), local_.Begin().Y(), local_.BoundaryBegin1().Z()),
50 Index(local_.End().X(), local_.End().Y(), local_.BoundaryEnd1().Z()));
51
52 boundary_2.X().SetBounds(Index(local_.BoundaryBegin2().X(), 0, 0),
53 Index(local_.BoundaryEnd2().X(), local_.SizeTotal().Y(), local_.SizeTotal().Z()));
54
55
56 boundary_2.Y().SetBounds(Index(local_.Begin().X(), local_.BoundaryBegin2().Y(), 0),
57 Index(local_.End().X(), local_.BoundaryEnd2().Y(), local_.SizeTotal().Z()));
58
59 boundary_2.Z().SetBounds(Index(local_.Begin().X(), local_.Begin().Y(), local_.BoundaryBegin2().Z()),
60 Index(local_.End().X(), local_.End().Y(), local_.BoundaryEnd2().Z()));
61
62 near_boundary_1.X().SetBounds(Index(local_.Begin().X(), 0, 0),
63 Index(local_.Begin().X()+local_.HaloSize1().X(),
64 local_.SizeTotal().Y(),
65 local_.SizeTotal().Z()));
66
67 near_boundary_1.Y().SetBounds(Index(local_.Begin().X(), local_.Begin().Y(), 0),
68 Index(local_.End().X(),
69 local_.Begin().Y()+local_.HaloSize1().Y(),
70 local_.SizeTotal().Z()));
71
72 near_boundary_1.Z().SetBounds(Index(local_.Begin().X(), local_.Begin().Y(), local_.Begin().Z()),
73 Index(local_.End().X(),
74 local_.End().Y(),
75 local_.Begin().Z()+local_.HaloSize1().Z()));
76
77 near_boundary_2.X().SetBounds(Index(local_.End().X()-local_.HaloSize2().X(),
78 0,
79 0),
80 Index(local_.End().X(), local_.SizeTotal().Y(), local_.SizeTotal().Z()));
81
82 near_boundary_2.Y().SetBounds(Index(local_.Begin().X(),
83 local_.End().Y()-local_.HaloSize2().Y(),
84 0),
85 Index(local_.End().X(), local_.End().Y(), local_.SizeTotal().Z()));
86
87 near_boundary_2.Z().SetBounds(Index(local_.Begin().X(),
88 local_.Begin().Y(),
89 local_.End().Z()-local_.HaloSize2().Z()),
90 local_.End());
91}
Note: See TracBrowser for help on using the repository browser.