New script to determine where the transition to stripes happens when tilting the dipole moments.
This commit is contained in:
parent
f84a98ede7
commit
58fc2dae02
196
Dipolar-Gas-Simulator/+Scripts/run_on_cluster_transition_angle.m
Normal file
196
Dipolar-Gas-Simulator/+Scripts/run_on_cluster_transition_angle.m
Normal file
@ -0,0 +1,196 @@
|
||||
%% Tilting of the dipoles
|
||||
% System size = [5 * l_rot, 5 * l_rot]
|
||||
|
||||
theta_values = 1:1:14;
|
||||
|
||||
%% v_z = 500
|
||||
|
||||
as_values_500 = [76.41, 76.54, 76.54, 76.54, 76.54, 76.67, 76.67, 76.80, 76.80, 76.93, 77.06, 77.06, 77.19, 77.32];
|
||||
num_iterations = length(theta_values);
|
||||
|
||||
for i = 1:num_iterations
|
||||
OptionsStruct = struct;
|
||||
|
||||
OptionsStruct.NumberOfAtoms = 101250;
|
||||
OptionsStruct.DipolarPolarAngle = deg2rad(theta_values(i));
|
||||
OptionsStruct.DipolarAzimuthAngle = 0;
|
||||
OptionsStruct.ScatteringLength = as_values_500(i);
|
||||
|
||||
OptionsStruct.TrapFrequencies = [0, 0, 500];
|
||||
OptionsStruct.TrapPotentialType = 'None';
|
||||
|
||||
OptionsStruct.NumberOfGridPoints = [128, 128];
|
||||
OptionsStruct.Dimensions = [9, 9];
|
||||
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 = 1.2;
|
||||
OptionsStruct.WidthLowerBound = 0.01;
|
||||
OptionsStruct.WidthUpperBound = 12;
|
||||
OptionsStruct.WidthCutoff = 5e-3;
|
||||
|
||||
OptionsStruct.PlotLive = false;
|
||||
OptionsStruct.JobNumber = i; % Assign a unique JobNumber per iteration
|
||||
OptionsStruct.RunOnGPU = true;
|
||||
OptionsStruct.SaveData = true;
|
||||
OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/TransitionAngle/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();
|
||||
end
|
||||
|
||||
%% v_z = 750
|
||||
|
||||
as_values_750 = [70.52, 70.52, 70.52, 70.52, 70.52, 70.65, 70.65, 70.78, 70.79, 70.92, 71.05, 71.05, 71.18, 71.31, 71.44, 71.70];
|
||||
num_iterations = length(theta_values);
|
||||
|
||||
for i = 1:num_iterations
|
||||
OptionsStruct = struct;
|
||||
|
||||
OptionsStruct.NumberOfAtoms = 61250;
|
||||
OptionsStruct.DipolarPolarAngle = deg2rad(theta_values(i));
|
||||
OptionsStruct.DipolarAzimuthAngle = 0;
|
||||
OptionsStruct.ScatteringLength = as_values_750(i);
|
||||
|
||||
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 = i; % Assign a unique JobNumber per iteration
|
||||
OptionsStruct.RunOnGPU = true;
|
||||
OptionsStruct.SaveData = true;
|
||||
OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/TransitionAngle/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();
|
||||
end
|
||||
|
||||
%% v_z = 1000
|
||||
|
||||
as_values_1000 = [65.95, 65.95, 65.95, 65.95, 66.08, 66.08, 66.08, 66.21, 66.34, 66.34, 66.47, 66.60, 66.73, 66.86, 66.99, 67.26];
|
||||
num_iterations = length(theta_values);
|
||||
|
||||
for i = 1:num_iterations
|
||||
OptionsStruct = struct;
|
||||
|
||||
OptionsStruct.NumberOfAtoms = 45000;
|
||||
OptionsStruct.DipolarPolarAngle = deg2rad(theta_values(i));
|
||||
OptionsStruct.DipolarAzimuthAngle = 0;
|
||||
OptionsStruct.ScatteringLength = as_values_1000(i);
|
||||
|
||||
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 = i; % Assign a unique JobNumber per iteration
|
||||
OptionsStruct.RunOnGPU = true;
|
||||
OptionsStruct.SaveData = true;
|
||||
OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/TransitionAngle/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();
|
||||
end
|
||||
|
||||
%% v_z = 2000
|
||||
|
||||
as_values_2000 = [53.92, 53.92, 53.92, 54.05, 54.05, 54.05, 54.18, 54.31, 54.31, 54.44, 54.57, 54.70, 54.96, 55.1, 55.23, 55.49];
|
||||
num_iterations = length(theta_values);
|
||||
|
||||
for i = 1:num_iterations
|
||||
OptionsStruct = struct;
|
||||
|
||||
OptionsStruct.NumberOfAtoms = 31250;
|
||||
OptionsStruct.DipolarPolarAngle = deg2rad(theta_values(i));
|
||||
OptionsStruct.DipolarAzimuthAngle = 0;
|
||||
OptionsStruct.ScatteringLength = as_values_2000(i);
|
||||
|
||||
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 = i; % Assign a unique JobNumber per iteration
|
||||
OptionsStruct.RunOnGPU = true;
|
||||
OptionsStruct.SaveData = true;
|
||||
OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/TransitionAngle/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();
|
||||
end
|
Loading…
Reference in New Issue
Block a user