ESyS-Particle  2.3.2
CubicBlockIterator.hpp
Go to the documentation of this file.
1 
2 // //
3 // Copyright (c) 2003-2014 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.opensource.org/licenses/osl-3.0.php //
10 // //
12 
13 
14 #ifndef ESYS_LSMCUBICBLOCKITERATOR_HPP
15 #define ESYS_LSMCUBICBLOCKITERATOR_HPP
16 
17 namespace esys
18 {
19  namespace lsm
20  {
23  {
24  }
25 
27  int numI,
28  int numJ,
29  int numK,
30  double sphereRadius,
31  ClosePackOrientation orientation
32  )
33  : ClosePackIterator(numI, numJ, numK, sphereRadius, orientation)
34  {
35  setDimRepeat(Vec3L(6,3,3));
36 
37  OffsetMatrix offsetMatrix;
38  offsetMatrix(0,0,0) = 0.0;
39  offsetMatrix(0,0,1) = 0.0;
40  offsetMatrix(0,0,2) = getRadius();
41  offsetMatrix(0,0,3) = 0.0;
42  offsetMatrix(0,0,4) = 0.0;
43  offsetMatrix(0,0,5) = getRadius();
44 
45  offsetMatrix(0,1,0) = getRadius();
46  offsetMatrix(0,1,1) = getRadius();
47  offsetMatrix(0,1,2) = 0.0;
48  offsetMatrix(0,1,3) = getRadius();
49  offsetMatrix(0,1,4) = getRadius();
50  offsetMatrix(0,1,5) = 0.0;
51 
52  offsetMatrix(0,2,0) = 0.0;
53  offsetMatrix(0,2,1) = 0.0;
54  offsetMatrix(0,2,2) = getRadius();
55  offsetMatrix(0,2,3) = 0.0;
56  offsetMatrix(0,2,4) = 0.0;
57  offsetMatrix(0,2,5) = getRadius();
58 
59  offsetMatrix(0,3,0) = getRadius();
60  offsetMatrix(0,3,1) = getRadius();
61  offsetMatrix(0,3,2) = 0.0;
62  offsetMatrix(0,3,3) = getRadius();
63  offsetMatrix(0,3,4) = getRadius();
64  offsetMatrix(0,3,5) = 0.0;
65 
66  offsetMatrix(0,4,0) = 0.0;
67  offsetMatrix(0,4,1) = 0.0;
68  offsetMatrix(0,4,2) = getRadius();
69  offsetMatrix(0,4,3) = 0.0;
70  offsetMatrix(0,4,4) = 0.0;
71  offsetMatrix(0,4,5) = getRadius();
72 
73  offsetMatrix(0,5,0) = getRadius();
74  offsetMatrix(0,5,1) = getRadius();
75  offsetMatrix(0,5,2) = 0.0;
76  offsetMatrix(0,5,3) = getRadius();
77  offsetMatrix(0,5,4) = getRadius();
78  offsetMatrix(0,5,5) = 0.0;
79 
80  offsetMatrix(1,0,0) = 0.0;
81  offsetMatrix(1,0,1) = 0.0;
82  offsetMatrix(1,0,2) = 0.0;
83 
84  offsetMatrix(1,1,0) = 2.0*SQRT_1_OVER_3*getRadius();
85  offsetMatrix(1,1,1) = 2.0*SQRT_1_OVER_3*getRadius();
86  offsetMatrix(1,1,2) = 2.0*SQRT_1_OVER_3*getRadius();
87 
88  offsetMatrix(1,2,0) = SQRT_1_OVER_3*getRadius();
89  offsetMatrix(1,2,1) = SQRT_1_OVER_3*getRadius();
90  offsetMatrix(1,2,2) = SQRT_1_OVER_3*getRadius();
91 
92  offsetMatrix(2,0,0) = 0.0;
93  offsetMatrix(2,0,1) = 0.0;
94  offsetMatrix(2,0,2) = 0.0;
95 
96  offsetMatrix(2,1,0) = 0.0;
97  offsetMatrix(2,1,1) = 0.0;
98  offsetMatrix(2,1,2) = 0.0;
99 
100  offsetMatrix(2,2,0) = 0.0;
101  offsetMatrix(2,2,1) = 0.0;
102  offsetMatrix(2,2,2) = 0.0;
103 
104  setOffsetMatrix(offsetMatrix);
105  }
106  }
107 }
108 
109 #endif