annotate four.m @ 1253:89dad61cad22 feature/poroelastic

Make Elastic2dVariable faster and more memory efficient
author Martin Almquist <malmquist@stanford.edu>
date Tue, 04 Feb 2020 10:15:42 -0800
parents f6ada1719420
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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