Minor modifications.

This commit is contained in:
Karthik 2025-04-08 15:34:02 +02:00
parent 5053e3ffba
commit 905f768993
2 changed files with 20 additions and 21 deletions

View File

@ -52,32 +52,34 @@ Plotter.visualizeTrapPotential(sim.Potential,Params,Transf)
Plotter.visualizeWavefunction(psi,Params,Transf)
%% Imaginary-Time followed by Real-time
%% Imaginary-Time followed by Real-time
% - Imaginary-Time
OptionsStruct = struct;
OptionsStruct.NumberOfAtoms = 80000;
OptionsStruct.DipolarPolarAngle = deg2rad(0);
OptionsStruct.DipolarAzimuthAngle = 0;
OptionsStruct.DipolarAzimuthAngle = deg2rad(0);
OptionsStruct.ScatteringLength = 110;
OptionsStruct.TrapFrequencies = [50, 20, 150];
OptionsStruct.TrapFrequencies = [50, 20, 250];
OptionsStruct.TrapPotentialType = 'Harmonic';
OptionsStruct.NumberOfGridPoints = [64, 128, 64];
OptionsStruct.Dimensions = [50, 50, 20];
OptionsStruct.NumberOfGridPoints = [64, 128, 32];
OptionsStruct.Dimensions = [50, 50, 10];
OptionsStruct.UseApproximationForLHY = true;
OptionsStruct.IncludeDDICutOff = true;
OptionsStruct.CutoffType = 'CustomCylindrical';
OptionsStruct.CustomCylindricalCutOffRadius = 20.0;
OptionsStruct.CustomCylindricalCutOffHeight = 5.0;
OptionsStruct.CustomCylindricalCutOffHeight = 4.0;
OptionsStruct.SimulationMode = 'ImaginaryTimeEvolution'; % 'ImaginaryTimeEvolution' | 'RealTimeEvolution' | 'EnergyMinimization'
OptionsStruct.TimeStepSize = 5E-3; % in s
OptionsStruct.MinimumTimeStepSize = 1E-6; % in s
OptionsStruct.TimeCutOff = 1E5; % in s
OptionsStruct.TimeCutOff = 1E2; % in s
OptionsStruct.EnergyTolerance = 5E-10;
OptionsStruct.ResidualTolerance = 1E-08;
OptionsStruct.NoiseScaleFactor = 0.010;
OptionsStruct.NoiseScaleFactor = 0.05;
OptionsStruct.PlotLive = true;
OptionsStruct.JobNumber = 0;
OptionsStruct.RunOnGPU = false;
@ -94,19 +96,17 @@ sim.Potential = pot.trap();
% Save only final state as initial wavefunction for real-time propagation
mkdir(sprintf(OptionsStruct.SaveDirectory))
save(sprintf(strcat(SaveDirectory, '/psi_init.mat'),Params.njob),'psi','Transf','Params','VDk','V');
close all
clear
save(sprintf(strcat(OptionsStruct.SaveDirectory, '/psi_init.mat'),Params.njob),'psi','Transf','Params','VDk','V');
OptionsStruct.SimulationMode = 'RealTimeEvolution'; % 'ImaginaryTimeEvolution' | 'RealTimeEvolution' | 'EnergyMinimization'
OptionsStruct.EquilibrationTime = 20E-3;
OptionsStruct.QuenchTime = 30E-3;
OptionsStruct.HoldTime = 20E-3;
OptionsStruct.EquilibrationTime = 10E-3;
OptionsStruct.QuenchTime = 10E-3;
OptionsStruct.HoldTime = 10E-3;
OptionsStruct.QuenchScatteringLength = true;
OptionsStruct.RotateDipoles = false;
OptionsStruct.FinalScatteringLength = 85;
OptionsStruct.FinalScatteringLength = 75;
OptionsStruct.FinalDipolarPolarAngle = deg2rad(90);
OptionsStruct.FinalDipolarAzimuthAngle = 0;
OptionsStruct.FinalDipolarAzimuthAngle = deg2rad(0);
OptionsStruct.TimeStepSize = 1E-3; % in s
OptionsStruct.NoiseScaleFactor = 0.010;
@ -114,7 +114,6 @@ OptionsStruct.PlotLive = true;
OptionsStruct.JobNumber = 0;
OptionsStruct.RunOnGPU = false;
OptionsStruct.SaveData = true;
OptionsStruct.SaveDirectory = SaveDirectory;
options = Helper.convertstruct2cell(OptionsStruct);
clear OptionsStruct
@ -513,13 +512,13 @@ JobNumber = 0;
Plotter.visualizeGSWavefunction(SaveDirectory, JobNumber)
%%
SaveDirectory = './Results/Data_3D/TiltedDipoles15';
JobNumber = 1;
JobNumber = 2;
Plotter.visualizeGSWavefunction(SaveDirectory, JobNumber)
%%
SaveDirectory = './Results/Data_3D/TiltedDipoles30';
JobNumber = 1;
JobNumber = 2;
Plotter.visualizeGSWavefunction(SaveDirectory, JobNumber)
%%
SaveDirectory = './Results/Data_3D/TiltedDipoles45';
JobNumber = 1;
JobNumber = 2;
Plotter.visualizeGSWavefunction(SaveDirectory, JobNumber)

View File

@ -177,7 +177,7 @@ function [psi] = propagateWavefunction(this,psi,Params,Transf,VDk,V,t_idx,Observ
end
if this.DoSave
save(sprintf(strcat(this.SaveDirectory, '/Run_%03i/psi_%i.mat'), Params.njob, Observ.res_idx),'psi','muchem','Observ','t_idx');
save(sprintf(strcat(this.SaveDirectory, '/Run_%03i/psi_%i.mat'), Params.njob, Observ.res_idx),'psi','muchem','Observ','t_idx','Transf','Params');
end
end
if any(isnan(psi(:)))
@ -206,7 +206,7 @@ function [psi] = propagateWavefunction(this,psi,Params,Transf,VDk,V,t_idx,Observ
disp('Run completed!');
if this.DoSave
disp('Saving data...');
save(sprintf(strcat(this.SaveDirectory, '/Run_%03i/psi_%i.mat'),Params.njob,Observ.res_idx),'psi','muchem','Observ','t_idx');
save(sprintf(strcat(this.SaveDirectory, '/Run_%03i/psi_%i.mat'),Params.njob,Observ.res_idx),'psi','muchem','Observ','t_idx','Transf','Params');
disp('Save complete!');
end