2024-11-18 11:43:09 +01:00
|
|
|
function plotLive2D(psi, Params, Transf, Observ, vrun)
|
2024-11-18 11:14:56 +01:00
|
|
|
set(0,'defaulttextInterpreter','latex')
|
|
|
|
set(groot, 'defaultAxesTickLabelInterpreter','latex'); set(groot, 'defaultLegendInterpreter','latex');
|
|
|
|
|
|
|
|
format long
|
|
|
|
|
|
|
|
% Axes scaling and coordinates in micrometers
|
|
|
|
x = Transf.x * Params.l0 * 1e6;
|
|
|
|
y = Transf.y * Params.l0 * 1e6;
|
|
|
|
|
|
|
|
% Compute probability density |psi|^2
|
|
|
|
nxy = abs(psi).^2;
|
|
|
|
nxyScaled = nxy*(Params.add*10^6)^2;
|
|
|
|
|
|
|
|
% Plotting
|
|
|
|
figure(1);
|
2025-01-22 23:04:36 +01:00
|
|
|
clf
|
2024-11-18 11:43:09 +01:00
|
|
|
set(gcf, 'Name', ['Variational Run: ', num2str(vrun)])
|
2024-11-18 11:14:56 +01:00
|
|
|
set(gcf,'Position', [100, 100, 1600, 900])
|
2025-01-22 23:04:36 +01:00
|
|
|
t = tiledlayout(2, 3, 'TileSpacing', 'compact', 'Padding', 'compact'); % 2x3 grid
|
2024-11-18 11:43:09 +01:00
|
|
|
|
2024-11-18 11:14:56 +01:00
|
|
|
% Plot |psi(x,y)|^2 (density in x and y plane)
|
2025-01-22 23:04:36 +01:00
|
|
|
nexttile; % Equivalent to subplot('Position', [0.05, 0.55, 0.28, 0.4]);
|
2024-11-18 11:14:56 +01:00
|
|
|
plotxy = pcolor(x,y,nxyScaled');
|
|
|
|
set(plotxy, 'EdgeColor', 'none');
|
|
|
|
cbar1 = colorbar;
|
|
|
|
cbar1.Label.Interpreter = 'latex';
|
2025-01-23 01:19:31 +01:00
|
|
|
cbar1.Ticks = []; % Disable the ticks
|
|
|
|
colormap(gca, 'parula')
|
2025-01-22 23:04:36 +01:00
|
|
|
% clim(ax1,[0.00,0.3]);
|
2024-11-18 11:14:56 +01:00
|
|
|
ylabel(cbar1,'$na_{dd}^2$','FontSize',16,'Rotation',270)
|
|
|
|
xlabel('$x$ ($\mu$m)', 'Interpreter', 'latex', 'FontSize', 14)
|
|
|
|
ylabel('$y$ ($\mu$m)', 'Interpreter', 'latex', 'FontSize', 14)
|
|
|
|
title('$|\Psi(x,y)|^2$', 'Interpreter', 'latex', 'FontSize', 14)
|
|
|
|
|
2025-01-22 23:04:36 +01:00
|
|
|
% Plot phase psi
|
|
|
|
nexttile; % Equivalent to subplot('Position', [0.36, 0.55, 0.28, 0.4]);
|
|
|
|
plotxy = pcolor(x, y, angle(psi)');
|
|
|
|
set(plotxy, 'EdgeColor', 'none');
|
|
|
|
cbar2 = colorbar;
|
|
|
|
cbar2.Label.Interpreter = 'latex';
|
2025-01-23 01:19:31 +01:00
|
|
|
colormap(gca, 'hsv')
|
2025-01-22 23:04:36 +01:00
|
|
|
clim([-pi,pi])
|
|
|
|
ylabel(cbar2,'$\phi$','FontSize',16,'Rotation',270)
|
|
|
|
xlabel('$x$ ($\mu$m)', 'Interpreter', 'latex', 'FontSize', 14)
|
|
|
|
ylabel('$y$ ($\mu$m)', 'Interpreter', 'latex', 'FontSize', 14)
|
|
|
|
title('Phase', 'FontSize', 14);
|
2024-11-18 11:14:56 +01:00
|
|
|
|
|
|
|
% Plot residual (time steps vs -log10(residual))
|
2025-01-22 23:04:36 +01:00
|
|
|
nexttile; % Equivalent to subplot('Position', [0.67, 0.55, 0.28, 0.4])
|
2024-11-18 11:14:56 +01:00
|
|
|
plot(-log10(Observ.residual), '-b')
|
|
|
|
ylabel('$-\mathrm{log}_{10}(r)$', 'FontSize', 14); xlabel('Time steps', 'FontSize', 14);
|
|
|
|
title('Residual', 'FontSize', 14);
|
2025-01-22 23:04:36 +01:00
|
|
|
grid on
|
|
|
|
|
2024-11-18 11:14:56 +01:00
|
|
|
% Plot total energy over time
|
2025-01-22 23:04:36 +01:00
|
|
|
nexttile; % Equivalent to subplot('Position', [0.05, 0.05, 0.26, 0.4]);
|
2024-11-18 11:14:56 +01:00
|
|
|
plot(Observ.EVec, '-b')
|
|
|
|
ylabel('$E_{tot}$', 'FontSize', 14); xlabel('Time steps', 'FontSize', 14);
|
|
|
|
title('Total Energy', 'FontSize', 14);
|
2025-01-22 23:04:36 +01:00
|
|
|
grid on
|
|
|
|
|
2024-11-18 11:14:56 +01:00
|
|
|
% Plot chemical potential over time
|
2025-01-22 23:04:36 +01:00
|
|
|
nexttile; % Equivalent to subplot('Position', [0.36, 0.05, 0.26, 0.4]);
|
2024-11-18 11:14:56 +01:00
|
|
|
plot(Observ.mucVec, '-b')
|
|
|
|
ylabel('$\mu$', 'FontSize', 14); xlabel('Time steps', 'FontSize', 14);
|
|
|
|
title('Chemical Potential', 'FontSize', 14);
|
2025-01-22 23:04:36 +01:00
|
|
|
grid on
|
|
|
|
|
|
|
|
% Plot variational width
|
|
|
|
nexttile; % Equivalent to subplot('Position', [0.67, 0.05, 0.26, 0.4]);
|
|
|
|
xlabel('$\ell$', 'FontSize', 14)
|
|
|
|
ylabel('$E_{var}$', 'FontSize', 14)
|
|
|
|
title('Variational Energy', 'FontSize', 14);
|
|
|
|
grid on
|
2024-11-18 11:14:56 +01:00
|
|
|
end
|