TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Filter_kernel.cpp
1/****************************************************************************
2* Copyright (c) 2015 - 2016, CEA
3* All rights reserved.
4*
5* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8* 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
9*
10* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
11* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
12* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
13*
14*****************************************************************************/
15#include <Filter_kernel.h>
16#include <IJK_Field.h>
17
19 const int k,
20 const int kg,
21 const int nktot,
22 const double delta,
23 const ArrOfDouble_with_ghost& delta_z)
24{
25 FixedVector<double, 21> filter_kernel;
26 if (kg==0)
27 {
28 filter_kernel[0] = 0.;
29 filter_kernel[1] = 0.;
30 filter_kernel[2] = 0.;
31 filter_kernel[3] = 0.;
32 filter_kernel[4] = 0.;
33 filter_kernel[5] = 0.;
34 filter_kernel[6] = 0.;
35 filter_kernel[7] = 0.;
36 filter_kernel[8] = 0.;
37 filter_kernel[9] = (0.);
38 filter_kernel[10] = (1./2.); //
39 filter_kernel[11] = (1./2.);
40 filter_kernel[12] = 0.;
41 filter_kernel[13] = 0.;
42 filter_kernel[14] = 0.;
43 filter_kernel[15] = 0.;
44 filter_kernel[16] = 0.;
45 filter_kernel[17] = 0.;
46 filter_kernel[18] = 0.;
47 filter_kernel[19] = 0.;
48 filter_kernel[20] = 0.;
49 }
50 else if (kg==(nktot-1))
51 {
52 filter_kernel[0] = 0.;
53 filter_kernel[1] = 0.;
54 filter_kernel[2] = 0.;
55 filter_kernel[3] = 0.;
56 filter_kernel[4] = 0.;
57 filter_kernel[5] = 0.;
58 filter_kernel[6] = 0.;
59 filter_kernel[7] = 0.;
60 filter_kernel[8] = 0.;
61 filter_kernel[9] = (1./2.);
62 filter_kernel[10] = (1./2.); //
63 filter_kernel[11] = (0.);
64 filter_kernel[12] = 0.;
65 filter_kernel[13] = 0.;
66 filter_kernel[14] = 0.;
67 filter_kernel[15] = 0.;
68 filter_kernel[16] = 0.;
69 filter_kernel[17] = 0.;
70 filter_kernel[18] = 0.;
71 filter_kernel[19] = 0.;
72 filter_kernel[20] = 0.;
73 }
74 else
75 {
76 filter_kernel[0] = 0.;
77 filter_kernel[1] = 0.;
78 filter_kernel[2] = 0.;
79 filter_kernel[3] = 0.;
80 filter_kernel[4] = 0.;
81 filter_kernel[5] = 0.;
82 filter_kernel[6] = 0.;
83 filter_kernel[7] = 0.;
84 filter_kernel[8] = 0.;
85 filter_kernel[9] = (1./3.);
86 filter_kernel[10] = (1./3.); //
87 filter_kernel[11] = (1./3.);
88 filter_kernel[12] = 0.;
89 filter_kernel[13] = 0.;
90 filter_kernel[14] = 0.;
91 filter_kernel[15] = 0.;
92 filter_kernel[16] = 0.;
93 filter_kernel[17] = 0.;
94 filter_kernel[18] = 0.;
95 filter_kernel[19] = 0.;
96 filter_kernel[20] = 0.;
97 }
98 return filter_kernel;
99}
100
102 double dz)
103{
104 FixedVector<double, 21> filter_kernel;
105 filter_kernel[0] = 0.;
106 filter_kernel[1] = 0.;
107 filter_kernel[2] = 0.;
108 filter_kernel[3] = 0.;
109 filter_kernel[4] = 0.;
110 filter_kernel[5] = 0.;
111 filter_kernel[6] = 0.;
112 filter_kernel[7] = 0.;
113 filter_kernel[8] = 0.;
114 filter_kernel[9] = (1./3.);
115 filter_kernel[10] = (1./3.); //
116 filter_kernel[11] = (1./3.);
117 filter_kernel[12] = 0.;
118 filter_kernel[13] = 0.;
119 filter_kernel[14] = 0.;
120 filter_kernel[15] = 0.;
121 filter_kernel[16] = 0.;
122 filter_kernel[17] = 0.;
123 filter_kernel[18] = 0.;
124 filter_kernel[19] = 0.;
125 filter_kernel[20] = 0.;
126 return filter_kernel;
127}
128
130 const int k,
131 const int kg,
132 const int nktot,
133 const double delta,
134 const ArrOfDouble_with_ghost& delta_z)
135{
136 FixedVector<double, 21> filter_kernel;
137 if (kg==0)
138 {
139 filter_kernel[0] = 0.;
140 filter_kernel[1] = 0.;
141 filter_kernel[2] = 0.;
142 filter_kernel[3] = 0.;
143 filter_kernel[4] = 0.;
144 filter_kernel[5] = 0.;
145 filter_kernel[6] = 0.;
146 filter_kernel[7] = 0.;
147 filter_kernel[8] = 0.;
148 filter_kernel[9] = (0.);
149 filter_kernel[10] = (1.); //
150 filter_kernel[11] = (0.);
151 filter_kernel[12] = 0.;
152 filter_kernel[13] = 0.;
153 filter_kernel[14] = 0.;
154 filter_kernel[15] = 0.;
155 filter_kernel[16] = 0.;
156 filter_kernel[17] = 0.;
157 filter_kernel[18] = 0.;
158 filter_kernel[19] = 0.;
159 filter_kernel[20] = 0.;
160 }
161 else if (kg==1)
162 {
163 filter_kernel[0] = 0.;
164 filter_kernel[1] = 0.;
165 filter_kernel[2] = 0.;
166 filter_kernel[3] = 0.;
167 filter_kernel[4] = 0.;
168 filter_kernel[5] = 0.;
169 filter_kernel[6] = 0.;
170 filter_kernel[7] = 0.;
171 filter_kernel[8] = 0.;
172 filter_kernel[9] = (0.);
173 filter_kernel[10] = (2./3.); //
174 filter_kernel[11] = (1./3.);
175 filter_kernel[12] = 0.;
176 filter_kernel[13] = 0.;
177 filter_kernel[14] = 0.;
178 filter_kernel[15] = 0.;
179 filter_kernel[16] = 0.;
180 filter_kernel[17] = 0.;
181 filter_kernel[18] = 0.;
182 filter_kernel[19] = 0.;
183 filter_kernel[20] = 0.;
184 }
185 else if (kg==(nktot-2))
186 {
187 filter_kernel[0] = 0.;
188 filter_kernel[1] = 0.;
189 filter_kernel[2] = 0.;
190 filter_kernel[3] = 0.;
191 filter_kernel[4] = 0.;
192 filter_kernel[5] = 0.;
193 filter_kernel[6] = 0.;
194 filter_kernel[7] = 0.;
195 filter_kernel[8] = 0.;
196 filter_kernel[9] = (1./3.);
197 filter_kernel[10] = (2./3.); //
198 filter_kernel[11] = (0.);
199 filter_kernel[12] = 0.;
200 filter_kernel[13] = 0.;
201 filter_kernel[14] = 0.;
202 filter_kernel[15] = 0.;
203 filter_kernel[16] = 0.;
204 filter_kernel[17] = 0.;
205 filter_kernel[18] = 0.;
206 filter_kernel[19] = 0.;
207 filter_kernel[20] = 0.;
208 }
209 else if (kg==(nktot-1))
210 {
211 filter_kernel[0] = 0.;
212 filter_kernel[1] = 0.;
213 filter_kernel[2] = 0.;
214 filter_kernel[3] = 0.;
215 filter_kernel[4] = 0.;
216 filter_kernel[5] = 0.;
217 filter_kernel[6] = 0.;
218 filter_kernel[7] = 0.;
219 filter_kernel[8] = 0.;
220 filter_kernel[9] = (0.);
221 filter_kernel[10] = (1.); //
222 filter_kernel[11] = (0.);
223 filter_kernel[12] = 0.;
224 filter_kernel[13] = 0.;
225 filter_kernel[14] = 0.;
226 filter_kernel[15] = 0.;
227 filter_kernel[16] = 0.;
228 filter_kernel[17] = 0.;
229 filter_kernel[18] = 0.;
230 filter_kernel[19] = 0.;
231 filter_kernel[20] = 0.;
232 }
233 else
234 {
235 filter_kernel[0] = 0.;
236 filter_kernel[1] = 0.;
237 filter_kernel[2] = 0.;
238 filter_kernel[3] = 0.;
239 filter_kernel[4] = 0.;
240 filter_kernel[5] = 0.;
241 filter_kernel[6] = 0.;
242 filter_kernel[7] = 0.;
243 filter_kernel[8] = 0.;
244 filter_kernel[9] = (1./3.);
245 filter_kernel[10] = (1./3.); //
246 filter_kernel[11] = (1./3.);
247 filter_kernel[12] = 0.;
248 filter_kernel[13] = 0.;
249 filter_kernel[14] = 0.;
250 filter_kernel[15] = 0.;
251 filter_kernel[16] = 0.;
252 filter_kernel[17] = 0.;
253 filter_kernel[18] = 0.;
254 filter_kernel[19] = 0.;
255 filter_kernel[20] = 0.;
256 }
257 return filter_kernel;
258}
259
261 double dz)
262{
263 FixedVector<double, 21> filter_kernel;
264 filter_kernel[0] = 0.;
265 filter_kernel[1] = 0.;
266 filter_kernel[2] = 0.;
267 filter_kernel[3] = 0.;
268 filter_kernel[4] = 0.;
269 filter_kernel[5] = 0.;
270 filter_kernel[6] = 0.;
271 filter_kernel[7] = 0.;
272 filter_kernel[8] = 0.;
273 filter_kernel[9] = (1./3.);
274 filter_kernel[10] = (1./3.); //
275 filter_kernel[11] = (1./3.);
276 filter_kernel[12] = 0.;
277 filter_kernel[13] = 0.;
278 filter_kernel[14] = 0.;
279 filter_kernel[15] = 0.;
280 filter_kernel[16] = 0.;
281 filter_kernel[17] = 0.;
282 filter_kernel[18] = 0.;
283 filter_kernel[19] = 0.;
284 filter_kernel[20] = 0.;
285 return filter_kernel;
286}
287
289 const int k,
290 const int kg,
291 const int nktot,
292 const double delta,
293 const ArrOfDouble_with_ghost& delta_z)
294{
295 FixedVector<double, 21> filter_kernel;
296 if (kg==0)
297 {
298 filter_kernel[0] = 0.;
299 filter_kernel[1] = 0.;
300 filter_kernel[2] = 0.;
301 filter_kernel[3] = 0.;
302 filter_kernel[4] = 0.;
303 filter_kernel[5] = 0.;
304 filter_kernel[6] = 0.;
305 filter_kernel[7] = 0.;
306 filter_kernel[8] = 0.;
307 filter_kernel[9] = (0.);
308 filter_kernel[10] = (1.); //
309 filter_kernel[11] = (0.);
310 filter_kernel[12] = 0.;
311 filter_kernel[13] = 0.;
312 filter_kernel[14] = 0.;
313 filter_kernel[15] = 0.;
314 filter_kernel[16] = 0.;
315 filter_kernel[17] = 0.;
316 filter_kernel[18] = 0.;
317 filter_kernel[19] = 0.;
318 filter_kernel[20] = 0.;
319 }
320 else if (kg==0)
321 {
322 filter_kernel[0] = 0.;
323 filter_kernel[1] = 0.;
324 filter_kernel[2] = 0.;
325 filter_kernel[3] = 0.;
326 filter_kernel[4] = 0.;
327 filter_kernel[5] = 0.;
328 filter_kernel[6] = 0.;
329 filter_kernel[7] = 0.;
330 filter_kernel[8] = 0.;
331 filter_kernel[9] = (0.);
332 filter_kernel[10] = (3./4.); //
333 filter_kernel[11] = (1./4.);
334 filter_kernel[12] = 0.;
335 filter_kernel[13] = 0.;
336 filter_kernel[14] = 0.;
337 filter_kernel[15] = 0.;
338 filter_kernel[16] = 0.;
339 filter_kernel[17] = 0.;
340 filter_kernel[18] = 0.;
341 filter_kernel[19] = 0.;
342 filter_kernel[20] = 0.;
343 }
344 else if (kg==(nktot-2))
345 {
346 filter_kernel[0] = 0.;
347 filter_kernel[1] = 0.;
348 filter_kernel[2] = 0.;
349 filter_kernel[3] = 0.;
350 filter_kernel[4] = 0.;
351 filter_kernel[5] = 0.;
352 filter_kernel[6] = 0.;
353 filter_kernel[7] = 0.;
354 filter_kernel[8] = 0.;
355 filter_kernel[9] = (1./4.);
356 filter_kernel[10] = (3./4.); //
357 filter_kernel[11] = (0.);
358 filter_kernel[12] = 0.;
359 filter_kernel[13] = 0.;
360 filter_kernel[14] = 0.;
361 filter_kernel[15] = 0.;
362 filter_kernel[16] = 0.;
363 filter_kernel[17] = 0.;
364 filter_kernel[18] = 0.;
365 filter_kernel[19] = 0.;
366 filter_kernel[20] = 0.;
367 }
368 else if (kg==(nktot-1))
369 {
370 filter_kernel[0] = 0.;
371 filter_kernel[1] = 0.;
372 filter_kernel[2] = 0.;
373 filter_kernel[3] = 0.;
374 filter_kernel[4] = 0.;
375 filter_kernel[5] = 0.;
376 filter_kernel[6] = 0.;
377 filter_kernel[7] = 0.;
378 filter_kernel[8] = 0.;
379 filter_kernel[9] = (0.);
380 filter_kernel[10] = (1.); //
381 filter_kernel[11] = (0.);
382 filter_kernel[12] = 0.;
383 filter_kernel[13] = 0.;
384 filter_kernel[14] = 0.;
385 filter_kernel[15] = 0.;
386 filter_kernel[16] = 0.;
387 filter_kernel[17] = 0.;
388 filter_kernel[18] = 0.;
389 filter_kernel[19] = 0.;
390 filter_kernel[20] = 0.;
391 }
392 else
393 {
394 filter_kernel[0] = 0.;
395 filter_kernel[1] = 0.;
396 filter_kernel[2] = 0.;
397 filter_kernel[3] = 0.;
398 filter_kernel[4] = 0.;
399 filter_kernel[5] = 0.;
400 filter_kernel[6] = 0.;
401 filter_kernel[7] = 0.;
402 filter_kernel[8] = 0.;
403 filter_kernel[9] = (1./4.);
404 filter_kernel[10] = (1./2.); //
405 filter_kernel[11] = (1./4.);
406 filter_kernel[12] = 0.;
407 filter_kernel[13] = 0.;
408 filter_kernel[14] = 0.;
409 filter_kernel[15] = 0.;
410 filter_kernel[16] = 0.;
411 filter_kernel[17] = 0.;
412 filter_kernel[18] = 0.;
413 filter_kernel[19] = 0.;
414 filter_kernel[20] = 0.;
415 }
416 return filter_kernel;
417}
418
420 double dz)
421{
422 FixedVector<double, 21> filter_kernel;
423 filter_kernel[0] = 0.;
424 filter_kernel[1] = 0.;
425 filter_kernel[2] = 0.;
426 filter_kernel[3] = 0.;
427 filter_kernel[4] = 0.;
428 filter_kernel[5] = 0.;
429 filter_kernel[6] = 0.;
430 filter_kernel[7] = 0.;
431 filter_kernel[8] = 0.;
432 filter_kernel[9] = (1./4.);
433 filter_kernel[10] = (1./2.); //
434 filter_kernel[11] = (1./4.);
435 filter_kernel[12] = 0.;
436 filter_kernel[13] = 0.;
437 filter_kernel[14] = 0.;
438 filter_kernel[15] = 0.;
439 filter_kernel[16] = 0.;
440 filter_kernel[17] = 0.;
441 filter_kernel[18] = 0.;
442 filter_kernel[19] = 0.;
443 filter_kernel[20] = 0.;
444 return filter_kernel;
445}
446
448 const int k,
449 const int kg,
450 const int nktot,
451 const double delta,
452 const ArrOfDouble_with_ghost& delta_z)
453{
454 FixedVector<double, 21> filter_kernel;
455 if (kg==0)
456 {
457 filter_kernel[0] = 0.;
458 filter_kernel[1] = 0.;
459 filter_kernel[2] = 0.;
460 filter_kernel[3] = 0.;
461 filter_kernel[4] = 0.;
462 filter_kernel[5] = 0.;
463 filter_kernel[6] = 0.;
464 filter_kernel[7] = 0.;
465 filter_kernel[8] = 0.;
466 filter_kernel[9] = (0.);
467 filter_kernel[10] = (1.); //
468 filter_kernel[11] = (0.);
469 filter_kernel[12] = 0.;
470 filter_kernel[13] = 0.;
471 filter_kernel[14] = 0.;
472 filter_kernel[15] = 0.;
473 filter_kernel[16] = 0.;
474 filter_kernel[17] = 0.;
475 filter_kernel[18] = 0.;
476 filter_kernel[19] = 0.;
477 filter_kernel[20] = 0.;
478 }
479 else if (kg==1)
480 {
481 filter_kernel[0] = 0.;
482 filter_kernel[1] = 0.;
483 filter_kernel[2] = 0.;
484 filter_kernel[3] = 0.;
485 filter_kernel[4] = 0.;
486 filter_kernel[5] = 0.;
487 filter_kernel[6] = 0.;
488 filter_kernel[7] = 0.;
489 filter_kernel[8] = 0.;
490 filter_kernel[9] = (0.);
491 filter_kernel[10] = (5./6.); //
492 filter_kernel[11] = (1./6.);
493 filter_kernel[12] = 0.;
494 filter_kernel[13] = 0.;
495 filter_kernel[14] = 0.;
496 filter_kernel[15] = 0.;
497 filter_kernel[16] = 0.;
498 filter_kernel[17] = 0.;
499 filter_kernel[18] = 0.;
500 filter_kernel[19] = 0.;
501 filter_kernel[20] = 0.;
502 }
503 else if (kg==(nktot-2))
504 {
505 filter_kernel[0] = 0.;
506 filter_kernel[1] = 0.;
507 filter_kernel[2] = 0.;
508 filter_kernel[3] = 0.;
509 filter_kernel[4] = 0.;
510 filter_kernel[5] = 0.;
511 filter_kernel[6] = 0.;
512 filter_kernel[7] = 0.;
513 filter_kernel[8] = 0.;
514 filter_kernel[9] = (1./6.);
515 filter_kernel[10] = (5./6.); //
516 filter_kernel[11] = (0.);
517 filter_kernel[12] = 0.;
518 filter_kernel[13] = 0.;
519 filter_kernel[14] = 0.;
520 filter_kernel[15] = 0.;
521 filter_kernel[16] = 0.;
522 filter_kernel[17] = 0.;
523 filter_kernel[18] = 0.;
524 filter_kernel[19] = 0.;
525 filter_kernel[20] = 0.;
526 }
527 else if (kg==(nktot-1))
528 {
529 filter_kernel[0] = 0.;
530 filter_kernel[1] = 0.;
531 filter_kernel[2] = 0.;
532 filter_kernel[3] = 0.;
533 filter_kernel[4] = 0.;
534 filter_kernel[5] = 0.;
535 filter_kernel[6] = 0.;
536 filter_kernel[7] = 0.;
537 filter_kernel[8] = 0.;
538 filter_kernel[9] = (0.);
539 filter_kernel[10] = (1.); //
540 filter_kernel[11] = (0.);
541 filter_kernel[12] = 0.;
542 filter_kernel[13] = 0.;
543 filter_kernel[14] = 0.;
544 filter_kernel[15] = 0.;
545 filter_kernel[16] = 0.;
546 filter_kernel[17] = 0.;
547 filter_kernel[18] = 0.;
548 filter_kernel[19] = 0.;
549 filter_kernel[20] = 0.;
550 }
551 else
552 {
553 filter_kernel[0] = 0.;
554 filter_kernel[1] = 0.;
555 filter_kernel[2] = 0.;
556 filter_kernel[3] = 0.;
557 filter_kernel[4] = 0.;
558 filter_kernel[5] = 0.;
559 filter_kernel[6] = 0.;
560 filter_kernel[7] = 0.;
561 filter_kernel[8] = 0.;
562 filter_kernel[9] = (1./6.);
563 filter_kernel[10] = (2./3.); //
564 filter_kernel[11] = (1./6.);
565 filter_kernel[12] = 0.;
566 filter_kernel[13] = 0.;
567 filter_kernel[14] = 0.;
568 filter_kernel[15] = 0.;
569 filter_kernel[16] = 0.;
570 filter_kernel[17] = 0.;
571 filter_kernel[18] = 0.;
572 filter_kernel[19] = 0.;
573 filter_kernel[20] = 0.;
574 }
575 return filter_kernel;
576}
577
579 double dz)
580{
581 FixedVector<double, 21> filter_kernel;
582 filter_kernel[0] = 0.;
583 filter_kernel[1] = 0.;
584 filter_kernel[2] = 0.;
585 filter_kernel[3] = 0.;
586 filter_kernel[4] = 0.;
587 filter_kernel[5] = 0.;
588 filter_kernel[6] = 0.;
589 filter_kernel[7] = 0.;
590 filter_kernel[8] = 0.;
591 filter_kernel[9] = (1./6.);
592 filter_kernel[10] = (2./3.); //
593 filter_kernel[11] = (1./6.);
594 filter_kernel[12] = 0.;
595 filter_kernel[13] = 0.;
596 filter_kernel[14] = 0.;
597 filter_kernel[15] = 0.;
598 filter_kernel[16] = 0.;
599 filter_kernel[17] = 0.;
600 filter_kernel[18] = 0.;
601 filter_kernel[19] = 0.;
602 filter_kernel[20] = 0.;
603 return filter_kernel;
604}
605
607 const int k,
608 const int kg,
609 const int nktot,
610 const double delta,
611 const ArrOfDouble_with_ghost& delta_z)
612{
613 FixedVector<double, 21> filter_kernel;
614 if (kg==0)
615 {
616 filter_kernel[0] = 0.;
617 filter_kernel[1] = 0.;
618 filter_kernel[2] = 0.;
619 filter_kernel[3] = 0.;
620 filter_kernel[4] = 0.;
621 filter_kernel[5] = 0.;
622 filter_kernel[6] = 0.;
623 filter_kernel[7] = 0.;
624 filter_kernel[8] = (0.);
625 filter_kernel[9] = (0.);
626 filter_kernel[10] = (1.); //
627 filter_kernel[11] = (0.);
628 filter_kernel[12] = (0.);
629 filter_kernel[13] = 0.;
630 filter_kernel[14] = 0.;
631 filter_kernel[15] = 0.;
632 filter_kernel[16] = 0.;
633 filter_kernel[17] = 0.;
634 filter_kernel[18] = 0.;
635 filter_kernel[19] = 0.;
636 filter_kernel[20] = 0.;
637 }
638 else if (kg==1)
639 {
640 filter_kernel[0] = 0.;
641 filter_kernel[1] = 0.;
642 filter_kernel[2] = 0.;
643 filter_kernel[3] = 0.;
644 filter_kernel[4] = 0.;
645 filter_kernel[5] = 0.;
646 filter_kernel[6] = 0.;
647 filter_kernel[7] = 0.;
648 filter_kernel[8] = (0.);
649 filter_kernel[9] = (0.);
650 filter_kernel[10] = (1./2.); //
651 filter_kernel[11] = (3./8.);
652 filter_kernel[12] = (1./8.);
653 filter_kernel[13] = 0.;
654 filter_kernel[14] = 0.;
655 filter_kernel[15] = 0.;
656 filter_kernel[16] = 0.;
657 filter_kernel[17] = 0.;
658 filter_kernel[18] = 0.;
659 filter_kernel[19] = 0.;
660 filter_kernel[20] = 0.;
661 }
662 else if (kg==2)
663 {
664 filter_kernel[0] = 0.;
665 filter_kernel[1] = 0.;
666 filter_kernel[2] = 0.;
667 filter_kernel[3] = 0.;
668 filter_kernel[4] = 0.;
669 filter_kernel[5] = 0.;
670 filter_kernel[6] = 0.;
671 filter_kernel[7] = 0.;
672 filter_kernel[8] = (0.);
673 filter_kernel[9] = (3./8.);
674 filter_kernel[10] = (1./4.); //
675 filter_kernel[11] = (1./4.);
676 filter_kernel[12] = (1./8.);
677 filter_kernel[13] = 0.;
678 filter_kernel[14] = 0.;
679 filter_kernel[15] = 0.;
680 filter_kernel[16] = 0.;
681 filter_kernel[17] = 0.;
682 filter_kernel[18] = 0.;
683 filter_kernel[19] = 0.;
684 filter_kernel[20] = 0.;
685 }
686 else if (kg==(nktot-3))
687 {
688 filter_kernel[0] = 0.;
689 filter_kernel[1] = 0.;
690 filter_kernel[2] = 0.;
691 filter_kernel[3] = 0.;
692 filter_kernel[4] = 0.;
693 filter_kernel[5] = 0.;
694 filter_kernel[6] = 0.;
695 filter_kernel[7] = 0.;
696 filter_kernel[8] = (1./8.);
697 filter_kernel[9] = (1./4.);
698 filter_kernel[10] = (1./4.); //
699 filter_kernel[11] = (3./8.);
700 filter_kernel[12] = (0.);
701 filter_kernel[13] = 0.;
702 filter_kernel[14] = 0.;
703 filter_kernel[15] = 0.;
704 filter_kernel[16] = 0.;
705 filter_kernel[17] = 0.;
706 filter_kernel[18] = 0.;
707 filter_kernel[19] = 0.;
708 filter_kernel[20] = 0.;
709 }
710 else if (kg==(nktot-2))
711 {
712 filter_kernel[0] = 0.;
713 filter_kernel[1] = 0.;
714 filter_kernel[2] = 0.;
715 filter_kernel[3] = 0.;
716 filter_kernel[4] = 0.;
717 filter_kernel[5] = 0.;
718 filter_kernel[6] = 0.;
719 filter_kernel[7] = 0.;
720 filter_kernel[8] = (1./8.);
721 filter_kernel[9] = (3./8.);
722 filter_kernel[10] = (1./2.); //
723 filter_kernel[11] = (0.);
724 filter_kernel[12] = (0.);
725 filter_kernel[13] = 0.;
726 filter_kernel[14] = 0.;
727 filter_kernel[15] = 0.;
728 filter_kernel[16] = 0.;
729 filter_kernel[17] = 0.;
730 filter_kernel[18] = 0.;
731 filter_kernel[19] = 0.;
732 filter_kernel[20] = 0.;
733 }
734 else if (kg==(nktot-1))
735 {
736 filter_kernel[0] = 0.;
737 filter_kernel[1] = 0.;
738 filter_kernel[2] = 0.;
739 filter_kernel[3] = 0.;
740 filter_kernel[4] = 0.;
741 filter_kernel[5] = 0.;
742 filter_kernel[6] = 0.;
743 filter_kernel[7] = 0.;
744 filter_kernel[8] = (0.);
745 filter_kernel[9] = (0.);
746 filter_kernel[10] = (1.); //
747 filter_kernel[11] = (0.);
748 filter_kernel[12] = (0.);
749 filter_kernel[13] = 0.;
750 filter_kernel[14] = 0.;
751 filter_kernel[15] = 0.;
752 filter_kernel[16] = 0.;
753 filter_kernel[17] = 0.;
754 filter_kernel[18] = 0.;
755 filter_kernel[19] = 0.;
756 filter_kernel[20] = 0.;
757 }
758 else
759 {
760 filter_kernel[0] = 0.;
761 filter_kernel[1] = 0.;
762 filter_kernel[2] = 0.;
763 filter_kernel[3] = 0.;
764 filter_kernel[4] = 0.;
765 filter_kernel[5] = 0.;
766 filter_kernel[6] = 0.;
767 filter_kernel[7] = 0.;
768 filter_kernel[8] = (1./8.);
769 filter_kernel[9] = (1./4.);
770 filter_kernel[10] = (1./4.); //
771 filter_kernel[11] = (1./4.);
772 filter_kernel[12] = (1./8.);
773 filter_kernel[13] = 0.;
774 filter_kernel[14] = 0.;
775 filter_kernel[15] = 0.;
776 filter_kernel[16] = 0.;
777 filter_kernel[17] = 0.;
778 filter_kernel[18] = 0.;
779 filter_kernel[19] = 0.;
780 filter_kernel[20] = 0.;
781 }
782 return filter_kernel;
783}
784
786 double dz)
787{
788 FixedVector<double, 21> filter_kernel;
789 filter_kernel[0] = 0.;
790 filter_kernel[1] = 0.;
791 filter_kernel[2] = 0.;
792 filter_kernel[3] = 0.;
793 filter_kernel[4] = 0.;
794 filter_kernel[5] = 0.;
795 filter_kernel[6] = 0.;
796 filter_kernel[7] = 0.;
797 filter_kernel[8] = (1./8.);
798 filter_kernel[9] = (1./4.);
799 filter_kernel[10] = (1./4.); //
800 filter_kernel[11] = (1./4.);
801 filter_kernel[12] = (1./8.);
802 filter_kernel[13] = 0.;
803 filter_kernel[14] = 0.;
804 filter_kernel[15] = 0.;
805 filter_kernel[16] = 0.;
806 filter_kernel[17] = 0.;
807 filter_kernel[18] = 0.;
808 filter_kernel[19] = 0.;
809 filter_kernel[20] = 0.;
810 return filter_kernel;
811}
812
814 const int k,
815 const int kg,
816 const int nktot,
817 const double delta,
818 const ArrOfDouble_with_ghost& delta_z)
819{
820 FixedVector<double, 21> filter_kernel;
821 if (kg==0)
822 {
823 filter_kernel[0] = 0.;
824 filter_kernel[1] = 0.;
825 filter_kernel[2] = 0.;
826 filter_kernel[3] = 0.;
827 filter_kernel[4] = 0.;
828 filter_kernel[5] = 0.;
829 filter_kernel[6] = 0.;
830 filter_kernel[7] = 0.;
831 filter_kernel[8] = (0.);
832 filter_kernel[9] = (0.);
833 filter_kernel[10] = (1.); //
834 filter_kernel[11] = (0.);
835 filter_kernel[12] = (0.);
836 filter_kernel[13] = 0.;
837 filter_kernel[14] = 0.;
838 filter_kernel[15] = 0.;
839 filter_kernel[16] = 0.;
840 filter_kernel[17] = 0.;
841 filter_kernel[18] = 0.;
842 filter_kernel[19] = 0.;
843 filter_kernel[20] = 0.;
844 }
845 else if (kg==1)
846 {
847 filter_kernel[0] = 0.;
848 filter_kernel[1] = 0.;
849 filter_kernel[2] = 0.;
850 filter_kernel[3] = 0.;
851 filter_kernel[4] = 0.;
852 filter_kernel[5] = 0.;
853 filter_kernel[6] = 0.;
854 filter_kernel[7] = 0.;
855 filter_kernel[8] = (0.);
856 filter_kernel[9] = (0.);
857 filter_kernel[10] = (3./5.); //
858 filter_kernel[11] = (2./5.);
859 filter_kernel[12] = (1./5.);
860 filter_kernel[13] = 0.;
861 filter_kernel[14] = 0.;
862 filter_kernel[15] = 0.;
863 filter_kernel[16] = 0.;
864 filter_kernel[17] = 0.;
865 filter_kernel[18] = 0.;
866 filter_kernel[19] = 0.;
867 filter_kernel[20] = 0.;
868 }
869 else if (kg==2)
870 {
871 filter_kernel[0] = 0.;
872 filter_kernel[1] = 0.;
873 filter_kernel[2] = 0.;
874 filter_kernel[3] = 0.;
875 filter_kernel[4] = 0.;
876 filter_kernel[5] = 0.;
877 filter_kernel[6] = 0.;
878 filter_kernel[7] = 0.;
879 filter_kernel[8] = (0.);
880 filter_kernel[9] = (2./5.);
881 filter_kernel[10] = (1./5.); //
882 filter_kernel[11] = (1./5.);
883 filter_kernel[12] = (1./5.);
884 filter_kernel[13] = 0.;
885 filter_kernel[14] = 0.;
886 filter_kernel[15] = 0.;
887 filter_kernel[16] = 0.;
888 filter_kernel[17] = 0.;
889 filter_kernel[18] = 0.;
890 filter_kernel[19] = 0.;
891 filter_kernel[20] = 0.;
892 }
893 else if (kg==(nktot-3))
894 {
895 filter_kernel[0] = 0.;
896 filter_kernel[1] = 0.;
897 filter_kernel[2] = 0.;
898 filter_kernel[3] = 0.;
899 filter_kernel[4] = 0.;
900 filter_kernel[5] = 0.;
901 filter_kernel[6] = 0.;
902 filter_kernel[7] = 0.;
903 filter_kernel[8] = (1./5.);
904 filter_kernel[9] = (1./5.);
905 filter_kernel[10] = (1./5.); //
906 filter_kernel[11] = (2./5.);
907 filter_kernel[12] = (0.);
908 filter_kernel[13] = 0.;
909 filter_kernel[14] = 0.;
910 filter_kernel[15] = 0.;
911 filter_kernel[16] = 0.;
912 filter_kernel[17] = 0.;
913 filter_kernel[18] = 0.;
914 filter_kernel[19] = 0.;
915 filter_kernel[20] = 0.;
916 }
917 else if (kg==(nktot-2))
918 {
919 filter_kernel[0] = 0.;
920 filter_kernel[1] = 0.;
921 filter_kernel[2] = 0.;
922 filter_kernel[3] = 0.;
923 filter_kernel[4] = 0.;
924 filter_kernel[5] = 0.;
925 filter_kernel[6] = 0.;
926 filter_kernel[7] = 0.;
927 filter_kernel[8] = (1./5.);
928 filter_kernel[9] = (1./5.);
929 filter_kernel[10] = (3./5.); //
930 filter_kernel[11] = (0.);
931 filter_kernel[12] = (0.);
932 filter_kernel[13] = 0.;
933 filter_kernel[14] = 0.;
934 filter_kernel[15] = 0.;
935 filter_kernel[16] = 0.;
936 filter_kernel[17] = 0.;
937 filter_kernel[18] = 0.;
938 filter_kernel[19] = 0.;
939 filter_kernel[20] = 0.;
940 }
941 else if (kg==(nktot-1))
942 {
943 filter_kernel[0] = 0.;
944 filter_kernel[1] = 0.;
945 filter_kernel[2] = 0.;
946 filter_kernel[3] = 0.;
947 filter_kernel[4] = 0.;
948 filter_kernel[5] = 0.;
949 filter_kernel[6] = 0.;
950 filter_kernel[7] = 0.;
951 filter_kernel[8] = (0.);
952 filter_kernel[9] = (0.);
953 filter_kernel[10] = (1.); //
954 filter_kernel[11] = (0.);
955 filter_kernel[12] = (0.);
956 filter_kernel[13] = 0.;
957 filter_kernel[14] = 0.;
958 filter_kernel[15] = 0.;
959 filter_kernel[16] = 0.;
960 filter_kernel[17] = 0.;
961 filter_kernel[18] = 0.;
962 filter_kernel[19] = 0.;
963 filter_kernel[20] = 0.;
964 }
965 else
966 {
967 filter_kernel[0] = 0.;
968 filter_kernel[1] = 0.;
969 filter_kernel[2] = 0.;
970 filter_kernel[3] = 0.;
971 filter_kernel[4] = 0.;
972 filter_kernel[5] = 0.;
973 filter_kernel[6] = 0.;
974 filter_kernel[7] = 0.;
975 filter_kernel[8] = (1./5.);
976 filter_kernel[9] = (1./5.);
977 filter_kernel[10] = (1./5.); //
978 filter_kernel[11] = (1./5.);
979 filter_kernel[12] = (1./5.);
980 filter_kernel[13] = 0.;
981 filter_kernel[14] = 0.;
982 filter_kernel[15] = 0.;
983 filter_kernel[16] = 0.;
984 filter_kernel[17] = 0.;
985 filter_kernel[18] = 0.;
986 filter_kernel[19] = 0.;
987 filter_kernel[20] = 0.;
988 }
989 return filter_kernel;
990}
991
993 double dz)
994{
995 FixedVector<double, 21> filter_kernel;
996 filter_kernel[0] = 0.;
997 filter_kernel[1] = 0.;
998 filter_kernel[2] = 0.;
999 filter_kernel[3] = 0.;
1000 filter_kernel[4] = 0.;
1001 filter_kernel[5] = 0.;
1002 filter_kernel[6] = 0.;
1003 filter_kernel[7] = 0.;
1004 filter_kernel[8] = (1./5.);
1005 filter_kernel[9] = (1./5.);
1006 filter_kernel[10] = (1./5.); //
1007 filter_kernel[11] = (1./5.);
1008 filter_kernel[12] = (1./5.);
1009 filter_kernel[13] = 0.;
1010 filter_kernel[14] = 0.;
1011 filter_kernel[15] = 0.;
1012 filter_kernel[16] = 0.;
1013 filter_kernel[17] = 0.;
1014 filter_kernel[18] = 0.;
1015 filter_kernel[19] = 0.;
1016 filter_kernel[20] = 0.;
1017 return filter_kernel;
1018}
1019
1021 const int k,
1022 const int kg,
1023 const int nktot,
1024 const double delta,
1025 const ArrOfDouble_with_ghost& delta_z)
1026{
1027 FixedVector<double, 21> filter_kernel;
1028 if (kg==0)
1029 {
1030 filter_kernel[0] = 0.;
1031 filter_kernel[1] = 0.;
1032 filter_kernel[2] = 0.;
1033 filter_kernel[3] = 0.;
1034 filter_kernel[4] = 0.;
1035 filter_kernel[5] = 0.;
1036 filter_kernel[6] = 0.;
1037 filter_kernel[7] = (0.);
1038 filter_kernel[8] = (0.);
1039 filter_kernel[9] = (0.);
1040 filter_kernel[10] = (1.); //
1041 filter_kernel[11] = (0.);
1042 filter_kernel[12] = (0.);
1043 filter_kernel[13] = (0.);
1044 filter_kernel[14] = 0.;
1045 filter_kernel[15] = 0.;
1046 filter_kernel[16] = 0.;
1047 filter_kernel[17] = 0.;
1048 filter_kernel[18] = 0.;
1049 filter_kernel[19] = 0.;
1050 filter_kernel[20] = 0.;
1051 }
1052 else if (kg==1)
1053 {
1054 filter_kernel[0] = 0.;
1055 filter_kernel[1] = 0.;
1056 filter_kernel[2] = 0.;
1057 filter_kernel[3] = 0.;
1058 filter_kernel[4] = 0.;
1059 filter_kernel[5] = 0.;
1060 filter_kernel[6] = 0.;
1061 filter_kernel[7] = (0.);
1062 filter_kernel[8] = (0.);
1063 filter_kernel[9] = (0.);
1064 filter_kernel[10] = (3./12.); //
1065 filter_kernel[11] = (5./12.);
1066 filter_kernel[12] = (3./12.);
1067 filter_kernel[13] = (1./12.);
1068 filter_kernel[14] = 0.;
1069 filter_kernel[15] = 0.;
1070 filter_kernel[16] = 0.;
1071 filter_kernel[17] = 0.;
1072 filter_kernel[18] = 0.;
1073 filter_kernel[19] = 0.;
1074 filter_kernel[20] = 0.;
1075 }
1076 else if (kg==2)
1077 {
1078 filter_kernel[0] = 0.;
1079 filter_kernel[1] = 0.;
1080 filter_kernel[2] = 0.;
1081 filter_kernel[3] = 0.;
1082 filter_kernel[4] = 0.;
1083 filter_kernel[5] = 0.;
1084 filter_kernel[6] = 0.;
1085 filter_kernel[7] = (0.);
1086 filter_kernel[8] = (0.);
1087 filter_kernel[9] = (5./12.);
1088 filter_kernel[10] = (1./6.); //
1089 filter_kernel[11] = (1./6.);
1090 filter_kernel[12] = (1./6.);
1091 filter_kernel[13] = (1./12.);
1092 filter_kernel[14] = 0.;
1093 filter_kernel[15] = 0.;
1094 filter_kernel[16] = 0.;
1095 filter_kernel[17] = 0.;
1096 filter_kernel[18] = 0.;
1097 filter_kernel[19] = 0.;
1098 filter_kernel[20] = 0.;
1099 }
1100 else if (kg==3)
1101 {
1102 filter_kernel[0] = 0.;
1103 filter_kernel[1] = 0.;
1104 filter_kernel[2] = 0.;
1105 filter_kernel[3] = 0.;
1106 filter_kernel[4] = 0.;
1107 filter_kernel[5] = 0.;
1108 filter_kernel[6] = 0.;
1109 filter_kernel[7] = (0.);
1110 filter_kernel[8] = (3./12.);
1111 filter_kernel[9] = (1./6.);
1112 filter_kernel[10] = (1./6.); //
1113 filter_kernel[11] = (1./6.);
1114 filter_kernel[12] = (1./6.);
1115 filter_kernel[13] = (1./12.);
1116 filter_kernel[14] = 0.;
1117 filter_kernel[15] = 0.;
1118 filter_kernel[16] = 0.;
1119 filter_kernel[17] = 0.;
1120 filter_kernel[18] = 0.;
1121 filter_kernel[19] = 0.;
1122 filter_kernel[20] = 0.;
1123 }
1124 else if (kg==(nktot-4))
1125 {
1126 filter_kernel[0] = 0.;
1127 filter_kernel[1] = 0.;
1128 filter_kernel[2] = 0.;
1129 filter_kernel[3] = 0.;
1130 filter_kernel[4] = 0.;
1131 filter_kernel[5] = 0.;
1132 filter_kernel[6] = 0.;
1133 filter_kernel[7] = (1./12.);
1134 filter_kernel[8] = (1./6.);
1135 filter_kernel[9] = (1./6.);
1136 filter_kernel[10] = (1./6.); //
1137 filter_kernel[11] = (1./6.);
1138 filter_kernel[12] = (3./12.);
1139 filter_kernel[13] = (0.);
1140 filter_kernel[14] = 0.;
1141 filter_kernel[15] = 0.;
1142 filter_kernel[16] = 0.;
1143 filter_kernel[17] = 0.;
1144 filter_kernel[18] = 0.;
1145 filter_kernel[19] = 0.;
1146 filter_kernel[20] = 0.;
1147 }
1148 else if (kg==(nktot-3))
1149 {
1150 filter_kernel[0] = 0.;
1151 filter_kernel[1] = 0.;
1152 filter_kernel[2] = 0.;
1153 filter_kernel[3] = 0.;
1154 filter_kernel[4] = 0.;
1155 filter_kernel[5] = 0.;
1156 filter_kernel[6] = 0.;
1157 filter_kernel[7] = (1./12.);
1158 filter_kernel[8] = (1./6.);
1159 filter_kernel[9] = (1./6.);
1160 filter_kernel[10] = (1./6.); //
1161 filter_kernel[11] = (5./12.);
1162 filter_kernel[12] = (0.);
1163 filter_kernel[13] = (0.);
1164 filter_kernel[14] = 0.;
1165 filter_kernel[15] = 0.;
1166 filter_kernel[16] = 0.;
1167 filter_kernel[17] = 0.;
1168 filter_kernel[18] = 0.;
1169 filter_kernel[19] = 0.;
1170 filter_kernel[20] = 0.;
1171 }
1172 else if (kg==(nktot-2))
1173 {
1174 filter_kernel[0] = 0.;
1175 filter_kernel[1] = 0.;
1176 filter_kernel[2] = 0.;
1177 filter_kernel[3] = 0.;
1178 filter_kernel[4] = 0.;
1179 filter_kernel[5] = 0.;
1180 filter_kernel[6] = 0.;
1181 filter_kernel[7] = (1./12.);
1182 filter_kernel[8] = (3./12.);
1183 filter_kernel[9] = (5./12.);
1184 filter_kernel[10] = (3./12.); //
1185 filter_kernel[11] = (0.);
1186 filter_kernel[12] = (0.);
1187 filter_kernel[13] = (0.);
1188 filter_kernel[14] = 0.;
1189 filter_kernel[15] = 0.;
1190 filter_kernel[16] = 0.;
1191 filter_kernel[17] = 0.;
1192 filter_kernel[18] = 0.;
1193 filter_kernel[19] = 0.;
1194 filter_kernel[20] = 0.;
1195 }
1196 else if (kg==(nktot-1))
1197 {
1198 filter_kernel[0] = 0.;
1199 filter_kernel[1] = 0.;
1200 filter_kernel[2] = 0.;
1201 filter_kernel[3] = 0.;
1202 filter_kernel[4] = 0.;
1203 filter_kernel[5] = 0.;
1204 filter_kernel[6] = 0.;
1205 filter_kernel[7] = (0.);
1206 filter_kernel[8] = (0.);
1207 filter_kernel[9] = (0.);
1208 filter_kernel[10] = (1.); //
1209 filter_kernel[11] = (0.);
1210 filter_kernel[12] = (0.);
1211 filter_kernel[13] = (0.);
1212 filter_kernel[14] = 0.;
1213 filter_kernel[15] = 0.;
1214 filter_kernel[16] = 0.;
1215 filter_kernel[17] = 0.;
1216 filter_kernel[18] = 0.;
1217 filter_kernel[19] = 0.;
1218 filter_kernel[20] = 0.;
1219 }
1220 else
1221 {
1222 filter_kernel[0] = 0.;
1223 filter_kernel[1] = 0.;
1224 filter_kernel[2] = 0.;
1225 filter_kernel[3] = 0.;
1226 filter_kernel[4] = 0.;
1227 filter_kernel[5] = 0.;
1228 filter_kernel[6] = 0.;
1229 filter_kernel[7] = (1./12.);
1230 filter_kernel[8] = (1./6.);
1231 filter_kernel[9] = (1./6.);
1232 filter_kernel[10] = (1./6.); //
1233 filter_kernel[11] = (1./6.);
1234 filter_kernel[12] = (1./6.);
1235 filter_kernel[13] = (1./12.);
1236 filter_kernel[14] = 0.;
1237 filter_kernel[15] = 0.;
1238 filter_kernel[16] = 0.;
1239 filter_kernel[17] = 0.;
1240 filter_kernel[18] = 0.;
1241 filter_kernel[19] = 0.;
1242 filter_kernel[20] = 0.;
1243 }
1244 return filter_kernel;
1245}
1246
1248 double dz)
1249{
1250 FixedVector<double, 21> filter_kernel;
1251 filter_kernel[0] = 0.;
1252 filter_kernel[1] = 0.;
1253 filter_kernel[2] = 0.;
1254 filter_kernel[3] = 0.;
1255 filter_kernel[4] = 0.;
1256 filter_kernel[5] = 0.;
1257 filter_kernel[6] = 0.;
1258 filter_kernel[7] = (1./12.);
1259 filter_kernel[8] = (1./6.);
1260 filter_kernel[9] = (1./6.);
1261 filter_kernel[10] = (1./6.); //
1262 filter_kernel[11] = (1./6.);
1263 filter_kernel[12] = (1./6.);
1264 filter_kernel[13] = (1./12.);
1265 filter_kernel[14] = 0.;
1266 filter_kernel[15] = 0.;
1267 filter_kernel[16] = 0.;
1268 filter_kernel[17] = 0.;
1269 filter_kernel[18] = 0.;
1270 filter_kernel[19] = 0.;
1271 filter_kernel[20] = 0.;
1272 return filter_kernel;
1273}
1274
1276 const int k,
1277 const int kg,
1278 const int nktot,
1279 const double delta,
1280 const ArrOfDouble_with_ghost& delta_z)
1281{
1282 FixedVector<double, 21> filter_kernel;
1283 if (kg==0)
1284 {
1285 filter_kernel[0] = 0.;
1286 filter_kernel[1] = 0.;
1287 filter_kernel[2] = 0.;
1288 filter_kernel[3] = 0.;
1289 filter_kernel[4] = 0.;
1290 filter_kernel[5] = 0.;
1291 filter_kernel[6] = 0.;
1292 filter_kernel[7] = 0.;
1293 filter_kernel[8] = 0.;
1294 filter_kernel[9] = (0.);
1295 filter_kernel[10] = (1.); //
1296 filter_kernel[11] = (0.);
1297 filter_kernel[12] = 0.;
1298 filter_kernel[13] = 0.;
1299 filter_kernel[14] = 0.;
1300 filter_kernel[15] = 0.;
1301 filter_kernel[16] = 0.;
1302 filter_kernel[17] = 0.;
1303 filter_kernel[18] = 0.;
1304 filter_kernel[19] = 0.;
1305 filter_kernel[20] = 0.;
1306 }
1307 else if (kg==1)
1308 {
1309 filter_kernel[0] = 0.;
1310 filter_kernel[1] = 0.;
1311 filter_kernel[2] = 0.;
1312 filter_kernel[3] = 0.;
1313 filter_kernel[4] = 0.;
1314 filter_kernel[5] = 0.;
1315 filter_kernel[6] = 0.;
1316 filter_kernel[7] = 0.;
1317 filter_kernel[8] = 0.;
1318 filter_kernel[9] = (0.);
1319 filter_kernel[10] = (5./8.); //
1320 filter_kernel[11] = (3./8.);
1321 filter_kernel[12] = 0.;
1322 filter_kernel[13] = 0.;
1323 filter_kernel[14] = 0.;
1324 filter_kernel[15] = 0.;
1325 filter_kernel[16] = 0.;
1326 filter_kernel[17] = 0.;
1327 filter_kernel[18] = 0.;
1328 filter_kernel[19] = 0.;
1329 filter_kernel[20] = 0.;
1330 }
1331 else if (kg==(nktot-2))
1332 {
1333 filter_kernel[0] = 0.;
1334 filter_kernel[1] = 0.;
1335 filter_kernel[2] = 0.;
1336 filter_kernel[3] = 0.;
1337 filter_kernel[4] = 0.;
1338 filter_kernel[5] = 0.;
1339 filter_kernel[6] = 0.;
1340 filter_kernel[7] = 0.;
1341 filter_kernel[8] = 0.;
1342 filter_kernel[9] = (3./8.);
1343 filter_kernel[10] = (5./8.); //
1344 filter_kernel[11] = (0.);
1345 filter_kernel[12] = 0.;
1346 filter_kernel[13] = 0.;
1347 filter_kernel[14] = 0.;
1348 filter_kernel[15] = 0.;
1349 filter_kernel[16] = 0.;
1350 filter_kernel[17] = 0.;
1351 filter_kernel[18] = 0.;
1352 filter_kernel[19] = 0.;
1353 filter_kernel[20] = 0.;
1354 }
1355 else if (kg==(nktot-1))
1356 {
1357 filter_kernel[0] = 0.;
1358 filter_kernel[1] = 0.;
1359 filter_kernel[2] = 0.;
1360 filter_kernel[3] = 0.;
1361 filter_kernel[4] = 0.;
1362 filter_kernel[5] = 0.;
1363 filter_kernel[6] = 0.;
1364 filter_kernel[7] = 0.;
1365 filter_kernel[8] = 0.;
1366 filter_kernel[9] = (0.);
1367 filter_kernel[10] = (1.); //
1368 filter_kernel[11] = (0.);
1369 filter_kernel[12] = 0.;
1370 filter_kernel[13] = 0.;
1371 filter_kernel[14] = 0.;
1372 filter_kernel[15] = 0.;
1373 filter_kernel[16] = 0.;
1374 filter_kernel[17] = 0.;
1375 filter_kernel[18] = 0.;
1376 filter_kernel[19] = 0.;
1377 filter_kernel[20] = 0.;
1378 }
1379 else
1380 {
1381 filter_kernel[0] = 0.;
1382 filter_kernel[1] = 0.;
1383 filter_kernel[2] = 0.;
1384 filter_kernel[3] = 0.;
1385 filter_kernel[4] = 0.;
1386 filter_kernel[5] = 0.;
1387 filter_kernel[6] = 0.;
1388 filter_kernel[7] = 0.;
1389 filter_kernel[8] = 0.;
1390 filter_kernel[9] = (3./8.);
1391 filter_kernel[10] = (1./4.); //
1392 filter_kernel[11] = (3./8.);
1393 filter_kernel[12] = 0.;
1394 filter_kernel[13] = 0.;
1395 filter_kernel[14] = 0.;
1396 filter_kernel[15] = 0.;
1397 filter_kernel[16] = 0.;
1398 filter_kernel[17] = 0.;
1399 filter_kernel[18] = 0.;
1400 filter_kernel[19] = 0.;
1401 filter_kernel[20] = 0.;
1402 }
1403 return filter_kernel;
1404}
1405
1407 double dz)
1408{
1409 FixedVector<double, 21> filter_kernel;
1410 filter_kernel[0] = 0.;
1411 filter_kernel[1] = 0.;
1412 filter_kernel[2] = 0.;
1413 filter_kernel[3] = 0.;
1414 filter_kernel[4] = 0.;
1415 filter_kernel[5] = 0.;
1416 filter_kernel[6] = 0.;
1417 filter_kernel[7] = 0.;
1418 filter_kernel[8] = 0.;
1419 filter_kernel[9] = (3./8.);
1420 filter_kernel[10] = (1./4.); //
1421 filter_kernel[11] = (3./8.);
1422 filter_kernel[12] = 0.;
1423 filter_kernel[13] = 0.;
1424 filter_kernel[14] = 0.;
1425 filter_kernel[15] = 0.;
1426 filter_kernel[16] = 0.;
1427 filter_kernel[17] = 0.;
1428 filter_kernel[18] = 0.;
1429 filter_kernel[19] = 0.;
1430 filter_kernel[20] = 0.;
1431 return filter_kernel;
1432}
1433
1435 const int k,
1436 const int kg,
1437 const int nktot,
1438 const double delta,
1439 const ArrOfDouble_with_ghost& delta_z)
1440{
1441 double dz;
1442 double dm;
1443 double dp;
1444
1445 if (elem)
1446 {
1447 const double dz_glo = (kg<0 || kg>(nktot-1)) ? 0. : delta_z[k];
1448 const double dz_m1_glo = (kg-1<0 || kg-1>(nktot-1)) ? 0. : delta_z[k-1];
1449 const double dz_p1_glo = (kg+1<0 || kg+1>(nktot-1)) ? 0. : delta_z[k+1];
1450 const double delta_m_glo = kg==0 ? 0.5*dz_glo : 0.5*(dz_glo + dz_m1_glo);
1451 const double delta_p_glo = kg==(nktot-1) ? 0.5*dz_glo : 0.5*(dz_glo + dz_p1_glo);
1452
1453 dz = dz_glo;
1454 dm = delta_m_glo;
1455 dp = delta_p_glo;
1456 }
1457 else
1458 {
1459 const double dz_glo = (kg<0 || kg>(nktot-1)) ? 0. : delta_z[k];
1460 const double dz_m1_glo = (kg-1<0 || kg-1>(nktot-1)) ? 0. : delta_z[k-1];
1461 const double delta_m_glo = kg==0 ? 0.5*dz_glo : 0.5*(dz_glo + dz_m1_glo);
1462
1463 dz = delta_m_glo;
1464 dm = dz_m1_glo;
1465 dp = dz_glo;
1466 }
1467
1468 FixedVector<double, 21> filter_kernel;
1469 filter_kernel[0] = 0.;
1470 filter_kernel[1] = 0.;
1471 filter_kernel[2] = 0.;
1472 filter_kernel[3] = 0.;
1473 filter_kernel[4] = 0.;
1474 filter_kernel[5] = 0.;
1475 filter_kernel[6] = 0.;
1476 filter_kernel[7] = 0.;
1477 filter_kernel[8] = 0.;
1478 filter_kernel[9] = delta==0. ? 0. : (delta*delta*dm)/(24.*dz*dp*dm);
1479 filter_kernel[10] = delta==0. ? 0. : 1 - (delta*delta*(dp+dm))/(24.*dz*dp*dm); //
1480 filter_kernel[11] = delta==0. ? 0. : (delta*delta*dp)/(24.*dz*dp*dm);
1481 filter_kernel[12] = 0.;
1482 filter_kernel[13] = 0.;
1483 filter_kernel[14] = 0.;
1484 filter_kernel[15] = 0.;
1485 filter_kernel[16] = 0.;
1486 filter_kernel[17] = 0.;
1487 filter_kernel[18] = 0.;
1488 filter_kernel[19] = 0.;
1489 filter_kernel[20] = 0.;
1490 return filter_kernel;
1491}
1492
1494 double dz)
1495{
1496 FixedVector<double, 21> filter_kernel;
1497 filter_kernel[0] = 0.;
1498 filter_kernel[1] = 0.;
1499 filter_kernel[2] = 0.;
1500 filter_kernel[3] = 0.;
1501 filter_kernel[4] = 0.;
1502 filter_kernel[5] = 0.;
1503 filter_kernel[6] = 0.;
1504 filter_kernel[7] = 0.;
1505 filter_kernel[8] = 0.;
1506 filter_kernel[9] = delta==0. ? 0. : (delta*delta)/(24.*dz*dz);
1507 filter_kernel[10] = delta==0. ? 0. : 1 - (delta*delta*2)/(24.*dz*dz); //
1508 filter_kernel[11] = delta==0. ? 0. : (delta*delta)/(24.*dz*dz);
1509 filter_kernel[12] = 0.;
1510 filter_kernel[13] = 0.;
1511 filter_kernel[14] = 0.;
1512 filter_kernel[15] = 0.;
1513 filter_kernel[16] = 0.;
1514 filter_kernel[17] = 0.;
1515 filter_kernel[18] = 0.;
1516 filter_kernel[19] = 0.;
1517 filter_kernel[20] = 0.;
1518 return filter_kernel;
1519}
1520
FixedVector< double, 21 > uniform(double delta, double dz) override
FixedVector< double, 21 > inhomogeneous(const bool elem, const int k, const int kg, const int nktot, const double delta, const ArrOfDouble_with_ghost &delta_z) override
FixedVector< double, 21 > inhomogeneous(const bool elem, const int k, const int kg, const int nktot, const double delta, const ArrOfDouble_with_ghost &delta_z) override
FixedVector< double, 21 > uniform(double delta, double dz) override
FixedVector< double, 21 > uniform(double delta, double dz) override
FixedVector< double, 21 > inhomogeneous(const bool elem, const int k, const int kg, const int nktot, const double delta, const ArrOfDouble_with_ghost &delta_z) override
FixedVector< double, 21 > uniform(double delta, double dz) override
FixedVector< double, 21 > inhomogeneous(const bool elem, const int k, const int kg, const int nktot, const double delta, const ArrOfDouble_with_ghost &delta_z) override
FixedVector< double, 21 > inhomogeneous(const bool elem, const int k, const int kg, const int nktot, const double delta, const ArrOfDouble_with_ghost &delta_z) override
FixedVector< double, 21 > uniform(double delta, double dz) override
FixedVector< double, 21 > inhomogeneous(const bool elem, const int k, const int kg, const int nktot, const double delta, const ArrOfDouble_with_ghost &delta_z) override
FixedVector< double, 21 > uniform(double delta, double dz) override
FixedVector< double, 21 > inhomogeneous(const bool elem, const int k, const int kg, const int nktot, const double delta, const ArrOfDouble_with_ghost &delta_z) override
FixedVector< double, 21 > uniform(double delta, double dz) override
FixedVector< double, 21 > inhomogeneous(const bool elem, const int k, const int kg, const int nktot, const double delta, const ArrOfDouble_with_ghost &delta_z) override
FixedVector< double, 21 > uniform(double delta, double dz) override
FixedVector< double, 21 > inhomogeneous(const bool elem, const int k, const int kg, const int nktot, const double delta, const ArrOfDouble_with_ghost &delta_z) override
FixedVector< double, 21 > uniform(double delta, double dz) override