Adjusted parameters, addition of comments, new script to loop over dimensions to determine appropriate system size.

This commit is contained in:
Karthik 2025-02-11 20:25:15 +01:00
parent 77a97b87b2
commit a3b42649a8
8 changed files with 126 additions and 224 deletions

View File

@ -56,7 +56,7 @@ function [contrast, periodX, periodY] = analyzeGSWavefunction(folder_path, run_i
%------------------ Lattice Properties ------------------ %
[kx, ky, fftMagnitude, lattice_type, periodX, periodY, freq_x, freq_y] = Scripts.extractLatticeProperties(nxyScaled, x, y);
[fftMagnitude, lattice_type, periodX, periodY, freq_x, freq_y, kx, ky] = Scripts.extractLatticeProperties(nxyScaled, x, y);
%------------------ Plotting ------------------ %

View File

@ -56,7 +56,7 @@ function [contrast, periodX, periodY] = analyzeGSWavefunction(folder_path, run_i
%------------------ Lattice Properties ------------------ %
[kx, ky, fftMagnitude, lattice_type, periodX, periodY, freq_x, freq_y] = Scripts.extractLatticeProperties(nxyScaled, x, y);
[fftMagnitude, lattice_type, periodX, periodY, freq_x, freq_y, kx, ky] = Scripts.extractLatticeProperties(nxyScaled, x, y);
%------------------ Plotting ------------------ %

View File

@ -1,4 +1,4 @@
function [kx, ky, fftMagnitude, lattice_type, dx_um, dy_um, freq_x, freq_y] = extractLatticeProperties(I, x, y)
function [fftMagnitude, lattice_type, dx_um, dy_um, freq_x, freq_y, kx, ky] = extractLatticeProperties(I, x, y)
% Detects lattice geometry, extracts periodic spacings, and reconstructs real-space lattice vectors.
% Handles arbitrary lattice geometries
%
@ -8,63 +8,66 @@ function [kx, ky, fftMagnitude, lattice_type, dx_um, dy_um, freq_x, freq_y] = ex
% y - Y-coordinates in micrometers.
%
% Outputs:
% fftMagnitude - 2D FFT of image
% lattice_type - Identified lattice type (Square, Rectangular, Hexagonal, Oblique, or Unknown)
% dx_um - Spacing along x-axis in micrometers.
% dy_um - Spacing along y-axis in micrometers.
% real_lattice_vectors - [2x2] matrix of lattice vectors in micrometers.
% angle_in_reciprocal_space - Angle of the reciprocal lattice primitive vectors in degrees.
% dx_um - Spacing along x-axis in micrometers.
% dy_um - Spacing along y-axis in micrometers.
% freq_x - x component of two smallest non-zero frequency peaks in micrometers^-1
% freq_y - y component of two smallest non-zero frequency peaks in micrometers^-1
% kx - 2 * pi * Frequency axis in X
% ky - 2 * pi * Frequency axis in Y
% Compute 2D Fourier Transform
F = fft2(double(I));
fftMagnitude = abs(fftshift(F))'; % Shift zero frequency to center
% Calculate frequency increment (frequency axes)
Nx = length(x); % grid size along X
Ny = length(y); % grid size along Y
dx = mean(diff(x)); % real space increment in the X direction (in micrometers)
dy = mean(diff(y)); % real space increment in the Y direction (in micrometers)
dvx = 1 / (Nx * dx); % reciprocal space increment in the X direction (in micrometers^-1)
dvy = 1 / (Ny * dy); % reciprocal space increment in the Y direction (in micrometers^-1)
Nx = length(x); % grid size along X
Ny = length(y); % grid size along Y
dx = mean(diff(x)); % real space increment in the X direction (in micrometers)
dy = mean(diff(y)); % real space increment in the Y direction (in micrometers)
dvx = 1 / (Nx * dx); % reciprocal space increment in the X direction (in micrometers^-1)
dvy = 1 / (Ny * dy); % reciprocal space increment in the Y direction (in micrometers^-1)
% Create the frequency axes
vx = (-Nx/2:Nx/2-1) * dvx; % Frequency axis in X (micrometers^-1)
vy = (-Ny/2:Ny/2-1) * dvy; % Frequency axis in Y (micrometers^-1)
vx = (-Nx/2:Nx/2-1) * dvx; % Frequency axis in X (micrometers^-1)
vy = (-Ny/2:Ny/2-1) * dvy; % Frequency axis in Y (micrometers^-1)
% Calculate maximum frequencies
% kx_max = pi / dx;
% ky_max = pi / dy;
% kx_max = pi / dx;
% ky_max = pi / dy;
% Generate reciprocal axes
% kx = linspace(-kx_max, kx_max * (Nx-2)/Nx, Nx);
% ky = linspace(-ky_max, ky_max * (Ny-2)/Ny, Ny);
% kx = linspace(-kx_max, kx_max * (Nx-2)/Nx, Nx);
% ky = linspace(-ky_max, ky_max * (Ny-2)/Ny, Ny);
% Create the Wavenumber axes
kx = 2*pi*vx; % Wavenumber axis in X
ky = 2*pi*vy; % Wavenumber axis in Y
kx = 2*pi*vx; % Wavenumber axis in X
ky = 2*pi*vy; % Wavenumber axis in Y
% Find peaks in Fourier domain
peak_mask = imregionalmax(fftMagnitude); % Detect local maxima
threshold = max(fftMagnitude(:)) * 0.1; % Adaptive threshold
peak_mask = peak_mask & (fftMagnitude > threshold);
peak_mask = imregionalmax(fftMagnitude); % Detect local maxima
threshold = max(fftMagnitude(:)) * 0.1; % Adaptive threshold
peak_mask = peak_mask & (fftMagnitude > threshold);
% Extract peak positions
[rows, cols] = find(peak_mask);
% Convert indices to frequency values
freq_x = vx(cols);
freq_y = vy(rows);
distances = sqrt(freq_x.^2 + freq_y.^2);
freq_x = vx(cols);
freq_y = vy(rows);
distances = sqrt(freq_x.^2 + freq_y.^2);
% Remove DC component (center peak)
valid_idx = distances > 1e-3;
freq_x = freq_x(valid_idx);
freq_y = freq_y(valid_idx);
distances = distances(valid_idx);
valid_idx = distances > 1e-3;
freq_x = freq_x(valid_idx);
freq_y = freq_y(valid_idx);
distances = distances(valid_idx);
% Sort by frequency magnitude
[~, idx] = sort(distances);
freq_x = freq_x(idx);
freq_y = freq_y(idx);
[~, idx] = sort(distances);
freq_x = freq_x(idx);
freq_y = freq_y(idx);
% Select first two unique peaks as lattice vectors
unique_vectors = unique([freq_x', freq_y'], 'rows', 'stable');

View File

@ -303,6 +303,21 @@ JobNumber = 0;
[contrast, period_X, period_Y] = Scripts.analyzeGSWavefunction(SaveDirectory, JobNumber);
%% - Analysis
SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/Hz500';
JobNumber = 1;
JobNumber = 0;
% Plotter.visualizeGSWavefunction2D(SaveDirectory, JobNumber)
[contrast, period_X, period_Y] = Scripts.analyzeGSWavefunction_in_plane_trap(SaveDirectory, JobNumber);
%% - Analysis
SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/Hz750';
JobNumber = 0;
% Plotter.visualizeGSWavefunction2D(SaveDirectory, JobNumber)
[contrast, period_X, period_Y] = Scripts.analyzeGSWavefunction_in_plane_trap(SaveDirectory, JobNumber);
%% - Analysis
SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/Hz1000';
JobNumber = 0;
% Plotter.visualizeGSWavefunction2D(SaveDirectory, JobNumber)
[contrast, period_X, period_Y] = Scripts.analyzeGSWavefunction_in_plane_trap(SaveDirectory, JobNumber);
%% - Analysis
SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/Hz2000';
JobNumber = 0;
% Plotter.visualizeGSWavefunction2D(SaveDirectory, JobNumber)
[contrast, period_X, period_Y] = Scripts.analyzeGSWavefunction_in_plane_trap(SaveDirectory, JobNumber);

View File

@ -1,16 +1,16 @@
%% Tilting of the dipoles
% With an in-plane harmonic trap
%% v_z = 500, theta = 0
%% v_z = 1000, theta = 0
OptionsStruct = struct;
OptionsStruct.NumberOfAtoms = 101250;
OptionsStruct.NumberOfAtoms = 45000;
OptionsStruct.DipolarPolarAngle = 0;
OptionsStruct.DipolarAzimuthAngle = 0;
OptionsStruct.ScatteringLength = 70.00;
OptionsStruct.ScatteringLength = 50.0;
OptionsStruct.TrapFrequencies = [50, 50, 500];
OptionsStruct.TrapFrequencies = [100, 100, 1000];
OptionsStruct.TrapPotentialType = 'Harmonic';
OptionsStruct.NumberOfGridPoints = [256, 256];
@ -23,7 +23,7 @@ OptionsStruct.ResidualTolerance = 1E-05;
OptionsStruct.NoiseScaleFactor = 0.05;
OptionsStruct.MaxIterations = 10;
OptionsStruct.VariationalWidth = 1.5;
OptionsStruct.VariationalWidth = 0.7;
OptionsStruct.WidthLowerBound = 0.01;
OptionsStruct.WidthUpperBound = 12;
OptionsStruct.WidthCutoff = 5e-3;
@ -32,7 +32,7 @@ OptionsStruct.PlotLive = false;
OptionsStruct.JobNumber = 0;
OptionsStruct.RunOnGPU = true;
OptionsStruct.SaveData = true;
OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/Hz500';
OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/Hz1000';
options = Helper.convertstruct2cell(OptionsStruct);
clear OptionsStruct
@ -43,16 +43,16 @@ solver.Potential = pot.trap();
%-% Run Solver %-%
[Params, Transf, psi, V, VDk] = solver.run();
%% v_z = 500, theta = 15
%% v_z = 1000, theta = 15
OptionsStruct = struct;
OptionsStruct.NumberOfAtoms = 101250;
OptionsStruct.NumberOfAtoms = 45000;
OptionsStruct.DipolarPolarAngle = deg2rad(15);
OptionsStruct.DipolarAzimuthAngle = 0;
OptionsStruct.ScatteringLength = 71.00;
OptionsStruct.ScatteringLength = 50.0;
OptionsStruct.TrapFrequencies = [50, 50, 500];
OptionsStruct.TrapFrequencies = [100, 100, 1000];
OptionsStruct.TrapPotentialType = 'Harmonic';
OptionsStruct.NumberOfGridPoints = [256, 256];
@ -65,7 +65,7 @@ OptionsStruct.ResidualTolerance = 1E-05;
OptionsStruct.NoiseScaleFactor = 0.05;
OptionsStruct.MaxIterations = 10;
OptionsStruct.VariationalWidth = 1.5;
OptionsStruct.VariationalWidth = 0.7;
OptionsStruct.WidthLowerBound = 0.01;
OptionsStruct.WidthUpperBound = 12;
OptionsStruct.WidthCutoff = 5e-3;
@ -74,7 +74,7 @@ OptionsStruct.PlotLive = false;
OptionsStruct.JobNumber = 1;
OptionsStruct.RunOnGPU = true;
OptionsStruct.SaveData = true;
OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/Hz500';
OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/Hz1000';
options = Helper.convertstruct2cell(OptionsStruct);
clear OptionsStruct

View File

@ -0,0 +1,52 @@
%% Tilting of the dipoles
% Atom Number Density <= 1250 ppum
%% v_z = 500
% Loop over Lx and Ly values
for Lx = 5:1:10
for Ly = 5:1:10
% Initialize OptionsStruct
OptionsStruct = struct;
% Assign values to OptionsStruct
OptionsStruct.NumberOfAtoms = 101250;
OptionsStruct.DipolarPolarAngle = deg2rad(5);
OptionsStruct.DipolarAzimuthAngle = 0;
OptionsStruct.ScatteringLength = 75.00;
OptionsStruct.TrapFrequencies = [0, 0, 500];
OptionsStruct.TrapPotentialType = 'None';
OptionsStruct.NumberOfGridPoints = [128, 128];
OptionsStruct.Dimensions = [Lx, Ly];
OptionsStruct.TimeStepSize = 0.005; % in s
OptionsStruct.MinimumTimeStepSize = 1E-5; % in s
OptionsStruct.TimeCutOff = 1E5; % 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 = (Lx - 5) * (10 - 5 + 1) + (Ly - 4); % Unique JobNumber based on Lx and Ly
OptionsStruct.RunOnGPU = true;
OptionsStruct.SaveData = true;
OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/TransitionAngle/FindSystemSize/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
end

View File

@ -17,7 +17,7 @@ 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 = 1E6; % in s
OptionsStruct.EnergyTolerance = 5E-10;
OptionsStruct.ResidualTolerance = 1E-05;
OptionsStruct.NoiseScaleFactor = 0.05;
@ -50,7 +50,7 @@ OptionsStruct = struct;
OptionsStruct.NumberOfAtoms = 101250;
OptionsStruct.DipolarPolarAngle = deg2rad(15);
OptionsStruct.DipolarAzimuthAngle = 0;
OptionsStruct.ScatteringLength = 71.00;
OptionsStruct.ScatteringLength = 70.00;
OptionsStruct.TrapFrequencies = [100, 100, 500];
OptionsStruct.TrapPotentialType = 'Harmonic';
@ -59,7 +59,7 @@ 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 = 1E6; % in s
OptionsStruct.EnergyTolerance = 5E-10;
OptionsStruct.ResidualTolerance = 1E-05;
OptionsStruct.NoiseScaleFactor = 0.05;
@ -92,7 +92,7 @@ OptionsStruct = struct;
OptionsStruct.NumberOfAtoms = 61250;
OptionsStruct.DipolarPolarAngle = 0;
OptionsStruct.DipolarAzimuthAngle = 0;
OptionsStruct.ScatteringLength = 64.0;
OptionsStruct.ScatteringLength = 60.0;
OptionsStruct.TrapFrequencies = [100, 100, 750];
OptionsStruct.TrapPotentialType = 'Harmonic';
@ -101,7 +101,7 @@ OptionsStruct.NumberOfGridPoints = [256, 256];
OptionsStruct.Dimensions = [35, 35];
OptionsStruct.TimeStepSize = 0.005; % in s
OptionsStruct.MinimumTimeStepSize = 1E-5; % in s
OptionsStruct.TimeCutOff = 1E5; % in s
OptionsStruct.TimeCutOff = 1E6; % in s
OptionsStruct.EnergyTolerance = 5E-10;
OptionsStruct.ResidualTolerance = 1E-05;
OptionsStruct.NoiseScaleFactor = 0.05;
@ -134,7 +134,7 @@ OptionsStruct = struct;
OptionsStruct.NumberOfAtoms = 61250;
OptionsStruct.DipolarPolarAngle = deg2rad(15);
OptionsStruct.DipolarAzimuthAngle = 0;
OptionsStruct.ScatteringLength = 64.0;
OptionsStruct.ScatteringLength = 60.0;
OptionsStruct.TrapFrequencies = [100, 100, 750];
OptionsStruct.TrapPotentialType = 'Harmonic';
@ -143,7 +143,7 @@ OptionsStruct.NumberOfGridPoints = [256, 256];
OptionsStruct.Dimensions = [35, 35];
OptionsStruct.TimeStepSize = 0.005; % in s
OptionsStruct.MinimumTimeStepSize = 1E-5; % in s
OptionsStruct.TimeCutOff = 1E5; % in s
OptionsStruct.TimeCutOff = 1E6; % in s
OptionsStruct.EnergyTolerance = 5E-10;
OptionsStruct.ResidualTolerance = 1E-05;
OptionsStruct.NoiseScaleFactor = 0.05;
@ -168,171 +168,3 @@ solver.Potential = pot.trap();
%-% Run Solver %-%
[Params, Transf, psi, V, VDk] = solver.run();
%% v_z = 1000, theta = 0
OptionsStruct = struct;
OptionsStruct.NumberOfAtoms = 45000;
OptionsStruct.DipolarPolarAngle = 0;
OptionsStruct.DipolarAzimuthAngle = 0;
OptionsStruct.ScatteringLength = 59.0;
OptionsStruct.TrapFrequencies = [100, 100, 1000];
OptionsStruct.TrapPotentialType = 'Harmonic';
OptionsStruct.NumberOfGridPoints = [256, 256];
OptionsStruct.Dimensions = [35, 35];
OptionsStruct.TimeStepSize = 0.005; % in s
OptionsStruct.MinimumTimeStepSize = 1E-5; % in s
OptionsStruct.TimeCutOff = 1E5; % 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 = 0;
OptionsStruct.RunOnGPU = true;
OptionsStruct.SaveData = true;
OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/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
OptionsStruct = struct;
OptionsStruct.NumberOfAtoms = 45000;
OptionsStruct.DipolarPolarAngle = deg2rad(15);
OptionsStruct.DipolarAzimuthAngle = 0;
OptionsStruct.ScatteringLength = 60.0;
OptionsStruct.TrapFrequencies = [100, 100, 1000];
OptionsStruct.TrapPotentialType = 'Harmonic';
OptionsStruct.NumberOfGridPoints = [256, 256];
OptionsStruct.Dimensions = [35, 35];
OptionsStruct.TimeStepSize = 0.005; % in s
OptionsStruct.MinimumTimeStepSize = 1E-5; % in s
OptionsStruct.TimeCutOff = 1E5; % 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/HarmonicTrap/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
OptionsStruct = struct;
OptionsStruct.NumberOfAtoms = 31250;
OptionsStruct.DipolarPolarAngle = 0;
OptionsStruct.DipolarAzimuthAngle = 0;
OptionsStruct.ScatteringLength = 47;
OptionsStruct.TrapFrequencies = [100, 100, 2000];
OptionsStruct.TrapPotentialType = 'Harmonic';
OptionsStruct.NumberOfGridPoints = [256, 256];
OptionsStruct.Dimensions = [35, 35];
OptionsStruct.TimeStepSize = 0.005; % in s
OptionsStruct.MinimumTimeStepSize = 1E-5; % in s
OptionsStruct.TimeCutOff = 1E5; % 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 = 0;
OptionsStruct.RunOnGPU = true;
OptionsStruct.SaveData = true;
OptionsStruct.SaveDirectory = './Results/Data_TiltingOfDipoles/HarmonicTrap/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
OptionsStruct = struct;
OptionsStruct.NumberOfAtoms = 31250;
OptionsStruct.DipolarPolarAngle = deg2rad(15);
OptionsStruct.DipolarAzimuthAngle = 0;
OptionsStruct.ScatteringLength = 48;
OptionsStruct.TrapFrequencies = [100, 100, 2000];
OptionsStruct.TrapPotentialType = 'Harmonic';
OptionsStruct.NumberOfGridPoints = [256, 256];
OptionsStruct.Dimensions = [35, 35];
OptionsStruct.TimeStepSize = 0.005; % in s
OptionsStruct.MinimumTimeStepSize = 1E-5; % in s
OptionsStruct.TimeCutOff = 1E5; % 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/HarmonicTrap/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();

View File

@ -1,6 +1,6 @@
%% Tilting of the dipoles
% Atom Number = 1250 ppum
% System size = [5 * l_rot, 5 * l_rot]
% Atom Number Density = 1250 ppum
% System size = [5 * l_rot, 5 * l_rot]
theta_values = 0:1:7;