46 integer,
intent(in) :: dim
47 integer,
intent(in) :: order
52 if (dim == 2) n = n + 12
53 if (dim == 3) n = n + 44
61 integer,
intent(in) :: dim
62 integer,
intent(in) :: order
67 if (dim == 2) n = n + 2
68 if (dim == 3) n = n + 4
76 type(stencil_t),
intent(inout) :: this
77 integer,
intent(in) :: dim
78 integer,
intent(in) :: order
103 this%points(i, n) = j
106 n = n + 1; this%points(1:2, n) = (/ -2, 1 /)
107 n = n + 1; this%points(1:2, n) = (/ -2, -1 /)
108 n = n + 1; this%points(1:2, n) = (/ -1, 2 /)
109 n = n + 1; this%points(1:2, n) = (/ -1, 1 /)
110 n = n + 1; this%points(1:2, n) = (/ -1, -1 /)
111 n = n + 1; this%points(1:2, n) = (/ -1, -2 /)
112 n = n + 1; this%points(1:2, n) = (/ 1, 2 /)
113 n = n + 1; this%points(1:2, n) = (/ 1, 1 /)
114 n = n + 1; this%points(1:2, n) = (/ 1, -1 /)
115 n = n + 1; this%points(1:2, n) = (/ 1, -2 /)
116 n = n + 1; this%points(1:2, n) = (/ 2, 1 /)
117 n = n + 1; this%points(1:2, n) = (/ 2, -1 /)
124 this%points(i, n) = j
127 n = n + 1; this%points(1:3, n) = (/ -2, 1, 0 /)
128 n = n + 1; this%points(1:3, n) = (/ -2, -1, 0 /)
129 n = n + 1; this%points(1:3, n) = (/ -1, 2, 0 /)
130 n = n + 1; this%points(1:3, n) = (/ -1, 1, 0 /)
131 n = n + 1; this%points(1:3, n) = (/ -1, -1, 0 /)
132 n = n + 1; this%points(1:3, n) = (/ -1, -2, 0 /)
133 n = n + 1; this%points(1:3, n) = (/ 1, 2, 0 /)
134 n = n + 1; this%points(1:3, n) = (/ 1, 1, 0 /)
135 n = n + 1; this%points(1:3, n) = (/ 1, -1, 0 /)
136 n = n + 1; this%points(1:3, n) = (/ 1, -2, 0 /)
137 n = n + 1; this%points(1:3, n) = (/ 2, 1, 0 /)
138 n = n + 1; this%points(1:3, n) = (/ 2, -1, 0 /)
140 n = n + 1; this%points(1:3, n) = (/ -2, 0, 1 /)
141 n = n + 1; this%points(1:3, n) = (/ -2, 0, -1 /)
142 n = n + 1; this%points(1:3, n) = (/ -1, 0, 2 /)
143 n = n + 1; this%points(1:3, n) = (/ -1, 0, 1 /)
144 n = n + 1; this%points(1:3, n) = (/ -1, 0, -1 /)
145 n = n + 1; this%points(1:3, n) = (/ -1, 0, -2 /)
146 n = n + 1; this%points(1:3, n) = (/ 1, 0, 2 /)
147 n = n + 1; this%points(1:3, n) = (/ 1, 0, 1 /)
148 n = n + 1; this%points(1:3, n) = (/ 1, 0, -1 /)
149 n = n + 1; this%points(1:3, n) = (/ 1, 0, -2 /)
150 n = n + 1; this%points(1:3, n) = (/ 2, 0, 1 /)
151 n = n + 1; this%points(1:3, n) = (/ 2, 0, -1 /)
153 n = n + 1; this%points(1:3, n) = (/ 0, -2, 1 /)
154 n = n + 1; this%points(1:3, n) = (/ 0, -2, -1 /)
155 n = n + 1; this%points(1:3, n) = (/ 0, -1, 2 /)
156 n = n + 1; this%points(1:3, n) = (/ 0, -1, 1 /)
157 n = n + 1; this%points(1:3, n) = (/ 0, -1, -1 /)
158 n = n + 1; this%points(1:3, n) = (/ 0, -1, -2 /)
159 n = n + 1; this%points(1:3, n) = (/ 0, 1, 2 /)
160 n = n + 1; this%points(1:3, n) = (/ 0, 1, 1 /)
161 n = n + 1; this%points(1:3, n) = (/ 0, 1, -1 /)
162 n = n + 1; this%points(1:3, n) = (/ 0, 1, -2 /)
163 n = n + 1; this%points(1:3, n) = (/ 0, 2, 1 /)
164 n = n + 1; this%points(1:3, n) = (/ 0, 2, -1 /)
166 n = n + 1; this%points(1:3, n) = (/ -1, -1, -1 /)
167 n = n + 1; this%points(1:3, n) = (/ -1, -1, 1 /)
168 n = n + 1; this%points(1:3, n) = (/ -1, 1, -1 /)
169 n = n + 1; this%points(1:3, n) = (/ -1, 1, 1 /)
170 n = n + 1; this%points(1:3, n) = (/ 1, -1, -1 /)
171 n = n + 1; this%points(1:3, n) = (/ 1, -1, 1 /)
172 n = n + 1; this%points(1:3, n) = (/ 1, 1, -1 /)
173 n = n + 1; this%points(1:3, n) = (/ 1, 1, 1 /)
186 integer,
intent(in) :: dim
187 integer,
intent(in) :: dir
188 integer,
intent(in) :: order
198 this%points(dir, n) = i
203 this%points(j, n) = -1
205 this%points(j, n) = 1
217 integer,
intent(in) :: dim
218 integer,
intent(in) :: order
219 integer,
intent(out) :: pol(:,:)
245 n = n + 1; pol(1:2, n) = (/ 1, 1 /)
246 n = n + 1; pol(1:2, n) = (/ 1, 2 /)
247 n = n + 1; pol(1:2, n) = (/ 1, 3 /)
248 n = n + 1; pol(1:2, n) = (/ 1, 4 /)
249 n = n + 1; pol(1:2, n) = (/ 2, 1 /)
250 n = n + 1; pol(1:2, n) = (/ 2, 2 /)
251 n = n + 1; pol(1:2, n) = (/ 2, 3 /)
252 n = n + 1; pol(1:2, n) = (/ 2, 4 /)
253 n = n + 1; pol(1:2, n) = (/ 3, 1 /)
254 n = n + 1; pol(1:2, n) = (/ 3, 2 /)
255 n = n + 1; pol(1:2, n) = (/ 4, 1 /)
256 n = n + 1; pol(1:2, n) = (/ 4, 2 /)
267 n = n + 1; pol(1:3, n) = (/ 1, 1, 0 /)
268 n = n + 1; pol(1:3, n) = (/ 1, 2, 0 /)
269 n = n + 1; pol(1:3, n) = (/ 1, 3, 0 /)
270 n = n + 1; pol(1:3, n) = (/ 1, 4, 0 /)
271 n = n + 1; pol(1:3, n) = (/ 2, 1, 0 /)
272 n = n + 1; pol(1:3, n) = (/ 2, 2, 0 /)
273 n = n + 1; pol(1:3, n) = (/ 2, 3, 0 /)
274 n = n + 1; pol(1:3, n) = (/ 2, 4, 0 /)
275 n = n + 1; pol(1:3, n) = (/ 3, 1, 0 /)
276 n = n + 1; pol(1:3, n) = (/ 3, 2, 0 /)
277 n = n + 1; pol(1:3, n) = (/ 4, 1, 0 /)
278 n = n + 1; pol(1:3, n) = (/ 4, 2, 0 /)
280 n = n + 1; pol(1:3, n) = (/ 1, 0, 1 /)
281 n = n + 1; pol(1:3, n) = (/ 1, 0, 2 /)
282 n = n + 1; pol(1:3, n) = (/ 1, 0, 3 /)
283 n = n + 1; pol(1:3, n) = (/ 1, 0, 4 /)
284 n = n + 1; pol(1:3, n) = (/ 2, 0, 1 /)
285 n = n + 1; pol(1:3, n) = (/ 2, 0, 2 /)
286 n = n + 1; pol(1:3, n) = (/ 2, 0, 3 /)
287 n = n + 1; pol(1:3, n) = (/ 2, 0, 4 /)
288 n = n + 1; pol(1:3, n) = (/ 3, 0, 1 /)
289 n = n + 1; pol(1:3, n) = (/ 3, 0, 2 /)
290 n = n + 1; pol(1:3, n) = (/ 4, 0, 1 /)
291 n = n + 1; pol(1:3, n) = (/ 4, 0, 2 /)
293 n = n + 1; pol(1:3, n) = (/ 0, 1, 1 /)
294 n = n + 1; pol(1:3, n) = (/ 0, 1, 2 /)
295 n = n + 1; pol(1:3, n) = (/ 0, 1, 3 /)
296 n = n + 1; pol(1:3, n) = (/ 0, 1, 4 /)
297 n = n + 1; pol(1:3, n) = (/ 0, 2, 1 /)
298 n = n + 1; pol(1:3, n) = (/ 0, 2, 2 /)
299 n = n + 1; pol(1:3, n) = (/ 0, 2, 3 /)
300 n = n + 1; pol(1:3, n) = (/ 0, 2, 4 /)
301 n = n + 1; pol(1:3, n) = (/ 0, 3, 1 /)
302 n = n + 1; pol(1:3, n) = (/ 0, 3, 2 /)
303 n = n + 1; pol(1:3, n) = (/ 0, 4, 1 /)
304 n = n + 1; pol(1:3, n) = (/ 0, 4, 2 /)
306 n = n + 1; pol(1:3, n) = (/ 1, 1, 1 /)
307 n = n + 1; pol(1:3, n) = (/ 1, 1, 2 /)
308 n = n + 1; pol(1:3, n) = (/ 1, 2, 1 /)
309 n = n + 1; pol(1:3, n) = (/ 1, 2, 2 /)
310 n = n + 1; pol(1:3, n) = (/ 2, 1, 1 /)
311 n = n + 1; pol(1:3, n) = (/ 2, 1, 2 /)
312 n = n + 1; pol(1:3, n) = (/ 2, 2, 1 /)
313 n = n + 1; pol(1:3, n) = (/ 2, 2, 2 /)
323 integer,
intent(in) :: dim
324 integer,
intent(in) :: dir
325 integer,
intent(in) :: order
326 integer,
intent(out) :: pol(:,:)
342 n = n + 1; pol(1:2, n) = (/ 0, 1 /)
343 n = n + 1; pol(1:2, n) = (/ 0, 2 /)
345 n = n + 1; pol(1:2, n) = (/ 1, 0 /)
346 n = n + 1; pol(1:2, n) = (/ 2, 0 /)
351 n = n + 1; pol(1:3, n) = (/ 0, 1, 0 /)
352 n = n + 1; pol(1:3, n) = (/ 0, 2, 0 /)
353 n = n + 1; pol(1:3, n) = (/ 0, 0, 1 /)
354 n = n + 1; pol(1:3, n) = (/ 0, 0, 2 /)
356 n = n + 1; pol(1:3, n) = (/ 1, 0, 0 /)
357 n = n + 1; pol(1:3, n) = (/ 2, 0, 0 /)
358 n = n + 1; pol(1:3, n) = (/ 0, 0, 1 /)
359 n = n + 1; pol(1:3, n) = (/ 0, 0, 2 /)
361 n = n + 1; pol(1:3, n) = (/ 1, 0, 0 /)
362 n = n + 1; pol(1:3, n) = (/ 2, 0, 0 /)
363 n = n + 1; pol(1:3, n) = (/ 0, 1, 0 /)
364 n = n + 1; pol(1:3, n) = (/ 0, 2, 0 /)
This module defines stencils used in Octopus.
subroutine, public stencil_allocate(this, dim, size)
subroutine, public stencil_init_center(this)
This module defines routines, generating operators for a stencil consisting of a star and a cross....
subroutine, public stencil_starplus_pol_grad(dim, dir, order, pol)
subroutine, public stencil_starplus_pol_lapl(dim, order, pol)
subroutine, public stencil_starplus_get_lapl(this, dim, order)
subroutine, public stencil_starplus_get_grad(this, dim, dir, order)
integer function, public stencil_starplus_size_lapl(dim, order)
integer function, public stencil_starplus_size_grad(dim, order)
The class representing the stencil, which is used for non-local mesh operations.