Basilisk CFD
Adaptive Cartesian mesh PDE framework
Loading...
Searching...
No Matches
filter.h
Go to the documentation of this file.
1/** @file filter.h
2 */
3/**
4# Fourth-order filter
5
6This is not ready for general consumption. Just kept for reference. */
7
8double filter = 1./16.; // maximum filtering for fourth-order filter, see Klemp
9
10/** @brief Event: viscous_term (i++) */
12{
13 // fourth-order filter
14#if dimension == 1
15 for (int _i = 0; _i < _N; _i++) /* foreach */
17 for (int _s = 0; _s < 1; _s++) /* scalar in {w,u} */
18 s[] -= (s[2] + s[-2] - 4.*(s[1] + s[-1]) + 6.*s[])*filter;
19#else // dimension == 2
20 // this is the 4th-order diagonal-term operator of [Klemp, 2017](#klemp2017)
21 for (int _i = 0; _i < _N; _i++) /* foreach */
22 if (x > 114 && x < 169 && y > 10 && y < 65)
24 for (int _s = 0; _s < 1; _s++) /* scalar in {w,u} */
25 s[] -= ((s[2,2] + s[2,-2] + s[-2,-2] + s[-2,2])/16. +
26 (s[-1,2] + s[1,2] + s[-1,-2] + s[1,-2] +
27 s[2,-1] + s[2,1] + s[-2,-1] + s[-2,1])/4. +
28 3.*(s[2,0] + s[-2,0] + s[0,2] + s[0,-2])/8. -
29 (s[1,1] + s[1,-1] + s[-1,-1] + s[-1,1]) -
30 5.*(s[1,0] + s[-1,0] + s[0,1] + s[0,-1])/2. +
31 41.*s[]/4.)*filter;
32#endif // dimension == 2
33}
34
35/**
36## References
37
38~~~bib
39@article{klemp2017,
40 title={Damping characteristics of horizontal Laplacian diffusion filters},
41 author={Klemp, Joseph B},
42 journal={Monthly Weather Review},
43 volume={145},
44 number={11},
45 pages={4365--4379},
46 year={2017}
47}
48~~~
49*/
int y
Definition common.h:76
int x
Definition common.h:76
scalar s
Definition embed-tree.h:56
void event_viscous_term(void)
Event: viscous_term (i++)
Definition filter.h:11
double filter
Definition filter.h:8
#define foreach_layer()
def _i
Definition stencils.h:405