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
6
This is not ready for general consumption. Just kept for reference. */
7
8
double
filter
= 1./16.;
// maximum filtering for fourth-order filter, see Klemp
9
10
/** @brief Event: viscous_term (i++) */
11
void
event_viscous_term
(
void
)
12
{
13
// fourth-order filter
14
#if dimension == 1
15
for
(
int
_i
= 0;
_i
<
_N
;
_i
++)
/* foreach */
16
foreach_layer
()
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)
23
foreach_layer
()
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
*/
y
int y
Definition
common.h:76
x
int x
Definition
common.h:76
s
scalar s
Definition
embed-tree.h:56
event_viscous_term
void event_viscous_term(void)
Event: viscous_term (i++)
Definition
filter.h:11
filter
double filter
Definition
filter.h:8
foreach_layer
#define foreach_layer()
_i
def _i
Definition
stencils.h:405
layered
filter.h
Generated by
1.9.8