mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-12-08 20:38:47 +00:00
Added matlab code samples.
All of these code samples currently are mis-identified in my repositories. I'm donating them to the cause.
This commit is contained in:
49
samples/Matlab/double_gyre.m
Normal file
49
samples/Matlab/double_gyre.m
Normal file
@@ -0,0 +1,49 @@
|
||||
clear all
|
||||
tic
|
||||
% initialize integration time T, f(x,t), discretization size n ----------------
|
||||
T = 8;
|
||||
x_min=0;
|
||||
x_max=2;
|
||||
y_min=0;
|
||||
y_max=1;
|
||||
n=50; % how many points per one measure unit (both in x and in y)
|
||||
ds=1/(n-1);
|
||||
x_res=(x_max-x_min)*n;
|
||||
y_res=(y_max-y_min)*n;
|
||||
grid_x=linspace(x_min,x_max,x_res);
|
||||
grid_y=linspace(y_min,y_max,y_res);
|
||||
|
||||
advected_x=zeros(x_res,y_res);
|
||||
advected_y=zeros(x_res,y_res);
|
||||
% integrate all initial points for t in [0,T] --------------------------------
|
||||
parfor i = 1:x_res
|
||||
for j = 1:y_res
|
||||
[t,X] = ode45(@dg,[0,T],[grid_x(i),grid_y(j)]);
|
||||
% store advected positions as they would appear in (x,y) coords ------
|
||||
advected_x(i,j) = X(length(X(:,1)),1);
|
||||
advected_y(i,j) = X(length(X(:,2)),2);
|
||||
end
|
||||
end
|
||||
%% Compute FTLE
|
||||
sigma=zeros(x_res,y_res);
|
||||
% at each point in interior of grid, store FTLE ------------------------------
|
||||
for i = 2:x_res-1
|
||||
for j = 2:y_res-1
|
||||
% compute Jacobian phi -----------------------------------------------
|
||||
phi(1,1) = (advected_x(i+1,j)-advected_x(i-1,j))/(2*ds);
|
||||
phi(1,2) = (advected_x(i,j-1)-advected_x(i,j+1))/(2*ds);
|
||||
phi(2,1) = (advected_y(i+1,j)-advected_y(i-1,j))/(2*ds);
|
||||
phi(2,2) = (advected_y(i,j-1)-advected_y(i,j+1))/(2*ds);
|
||||
% find max eigenvalue of phi'*phi ------------------------------------
|
||||
lambda_max = max(abs(eig(phi'*phi)));
|
||||
% store FTLE ---------------------------------------------------------
|
||||
sigma(i,j) = log(lambda_max)/abs(2*T);
|
||||
end
|
||||
end
|
||||
toc
|
||||
%% plot FTLE field ------------------------------------------------------------
|
||||
figure
|
||||
contourf(grid_x,grid_y,sigma');
|
||||
colorbar('location','EastOutside');
|
||||
axis equal
|
||||
shading flat
|
||||
Reference in New Issue
Block a user