From 8352c13059721eb7ec7f6d005cebfe910eb06b7b Mon Sep 17 00:00:00 2001 From: Karthik Chandrashekara Date: Thu, 6 Feb 2025 14:48:46 +0100 Subject: [PATCH] Latest adjusted parameters. --- Dipolar-Gas-Simulator/+Scripts/run_locally.m | 7 +- .../+Scripts/run_on_cluster.m | 293 ++---------------- ...m.m => run_on_cluster_fixed_system_size.m} | 0 .../+Scripts/run_on_cluster_in_plane_trap.m | 20 +- 4 files changed, 35 insertions(+), 285 deletions(-) rename Dipolar-Gas-Simulator/+Scripts/{run_on_cluster_fixed_system_size.m.m => run_on_cluster_fixed_system_size.m} (100%) diff --git a/Dipolar-Gas-Simulator/+Scripts/run_locally.m b/Dipolar-Gas-Simulator/+Scripts/run_locally.m index 78b2370..4f362e6 100644 --- a/Dipolar-Gas-Simulator/+Scripts/run_locally.m +++ b/Dipolar-Gas-Simulator/+Scripts/run_locally.m @@ -295,4 +295,9 @@ SaveOption = 'images'; SaveDirectory = './Results/Data_TiltingOfDipoles/TransitionAngle/Hz2000'; NumberOfJobs = 16; SaveOption = 'images'; -[contrast_array, periodX_array, periodY_array] = Scripts.analyzeGSWavefunction_multipleruns(SaveDirectory, NumberOfJobs, SaveOption); \ No newline at end of file +[contrast_array, periodX_array, periodY_array] = Scripts.analyzeGSWavefunction_multipleruns(SaveDirectory, NumberOfJobs, SaveOption); +%% - Analysis +SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/Hz500'; +JobNumber = 0; +% Plotter.visualizeGSWavefunction2D(SaveDirectory, JobNumber) +[contrast, period_X, period_Y] = Scripts.analyzeGSWavefunction(SaveDirectory, JobNumber); diff --git a/Dipolar-Gas-Simulator/+Scripts/run_on_cluster.m b/Dipolar-Gas-Simulator/+Scripts/run_on_cluster.m index a1d8233..01a456d 100644 --- a/Dipolar-Gas-Simulator/+Scripts/run_on_cluster.m +++ b/Dipolar-Gas-Simulator/+Scripts/run_on_cluster.m @@ -1,39 +1,38 @@ %% Tilting of the dipoles -% Atom Number = 1.00e+05 -% System size = [5 * l_rot, 5 * l_rot] +% Atom Number = 1250 ppum -%% v_z = 500, theta = 0: a_s = 76.41 +%% v_z = 500, theta = 0 OptionsStruct = struct; OptionsStruct.NumberOfAtoms = 101250; OptionsStruct.DipolarPolarAngle = 0; OptionsStruct.DipolarAzimuthAngle = 0; -OptionsStruct.ScatteringLength = 76.41; +OptionsStruct.ScatteringLength = 70.00; -OptionsStruct.TrapFrequencies = [0, 0, 500]; -OptionsStruct.TrapPotentialType = 'None'; +OptionsStruct.TrapFrequencies = [50, 50, 500]; +OptionsStruct.TrapPotentialType = 'Harmonic'; -OptionsStruct.NumberOfGridPoints = [128, 128]; -OptionsStruct.Dimensions = [9, 9]; +OptionsStruct.NumberOfGridPoints = [256, 256]; +OptionsStruct.Dimensions = [35, 35]; OptionsStruct.TimeStepSize = 0.005; % in s OptionsStruct.MinimumTimeStepSize = 1E-5; % in s -OptionsStruct.TimeCutOff = 2E6; % in s +OptionsStruct.TimeCutOff = 5E5; % in s OptionsStruct.EnergyTolerance = 5E-10; OptionsStruct.ResidualTolerance = 1E-05; OptionsStruct.NoiseScaleFactor = 0.05; OptionsStruct.MaxIterations = 10; -OptionsStruct.VariationalWidth = 1.2; +OptionsStruct.VariationalWidth = 1.3; OptionsStruct.WidthLowerBound = 0.01; OptionsStruct.WidthUpperBound = 12; OptionsStruct.WidthCutoff = 5e-3; OptionsStruct.PlotLive = false; -OptionsStruct.JobNumber = 1; +OptionsStruct.JobNumber = 0; OptionsStruct.RunOnGPU = true; OptionsStruct.SaveData = true; -OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/AdjustedSystemSize/Hz500'; +OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/Hz500'; options = Helper.convertstruct2cell(OptionsStruct); clear OptionsStruct @@ -44,71 +43,29 @@ solver.Potential = pot.trap(); %-% Run Solver %-% [Params, Transf, psi, V, VDk] = solver.run(); -%% v_z = 500, theta = 15: a_s = 77.45 +%% v_z = 500, theta = 15 OptionsStruct = struct; OptionsStruct.NumberOfAtoms = 101250; OptionsStruct.DipolarPolarAngle = deg2rad(15); OptionsStruct.DipolarAzimuthAngle = 0; -OptionsStruct.ScatteringLength = 77.45; +OptionsStruct.ScatteringLength = 65.00; -OptionsStruct.TrapFrequencies = [0, 0, 500]; -OptionsStruct.TrapPotentialType = 'None'; +OptionsStruct.TrapFrequencies = [50, 50, 500]; +OptionsStruct.TrapPotentialType = 'Harmonic'; -OptionsStruct.NumberOfGridPoints = [128, 128]; -OptionsStruct.Dimensions = [9, 9]; +OptionsStruct.NumberOfGridPoints = [256, 256]; +OptionsStruct.Dimensions = [35, 35]; OptionsStruct.TimeStepSize = 0.005; % in s OptionsStruct.MinimumTimeStepSize = 1E-5; % in s -OptionsStruct.TimeCutOff = 2E6; % in s +OptionsStruct.TimeCutOff = 5E5; % in s OptionsStruct.EnergyTolerance = 5E-10; OptionsStruct.ResidualTolerance = 1E-05; OptionsStruct.NoiseScaleFactor = 0.05; OptionsStruct.MaxIterations = 10; -OptionsStruct.VariationalWidth = 1.2; -OptionsStruct.WidthLowerBound = 0.01; -OptionsStruct.WidthUpperBound = 12; -OptionsStruct.WidthCutoff = 5e-3; - -OptionsStruct.PlotLive = false; -OptionsStruct.JobNumber = 2; -OptionsStruct.RunOnGPU = true; -OptionsStruct.SaveData = true; -OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/AdjustedSystemSize/Hz500'; -options = Helper.convertstruct2cell(OptionsStruct); -clear OptionsStruct - -solver = VariationalSolver2D.DipolarGas(options{:}); -pot = VariationalSolver2D.Potentials(options{:}); -solver.Potential = pot.trap(); - -%-% Run Solver %-% -[Params, Transf, psi, V, VDk] = solver.run(); - -%% v_z = 750, theta = 0: a_s = 70.5 - -OptionsStruct = struct; - -OptionsStruct.NumberOfAtoms = 61250; -OptionsStruct.DipolarPolarAngle = 0; -OptionsStruct.DipolarAzimuthAngle = 0; -OptionsStruct.ScatteringLength = 70.5; - -OptionsStruct.TrapFrequencies = [0, 0, 750]; -OptionsStruct.TrapPotentialType = 'None'; - -OptionsStruct.NumberOfGridPoints = [128, 128]; -OptionsStruct.Dimensions = [7, 7]; -OptionsStruct.TimeStepSize = 0.005; % in s -OptionsStruct.MinimumTimeStepSize = 1E-5; % in s -OptionsStruct.TimeCutOff = 2E6; % in s -OptionsStruct.EnergyTolerance = 5E-10; -OptionsStruct.ResidualTolerance = 1E-05; -OptionsStruct.NoiseScaleFactor = 0.05; - -OptionsStruct.MaxIterations = 10; -OptionsStruct.VariationalWidth = 0.85; +OptionsStruct.VariationalWidth = 1.3; OptionsStruct.WidthLowerBound = 0.01; OptionsStruct.WidthUpperBound = 12; OptionsStruct.WidthCutoff = 5e-3; @@ -117,217 +74,7 @@ OptionsStruct.PlotLive = false; OptionsStruct.JobNumber = 1; OptionsStruct.RunOnGPU = true; OptionsStruct.SaveData = true; -OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/AdjustedSystemSize/Hz750'; -options = Helper.convertstruct2cell(OptionsStruct); -clear OptionsStruct - -solver = VariationalSolver2D.DipolarGas(options{:}); -pot = VariationalSolver2D.Potentials(options{:}); -solver.Potential = pot.trap(); - -%-% Run Solver %-% -[Params, Transf, psi, V, VDk] = solver.run(); - -%% v_z = 750, theta = 15: a_s = 72.5 - -OptionsStruct = struct; - -OptionsStruct.NumberOfAtoms = 61250; -OptionsStruct.DipolarPolarAngle = deg2rad(15); -OptionsStruct.DipolarAzimuthAngle = 0; -OptionsStruct.ScatteringLength = 72.5; - -OptionsStruct.TrapFrequencies = [0, 0, 750]; -OptionsStruct.TrapPotentialType = 'None'; - -OptionsStruct.NumberOfGridPoints = [128, 128]; -OptionsStruct.Dimensions = [7, 7]; -OptionsStruct.TimeStepSize = 0.005; % in s -OptionsStruct.MinimumTimeStepSize = 1E-5; % in s -OptionsStruct.TimeCutOff = 2E6; % in s -OptionsStruct.EnergyTolerance = 5E-10; -OptionsStruct.ResidualTolerance = 1E-05; -OptionsStruct.NoiseScaleFactor = 0.05; - -OptionsStruct.MaxIterations = 10; -OptionsStruct.VariationalWidth = 0.85; -OptionsStruct.WidthLowerBound = 0.01; -OptionsStruct.WidthUpperBound = 12; -OptionsStruct.WidthCutoff = 5e-3; - -OptionsStruct.PlotLive = false; -OptionsStruct.JobNumber = 2; -OptionsStruct.RunOnGPU = true; -OptionsStruct.SaveData = true; -OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/AdjustedSystemSize/Hz750'; -options = Helper.convertstruct2cell(OptionsStruct); -clear OptionsStruct - -solver = VariationalSolver2D.DipolarGas(options{:}); -pot = VariationalSolver2D.Potentials(options{:}); -solver.Potential = pot.trap(); - -%-% Run Solver %-% -[Params, Transf, psi, V, VDk] = solver.run(); - -%% v_z = 1000, theta = 0: a_s = 65.95 - -OptionsStruct = struct; - -OptionsStruct.NumberOfAtoms = 45000; -OptionsStruct.DipolarPolarAngle = 0; -OptionsStruct.DipolarAzimuthAngle = 0; -OptionsStruct.ScatteringLength = 65.95; - -OptionsStruct.TrapFrequencies = [0, 0, 1000]; -OptionsStruct.TrapPotentialType = 'None'; - -OptionsStruct.NumberOfGridPoints = [128, 128]; -OptionsStruct.Dimensions = [6, 6]; -OptionsStruct.TimeStepSize = 0.005; % in s -OptionsStruct.MinimumTimeStepSize = 1E-5; % in s -OptionsStruct.TimeCutOff = 2E6; % in s -OptionsStruct.EnergyTolerance = 5E-10; -OptionsStruct.ResidualTolerance = 1E-05; -OptionsStruct.NoiseScaleFactor = 0.05; - -OptionsStruct.MaxIterations = 10; -OptionsStruct.VariationalWidth = 0.7; -OptionsStruct.WidthLowerBound = 0.01; -OptionsStruct.WidthUpperBound = 12; -OptionsStruct.WidthCutoff = 5e-3; - -OptionsStruct.PlotLive = false; -OptionsStruct.JobNumber = 1; -OptionsStruct.RunOnGPU = true; -OptionsStruct.SaveData = true; -OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/AdjustedSystemSize/Hz1000'; -options = Helper.convertstruct2cell(OptionsStruct); -clear OptionsStruct - -solver = VariationalSolver2D.DipolarGas(options{:}); -pot = VariationalSolver2D.Potentials(options{:}); -solver.Potential = pot.trap(); - -%-% Run Solver %-% -[Params, Transf, psi, V, VDk] = solver.run(); - -%% v_z = 1000, theta = 15: a_s = 67.25 - -OptionsStruct = struct; - -OptionsStruct.NumberOfAtoms = 45000; -OptionsStruct.DipolarPolarAngle = deg2rad(15); -OptionsStruct.DipolarAzimuthAngle = 0; -OptionsStruct.ScatteringLength = 67.25; - -OptionsStruct.TrapFrequencies = [0, 0, 1000]; -OptionsStruct.TrapPotentialType = 'None'; - -OptionsStruct.NumberOfGridPoints = [128, 128]; -OptionsStruct.Dimensions = [6, 6]; -OptionsStruct.TimeStepSize = 0.005; % in s -OptionsStruct.MinimumTimeStepSize = 1E-5; % in s -OptionsStruct.TimeCutOff = 2E6; % in s -OptionsStruct.EnergyTolerance = 5E-10; -OptionsStruct.ResidualTolerance = 1E-05; -OptionsStruct.NoiseScaleFactor = 0.05; - -OptionsStruct.MaxIterations = 10; -OptionsStruct.VariationalWidth = 0.7; -OptionsStruct.WidthLowerBound = 0.01; -OptionsStruct.WidthUpperBound = 12; -OptionsStruct.WidthCutoff = 5e-3; - -OptionsStruct.PlotLive = false; -OptionsStruct.JobNumber = 2; -OptionsStruct.RunOnGPU = true; -OptionsStruct.SaveData = true; -OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/AdjustedSystemSize/Hz1000'; -options = Helper.convertstruct2cell(OptionsStruct); -clear OptionsStruct - -solver = VariationalSolver2D.DipolarGas(options{:}); -pot = VariationalSolver2D.Potentials(options{:}); -solver.Potential = pot.trap(); - -%-% Run Solver %-% -[Params, Transf, psi, V, VDk] = solver.run(); - -%% v_z = 2000, theta = 0: a_s = 54.90 - -OptionsStruct = struct; - -OptionsStruct.NumberOfAtoms = 31250; -OptionsStruct.DipolarPolarAngle = 0; -OptionsStruct.DipolarAzimuthAngle = 0; -OptionsStruct.ScatteringLength = 54.90; - -OptionsStruct.TrapFrequencies = [0, 0, 2000]; -OptionsStruct.TrapPotentialType = 'None'; - -OptionsStruct.NumberOfGridPoints = [128, 128]; -OptionsStruct.Dimensions = [5, 5]; -OptionsStruct.TimeStepSize = 0.005; % in s -OptionsStruct.MinimumTimeStepSize = 1E-5; % in s -OptionsStruct.TimeCutOff = 2E6; % in s -OptionsStruct.EnergyTolerance = 5E-10; -OptionsStruct.ResidualTolerance = 1E-05; -OptionsStruct.NoiseScaleFactor = 0.05; - -OptionsStruct.MaxIterations = 10; -OptionsStruct.VariationalWidth = 0.5; -OptionsStruct.WidthLowerBound = 0.01; -OptionsStruct.WidthUpperBound = 12; -OptionsStruct.WidthCutoff = 5e-3; - -OptionsStruct.PlotLive = false; -OptionsStruct.JobNumber = 1; -OptionsStruct.RunOnGPU = true; -OptionsStruct.SaveData = true; -OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/AdjustedSystemSize/Hz2000'; -options = Helper.convertstruct2cell(OptionsStruct); -clear OptionsStruct - -solver = VariationalSolver2D.DipolarGas(options{:}); -pot = VariationalSolver2D.Potentials(options{:}); -solver.Potential = pot.trap(); - -%-% Run Solver %-% -[Params, Transf, psi, V, VDk] = solver.run(); - -%% v_z = 2000, theta = 15: a_s = 55.5 - -OptionsStruct = struct; - -OptionsStruct.NumberOfAtoms = 31250; -OptionsStruct.DipolarPolarAngle = deg2rad(15); -OptionsStruct.DipolarAzimuthAngle = 0; -OptionsStruct.ScatteringLength = 55.5; - -OptionsStruct.TrapFrequencies = [0, 0, 2000]; -OptionsStruct.TrapPotentialType = 'None'; - -OptionsStruct.NumberOfGridPoints = [128, 128]; -OptionsStruct.Dimensions = [5, 5]; -OptionsStruct.TimeStepSize = 0.005; % in s -OptionsStruct.MinimumTimeStepSize = 1E-5; % in s -OptionsStruct.TimeCutOff = 2E6; % in s -OptionsStruct.EnergyTolerance = 5E-10; -OptionsStruct.ResidualTolerance = 1E-05; -OptionsStruct.NoiseScaleFactor = 0.05; - -OptionsStruct.MaxIterations = 10; -OptionsStruct.VariationalWidth = 0.5; -OptionsStruct.WidthLowerBound = 0.01; -OptionsStruct.WidthUpperBound = 12; -OptionsStruct.WidthCutoff = 5e-3; - -OptionsStruct.PlotLive = false; -OptionsStruct.JobNumber = 2; -OptionsStruct.RunOnGPU = true; -OptionsStruct.SaveData = true; -OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/AdjustedSystemSize/Hz2000'; +OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/Hz500'; options = Helper.convertstruct2cell(OptionsStruct); clear OptionsStruct diff --git a/Dipolar-Gas-Simulator/+Scripts/run_on_cluster_fixed_system_size.m.m b/Dipolar-Gas-Simulator/+Scripts/run_on_cluster_fixed_system_size.m similarity index 100% rename from Dipolar-Gas-Simulator/+Scripts/run_on_cluster_fixed_system_size.m.m rename to Dipolar-Gas-Simulator/+Scripts/run_on_cluster_fixed_system_size.m diff --git a/Dipolar-Gas-Simulator/+Scripts/run_on_cluster_in_plane_trap.m b/Dipolar-Gas-Simulator/+Scripts/run_on_cluster_in_plane_trap.m index 47143a7..9928276 100644 --- a/Dipolar-Gas-Simulator/+Scripts/run_on_cluster_in_plane_trap.m +++ b/Dipolar-Gas-Simulator/+Scripts/run_on_cluster_in_plane_trap.m @@ -1,14 +1,14 @@ %% Tilting of the dipoles % Atom Number = 1250 ppum -%% v_z = 500, theta = 0: a_s = 76.41 +%% v_z = 500, theta = 0 OptionsStruct = struct; OptionsStruct.NumberOfAtoms = 101250; OptionsStruct.DipolarPolarAngle = 0; OptionsStruct.DipolarAzimuthAngle = 0; -OptionsStruct.ScatteringLength = 75.00; +OptionsStruct.ScatteringLength = 70.00; OptionsStruct.TrapFrequencies = [50, 50, 500]; OptionsStruct.TrapPotentialType = 'Harmonic'; @@ -28,9 +28,9 @@ OptionsStruct.WidthLowerBound = 0.01; OptionsStruct.WidthUpperBound = 12; OptionsStruct.WidthCutoff = 5e-3; -OptionsStruct.PlotLive = true; +OptionsStruct.PlotLive = false; OptionsStruct.JobNumber = 0; -OptionsStruct.RunOnGPU = false; +OptionsStruct.RunOnGPU = true; OptionsStruct.SaveData = true; OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/Hz500'; options = Helper.convertstruct2cell(OptionsStruct); @@ -43,22 +43,20 @@ solver.Potential = pot.trap(); %-% Run Solver %-% [Params, Transf, psi, V, VDk] = solver.run(); -%% v_z = 500, theta = 15: a_s = 77.45 +%% v_z = 500, theta = 15 OptionsStruct = struct; OptionsStruct.NumberOfAtoms = 101250; OptionsStruct.DipolarPolarAngle = deg2rad(15); OptionsStruct.DipolarAzimuthAngle = 0; -OptionsStruct.ScatteringLength = 77.45; +OptionsStruct.ScatteringLength = 65.00; -vz = 500; -AspectRatio = 10; -OptionsStruct.TrapFrequencies = [vz/AspectRatio, vz/AspectRatio, 500]; +OptionsStruct.TrapFrequencies = [50, 50, 500]; OptionsStruct.TrapPotentialType = 'Harmonic'; -OptionsStruct.NumberOfGridPoints = [128, 128]; -OptionsStruct.Dimensions = [10, 10]; +OptionsStruct.NumberOfGridPoints = [256, 256]; +OptionsStruct.Dimensions = [35, 35]; OptionsStruct.TimeStepSize = 0.005; % in s OptionsStruct.MinimumTimeStepSize = 1E-5; % in s OptionsStruct.TimeCutOff = 2E6; % in s