Mercurial > repos > public > sbplib
annotate four.m @ 1012:1e437c9e5132 feature/advectionRV
Create residual viscosity package +rv and generalize the ResidualViscosity class
- Generalize residual viscosity, by passing user-defined flux and calculating the time derivative outside of the update.
- Create separate RungekuttaRV specifically using interior RV updates
- Separate the artifical dissipation operator from the scheme AdvectionRV1D so that the same scheme can be reused for creating the diff op used by the ResidualViscosity class
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Wed, 05 Dec 2018 13:44:10 +0100 |
parents | f6ada1719420 |
children |
rev | line source |
---|---|
598
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 % four returns the fourier transform u_hat of the function u and the frequencies w |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 function [w, u_hat] = four(x, u) |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 u_hat = fft(u); |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
4 |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 N = length(x); |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
6 L = x(end) - x(1); |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
7 |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 k = shift_k(0:N-1); |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 u_hat = fftshift(u_hat); |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 dw = 2*pi/L; |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
13 w = dw*k; |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 end |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
15 |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
16 function k_shifted = shift_k(k) |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
17 N = length(k); |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
18 k_shifted = [-floor(N/2):-1, 0, 1:ceil(N/2)-1]; |
f6ada1719420
Add functions for calculating fourier transforms
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
19 end |