Calculations/Dipolar-Gas-Simulator/+Plotter/visualizeGSWavefunction2D.m

86 lines
2.9 KiB
Matlab

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','Params','Transf','Observ');
Params = Data.Params;
Transf = Data.Transf;
Observ = Data.Observ;
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
% 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)
ax1 = subplot('Position', [0.05, 0.55, 0.28, 0.4]);
plotxy = pcolor(x,y,nxyScaled');
set(plotxy, 'EdgeColor', 'none');
% shading interp; % Smooth shading
clim(ax1,[0.00,0.3]);
cbar1 = colorbar;
cbar1.Label.Interpreter = 'latex';
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 real part of psi in the x-y plane
subplot('Position', [0.36, 0.55, 0.28, 0.4])
pcolor(x, y, real(psi)');
shading interp;
colorbar;
xlabel('$x$ [$\mu$m]', 'FontSize', 14); ylabel('$y$ [$\mu$m]', 'FontSize', 14);
title('Re$\{\Psi_{xy}\}$', 'FontSize', 14);
% Plot imaginary part of psi in the x-y plane
subplot('Position', [0.67, 0.55, 0.28, 0.4])
pcolor(x, y, imag(psi)');
shading interp;
colorbar;
xlabel('$x$ [$\mu$m]', 'FontSize', 14); ylabel('$y$ [$\mu$m]', 'FontSize', 14);
title('Im$\{\Psi_{xy}\}$', 'FontSize', 14);
% Plot residual (time steps vs -log10(residual))
subplot('Position', [0.05, 0.05, 0.26, 0.4]);
plot(-log10(Observ.residual), '-b')
ylabel('$-\mathrm{log}_{10}(r)$', 'FontSize', 14); xlabel('Time steps', 'FontSize', 14);
title('Residual', 'FontSize', 14);
% Plot total energy over time
subplot('Position', [0.36, 0.05, 0.26, 0.4]);
plot(Observ.EVec, '-b')
ylabel('$E$', 'FontSize', 14); xlabel('Time steps', 'FontSize', 14);
title('Total Energy', 'FontSize', 14);
% Plot chemical potential over time
subplot('Position', [0.67, 0.05, 0.26, 0.4]);
plot(Observ.mucVec, '-b')
ylabel('$\mu$', 'FontSize', 14); xlabel('Time steps', 'FontSize', 14);
title('Chemical Potential', 'FontSize', 14);
end