source: src/samples/stencils.hpp@ 66f24d

Last change on this file since 66f24d was 48b662, checked in by Olaf Lenz <olenz@…>, 14 years ago

Moved files in scafacos_fcs one level up.

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

  • Property mode set to 100644
File size: 3.6 KB
Line 
1/**
2 * @file stencils.hpp
3 * @author Julian Iseringhausen <isering@ins.uni-bonn.de>
4 * @date Mon Apr 18 13:06:11 2011
5 *
6 * @brief Some examples for stencils.
7 *
8 */
9
10
11#ifndef STENCILS_HPP_
12#define STENCILS_HPP_
13
14#include "base/stencil.hpp"
15
16namespace VMG
17{
18
19class Injection : public Stencil
20{
21public:
22 Injection() :
23 Stencil(1.0)
24 {}
25};
26
27class InterpolationTrilinear : public Stencil
28{
29public:
30 InterpolationTrilinear() :
31 Stencil(1.0)
32 {
33 this->push_back(Displacement( 1, 0, 0, 0.5));
34 this->push_back(Displacement(-1, 0, 0, 0.5));
35 this->push_back(Displacement( 0, 1, 0, 0.5));
36 this->push_back(Displacement( 0, -1, 0, 0.5));
37 this->push_back(Displacement( 0, 0, 1, 0.5));
38 this->push_back(Displacement( 0, 0, -1, 0.5));
39
40 this->push_back(Displacement( 1, 1, 0, 0.25));
41 this->push_back(Displacement( 1, -1, 0, 0.25));
42 this->push_back(Displacement(-1, 1, 0, 0.25));
43 this->push_back(Displacement(-1, -1, 0, 0.25));
44 this->push_back(Displacement( 0, 1, 1, 0.25));
45 this->push_back(Displacement( 0, 1, -1, 0.25));
46 this->push_back(Displacement( 0, -1, 1, 0.25));
47 this->push_back(Displacement( 0, -1, -1, 0.25));
48 this->push_back(Displacement( 1, 0, 1, 0.25));
49 this->push_back(Displacement( 1, 0, -1, 0.25));
50 this->push_back(Displacement(-1, 0, 1, 0.25));
51 this->push_back(Displacement(-1, 0, -1, 0.25));
52
53 this->push_back(Displacement( 1, 1, 1, 0.125));
54 this->push_back(Displacement( 1, 1, -1, 0.125));
55 this->push_back(Displacement( 1, -1, 1, 0.125));
56 this->push_back(Displacement(-1, 1, 1, 0.125));
57 this->push_back(Displacement( 1, -1, -1, 0.125));
58 this->push_back(Displacement(-1, 1, -1, 0.125));
59 this->push_back(Displacement(-1, -1, 1, 0.125));
60 this->push_back(Displacement(-1, -1, -1, 0.125));
61 }
62};
63
64class RestrictionFullWeight : public Stencil
65{
66public:
67 RestrictionFullWeight() :
68 Stencil(0.125)
69 {
70 this->push_back(Displacement( 1, 0, 0, 0.0625));
71 this->push_back(Displacement(-1, 0, 0, 0.0625));
72 this->push_back(Displacement( 0, 1, 0, 0.0625));
73 this->push_back(Displacement( 0, -1, 0, 0.0625));
74 this->push_back(Displacement( 0, 0, 1, 0.0625));
75 this->push_back(Displacement( 0, 0, -1, 0.0625));
76
77 this->push_back(Displacement( 1, 1, 0, 0.03125));
78 this->push_back(Displacement( 1, -1, 0, 0.03125));
79 this->push_back(Displacement(-1, 1, 0, 0.03125));
80 this->push_back(Displacement(-1, -1, 0, 0.03125));
81 this->push_back(Displacement( 0, 1, 1, 0.03125));
82 this->push_back(Displacement( 0, 1, -1, 0.03125));
83 this->push_back(Displacement( 0, -1, 1, 0.03125));
84 this->push_back(Displacement( 0, -1, -1, 0.03125));
85 this->push_back(Displacement( 1, 0, 1, 0.03125));
86 this->push_back(Displacement( 1, 0, -1, 0.03125));
87 this->push_back(Displacement(-1, 0, 1, 0.03125));
88 this->push_back(Displacement(-1, 0, -1, 0.03125));
89
90 this->push_back(Displacement( 1, 1, 1, 0.015625));
91 this->push_back(Displacement( 1, 1, -1, 0.015625));
92 this->push_back(Displacement( 1, -1, 1, 0.015625));
93 this->push_back(Displacement(-1, 1, 1, 0.015625));
94 this->push_back(Displacement( 1, -1, -1, 0.015625));
95 this->push_back(Displacement(-1, 1, -1, 0.015625));
96 this->push_back(Displacement(-1, -1, 1, 0.015625));
97 this->push_back(Displacement(-1, -1, -1, 0.015625));
98 }
99};
100
101namespace Stencils
102{
103 static const VMG::Stencil Injection = VMG::Injection();
104 static const VMG::Stencil InterpolationTrilinear = VMG::InterpolationTrilinear();
105 static const VMG::Stencil RestrictionFullWeight = VMG::RestrictionFullWeight();
106}
107
108}
109
110#endif /* STENCILS_HPP_ */
Note: See TracBrowser for help on using the repository browser.