diff --git a/Dipolar-Gas-Simulator/+Scripts/run_locally.m b/Dipolar-Gas-Simulator/+Scripts/run_locally.m index a54dbee..1a07fe0 100644 --- a/Dipolar-Gas-Simulator/+Scripts/run_locally.m +++ b/Dipolar-Gas-Simulator/+Scripts/run_locally.m @@ -67,14 +67,13 @@ Plotter.visualizeGSWavefunction(SaveDirectory, JobNumber) %% - Plot GS wavefunction % SaveDirectory = './Results/Data_3D/ApproximateLHY/AspectRatio2_8'; % SaveDirectory = './Results/Data_3D/ApproximateLHY/AspectRatio3_7'; -% SaveDirectory = './Results/Data_3D/ApproximateLHY/AspectRatio3_8'; -SaveDirectory = './Results/Data_3D/ApproximateLHY/AspectRatio3_85'; +SaveDirectory = './Results/Data_3D/ApproximateLHY/AspectRatio3_8'; JobNumber = 0; Plotter.visualizeGSWavefunction(SaveDirectory, JobNumber) %% -SaveDirectory = './Results/Data_3D/ApproximateLHY/BeyondSSD_SSD'; +% SaveDirectory = './Results/Data_3D/ApproximateLHY/BeyondSSD_SSD'; % SaveDirectory = './Results/Data_3D/ApproximateLHY/BeyondSSD_Labyrinth'; -% SaveDirectory = './Results/Data_3D/ApproximateLHY/BeyondSSD_Honeycomb'; +SaveDirectory = './Results/Data_3D/ApproximateLHY/BeyondSSD_Honeycomb'; JobNumber = 0; Plotter.visualizeGSWavefunction(SaveDirectory, JobNumber) %% diff --git a/Dipolar-Gas-Simulator/+Scripts/run_on_cluster.m b/Dipolar-Gas-Simulator/+Scripts/run_on_cluster.m index 8487045..85e3981 100644 --- a/Dipolar-Gas-Simulator/+Scripts/run_on_cluster.m +++ b/Dipolar-Gas-Simulator/+Scripts/run_on_cluster.m @@ -1,36 +1,38 @@ -%% - Labyrinth: N=4E5, as = 87ao +%% - N = 8E4 + +ScalingFactor = (0.8/5)^2; OptionsStruct = struct; -OptionsStruct.NumberOfAtoms = 4E5; +OptionsStruct.NumberOfAtoms = sqrt(ScalingFactor) * 5E5; OptionsStruct.DipolarPolarAngle = deg2rad(0); OptionsStruct.DipolarAzimuthAngle = 0; OptionsStruct.ScatteringLength = 85; -AspectRatio = 2.0; -HorizontalTrapFrequency = 125; +AspectRatio = 2.8; +HorizontalTrapFrequency = 125/ScalingFactor; VerticalTrapFrequency = AspectRatio * HorizontalTrapFrequency; OptionsStruct.TrapFrequencies = [HorizontalTrapFrequency, HorizontalTrapFrequency, VerticalTrapFrequency]; OptionsStruct.TrapPotentialType = 'Harmonic'; OptionsStruct.NumberOfGridPoints = [128, 128, 64]; -OptionsStruct.Dimensions = [18, 18, 18]; +OptionsStruct.Dimensions = [4, 4, 4]; OptionsStruct.UseApproximationForLHY = true; OptionsStruct.IncludeDDICutOff = true; OptionsStruct.CutoffType = 'Cylindrical'; OptionsStruct.SimulationMode = 'ImaginaryTimeEvolution'; % 'ImaginaryTimeEvolution' | 'RealTimeEvolution' -OptionsStruct.TimeStepSize = 1E-3; % in s -OptionsStruct.MinimumTimeStepSize = 1E-6; % in s +OptionsStruct.TimeStepSize = 1E-4; % in s +OptionsStruct.MinimumTimeStepSize = 2E-6; % in s OptionsStruct.TimeCutOff = 2E6; % in s OptionsStruct.EnergyTolerance = 5E-10; -OptionsStruct.ResidualTolerance = 1E-05; +OptionsStruct.ResidualTolerance = 1E-08; OptionsStruct.NoiseScaleFactor = 0.01; -OptionsStruct.PlotLive = true; +OptionsStruct.PlotLive = false; OptionsStruct.JobNumber = 0; -OptionsStruct.RunOnGPU = false; +OptionsStruct.RunOnGPU = true; OptionsStruct.SaveData = true; -OptionsStruct.SaveDirectory = './Results/Data_3D/BeyondSSD_Labyrinth'; +OptionsStruct.SaveDirectory = sprintf('./Results/Data_3D/ApproximateLHY/AspectRatio%s', strrep(num2str(AspectRatio), '.', '_')); options = Helper.convertstruct2cell(OptionsStruct); clear OptionsStruct diff --git a/Dipolar-Gas-Simulator/+Scripts/run_on_cluster_scaling.m b/Dipolar-Gas-Simulator/+Scripts/run_on_cluster_scaling.m new file mode 100644 index 0000000..df04bc9 --- /dev/null +++ b/Dipolar-Gas-Simulator/+Scripts/run_on_cluster_scaling.m @@ -0,0 +1,97 @@ +%% - Scaling at Aspect Ratio: 2.8 + +% N = 5E5 for labyrinth at a_s = 85, AR = 2.8 +% We require N = sqrt(ScalingFactor) * N_labyrinth = 1E5/8E4 +% This implies ScalingFactor = (1/5)^2/(0.8/5)^2 +% We have to scale the Horizontal Trap Frequency by 1/ScalingFactor +% The Vertical Trap Frequency will still be AR * Horizontal Trap Frequency + +%% - N = 1E5 + +ScalingFactor = (1/5)^2; + +OptionsStruct = struct; + +OptionsStruct.NumberOfAtoms = sqrt(ScalingFactor) * 5E5; +OptionsStruct.DipolarPolarAngle = deg2rad(0); +OptionsStruct.DipolarAzimuthAngle = 0; +OptionsStruct.ScatteringLength = 85; + +AspectRatio = 2.8; +HorizontalTrapFrequency = 125/ScalingFactor; +VerticalTrapFrequency = AspectRatio * HorizontalTrapFrequency; +OptionsStruct.TrapFrequencies = [HorizontalTrapFrequency, HorizontalTrapFrequency, VerticalTrapFrequency]; +OptionsStruct.TrapPotentialType = 'Harmonic'; + +OptionsStruct.NumberOfGridPoints = [128, 128, 64]; +OptionsStruct.Dimensions = [4, 4, 4]; +OptionsStruct.UseApproximationForLHY = true; +OptionsStruct.IncludeDDICutOff = true; +OptionsStruct.CutoffType = 'Cylindrical'; +OptionsStruct.SimulationMode = 'ImaginaryTimeEvolution'; % 'ImaginaryTimeEvolution' | 'RealTimeEvolution' +OptionsStruct.TimeStepSize = 1E-4; % in s +OptionsStruct.MinimumTimeStepSize = 2E-6; % in s +OptionsStruct.TimeCutOff = 2E6; % in s +OptionsStruct.EnergyTolerance = 5E-10; +OptionsStruct.ResidualTolerance = 1E-08; +OptionsStruct.NoiseScaleFactor = 0.01; + +OptionsStruct.PlotLive = false; +OptionsStruct.JobNumber = 0; +OptionsStruct.RunOnGPU = true; +OptionsStruct.SaveData = true; +OptionsStruct.SaveDirectory = sprintf('./Results/Data_3D/ApproximateLHY/AspectRatio%s', strrep(num2str(AspectRatio), '.', '_')); +options = Helper.convertstruct2cell(OptionsStruct); +clear OptionsStruct + +sim = Simulator.DipolarGas(options{:}); +pot = Simulator.Potentials(options{:}); +sim.Potential = pot.trap(); + +%-% Run Simulation %-% +[Params, Transf, psi, V, VDk] = sim.run(); + +%% - N = 8E4 + +ScalingFactor = (0.8/5)^2; + +OptionsStruct = struct; + +OptionsStruct.NumberOfAtoms = sqrt(ScalingFactor) * 5E5; +OptionsStruct.DipolarPolarAngle = deg2rad(0); +OptionsStruct.DipolarAzimuthAngle = 0; +OptionsStruct.ScatteringLength = 85; + +AspectRatio = 2.8; +HorizontalTrapFrequency = 125/ScalingFactor; +VerticalTrapFrequency = AspectRatio * HorizontalTrapFrequency; +OptionsStruct.TrapFrequencies = [HorizontalTrapFrequency, HorizontalTrapFrequency, VerticalTrapFrequency]; +OptionsStruct.TrapPotentialType = 'Harmonic'; + +OptionsStruct.NumberOfGridPoints = [128, 128, 64]; +OptionsStruct.Dimensions = [4, 4, 4]; +OptionsStruct.UseApproximationForLHY = true; +OptionsStruct.IncludeDDICutOff = true; +OptionsStruct.CutoffType = 'Cylindrical'; +OptionsStruct.SimulationMode = 'ImaginaryTimeEvolution'; % 'ImaginaryTimeEvolution' | 'RealTimeEvolution' +OptionsStruct.TimeStepSize = 1E-4; % in s +OptionsStruct.MinimumTimeStepSize = 2E-6; % in s +OptionsStruct.TimeCutOff = 2E6; % in s +OptionsStruct.EnergyTolerance = 5E-10; +OptionsStruct.ResidualTolerance = 1E-08; +OptionsStruct.NoiseScaleFactor = 0.01; + +OptionsStruct.PlotLive = false; +OptionsStruct.JobNumber = 1; +OptionsStruct.RunOnGPU = true; +OptionsStruct.SaveData = true; +OptionsStruct.SaveDirectory = sprintf('./Results/Data_3D/ApproximateLHY/AspectRatio%s', strrep(num2str(AspectRatio), '.', '_')); +options = Helper.convertstruct2cell(OptionsStruct); +clear OptionsStruct + +sim = Simulator.DipolarGas(options{:}); +pot = Simulator.Potentials(options{:}); +sim.Potential = pot.trap(); + +%-% Run Simulation %-% +[Params, Transf, psi, V, VDk] = sim.run(); \ No newline at end of file