diff --git a/Dipolar-Gas-Simulator/+Scripts/run_locally.m b/Dipolar-Gas-Simulator/+Scripts/run_locally.m index f395692..be626fa 100644 --- a/Dipolar-Gas-Simulator/+Scripts/run_locally.m +++ b/Dipolar-Gas-Simulator/+Scripts/run_locally.m @@ -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) diff --git a/Dipolar-Gas-Simulator/+Simulator/@DipolarGas/propagateWavefunction.m b/Dipolar-Gas-Simulator/+Simulator/@DipolarGas/propagateWavefunction.m index 0f4c9f6..58a7035 100644 --- a/Dipolar-Gas-Simulator/+Simulator/@DipolarGas/propagateWavefunction.m +++ b/Dipolar-Gas-Simulator/+Simulator/@DipolarGas/propagateWavefunction.m @@ -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