function visualizeGSWavefunction2D(folder_path, run_index) set(0,'defaulttextInterpreter','latex') set(groot, 'defaultAxesTickLabelInterpreter','latex'); set(groot, 'defaultLegendInterpreter','latex'); % Load data Data = load(sprintf(horzcat(folder_path, '/Run_%03i/psi_gs.mat'),run_index),'psi','Transf','Observ','Params','VParams'); Transf = Data.Transf; Observ = Data.Observ; Params = Data.Params; VParams = Data.VParams; if isgpuarray(Data.psi) psi = gather(Data.psi); else psi = Data.psi; end if isgpuarray(Data.Observ.residual) Observ.residual = gather(Data.Observ.residual); else Observ.residual = Data.Observ.residual; end % Set long format for output format long % Coordinates in micrometers x = Transf.x * Params.l0 * 1e6; y = Transf.y * Params.l0 * 1e6; % Plotting figure('Position', [100, 100, 1600, 900]); clf t = tiledlayout(2, 3, 'TileSpacing', 'compact', 'Padding', 'compact'); % 2x3 grid % Compute probability density |psi|^2 nxy = abs(psi).^2; nxyScaled = nxy*(Params.add*10^6)^2; % Plot |psi(x,y)|^2 (density in x and y plane) nexttile; % Equivalent to subplot('Position', [0.05, 0.55, 0.28, 0.4]); plotxy = pcolor(x,y,nxyScaled'); set(plotxy, 'EdgeColor', 'none'); cbar1 = colorbar; cbar1.Label.Interpreter = 'latex'; colormap(gca, 'parula') % clim(ax1,[0.00,0.3]); 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) % 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'; colormap(gca, 'hsv') 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); % Plot residual (time steps vs -log10(residual)) nexttile; % Equivalent to subplot('Position', [0.67, 0.55, 0.28, 0.4]) plot(-log10(Observ.residual), '-b') ylabel('$-\mathrm{log}_{10}(r)$', 'FontSize', 14); xlabel('Time steps', 'FontSize', 14); title('Residual', 'FontSize', 14); grid on % Plot total energy over time nexttile; % Equivalent to subplot('Position', [0.05, 0.05, 0.26, 0.4]); plot(Observ.EVec, '-b') ylabel('$E$', 'FontSize', 14); xlabel('Time steps', 'FontSize', 14); title('Total Energy', 'FontSize', 14); grid on % Plot chemical potential over time nexttile; % Equivalent to subplot('Position', [0.36, 0.05, 0.26, 0.4]); plot(Observ.mucVec, '-b') ylabel('$\mu$', 'FontSize', 14); xlabel('Time steps', 'FontSize', 14); title('Chemical Potential', 'FontSize', 14); grid on % Plot variational width nexttile; % Equivalent to subplot('Position', [0.67, 0.05, 0.26, 0.4]); plot(VParams.ells,VParams.E_vs_iter,'LineStyle','none','Marker','o','MarkerSize',3,'Color','b','MarkerFaceColor','b') xlabel('$\ell$', 'FontSize', 14) ylabel('$E_{var}$', 'FontSize', 14) title('Variational Energy', 'FontSize', 14); grid on end