118 lines
5.3 KiB
Matlab
118 lines
5.3 KiB
Matlab
theta = 15;
|
|
|
|
OptionsStruct = struct;
|
|
|
|
OptionsStruct.NumberOfAtoms = 1E5;
|
|
OptionsStruct.DipolarPolarAngle = deg2rad(theta);
|
|
OptionsStruct.DipolarAzimuthAngle = deg2rad(0);
|
|
OptionsStruct.ScatteringLength = 88;
|
|
|
|
OptionsStruct.TrapFrequencies = [50, 20, 150];
|
|
OptionsStruct.TrapPotentialType = 'Harmonic';
|
|
|
|
OptionsStruct.NumberOfGridPoints = [128, 256, 64];
|
|
OptionsStruct.Dimensions = [50, 50, 10];
|
|
|
|
OptionsStruct.UseApproximationForLHY = true;
|
|
OptionsStruct.IncludeDDICutOff = true;
|
|
OptionsStruct.CutoffType = 'CustomCylindrical';
|
|
OptionsStruct.CustomCylindricalCutOffRadius = 20.0;
|
|
OptionsStruct.CustomCylindricalCutOffHeight = 4.0;
|
|
|
|
OptionsStruct.SimulationMode = 'ImaginaryTimeEvolution'; % 'ImaginaryTimeEvolution' | 'RealTimeEvolution'
|
|
OptionsStruct.TimeStepSize = 1E-3; % in s
|
|
OptionsStruct.MinimumTimeStepSize = 2E-6; % in s
|
|
OptionsStruct.TimeCutOff = 2E6; % in s
|
|
OptionsStruct.EnergyTolerance = 5E-10;
|
|
OptionsStruct.ResidualTolerance = 1E-05;
|
|
OptionsStruct.NoiseScaleFactor = 0.01;
|
|
|
|
OptionsStruct.PlotLive = false;
|
|
OptionsStruct.JobNumber = 0;
|
|
OptionsStruct.RunOnGPU = true;
|
|
OptionsStruct.SaveData = true;
|
|
OptionsStruct.SaveDirectory = sprintf('./Results/Data_3D/TiltedDipoles%s', strrep(num2str(round(rad2deg(OptionsStruct.DipolarPolarAngle),2)), '.', '_'));
|
|
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();
|
|
|
|
%{
|
|
|
|
%% Imaginary-Time followed by Real-time
|
|
|
|
% - Imaginary-Time
|
|
OptionsStruct = struct;
|
|
|
|
OptionsStruct.NumberOfAtoms = 1E5;
|
|
OptionsStruct.DipolarPolarAngle = deg2rad(0);
|
|
OptionsStruct.DipolarAzimuthAngle = deg2rad(0);
|
|
OptionsStruct.ScatteringLength = 88;
|
|
|
|
OptionsStruct.TrapFrequencies = [50, 20, 150];
|
|
OptionsStruct.TrapPotentialType = 'Harmonic';
|
|
|
|
OptionsStruct.NumberOfGridPoints = [128, 256, 64];
|
|
OptionsStruct.Dimensions = [50, 50, 10];
|
|
OptionsStruct.UseApproximationForLHY = true;
|
|
OptionsStruct.IncludeDDICutOff = true;
|
|
OptionsStruct.CutoffType = 'CustomCylindrical';
|
|
OptionsStruct.CustomCylindricalCutOffRadius = 20.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 = 1E2; % in s
|
|
OptionsStruct.EnergyTolerance = 5E-10;
|
|
OptionsStruct.ResidualTolerance = 1E-08;
|
|
OptionsStruct.NoiseScaleFactor = 0.05;
|
|
OptionsStruct.PlotLive = false;
|
|
OptionsStruct.JobNumber = 0;
|
|
OptionsStruct.RunOnGPU = true;
|
|
OptionsStruct.SaveData = false;
|
|
OptionsStruct.SaveDirectory = './Results/Data_3D/RealTimeDynamics';
|
|
options = Helper.convertstruct2cell(OptionsStruct);
|
|
|
|
sim = Simulator.DipolarGas(options{:});
|
|
pot = Simulator.Potentials(options{:});
|
|
sim.Potential = pot.trap();
|
|
|
|
%-% Run Simulation %-%
|
|
[Params, Transf, psi, V, VDk] = sim.run();
|
|
|
|
% Save only final state as initial wavefunction for real-time propagation
|
|
mkdir(sprintf(OptionsStruct.SaveDirectory))
|
|
save(sprintf(strcat(OptionsStruct.SaveDirectory, '/psi_init.mat'),Params.njob),'psi','Transf','Params','VDk','V');
|
|
|
|
OptionsStruct.SimulationMode = 'RealTimeEvolution'; % 'ImaginaryTimeEvolution' | 'RealTimeEvolution' | 'EnergyMinimization'
|
|
OptionsStruct.EquilibrationTime = 10E-3;
|
|
OptionsStruct.QuenchTime = 30E-3;
|
|
OptionsStruct.HoldTime = 50E-3;
|
|
OptionsStruct.QuenchScatteringLength = false;
|
|
OptionsStruct.RotateDipoles = true;
|
|
OptionsStruct.FinalScatteringLength = 88;
|
|
OptionsStruct.FinalDipolarPolarAngle = deg2rad(40);
|
|
OptionsStruct.FinalDipolarAzimuthAngle = deg2rad(0);
|
|
OptionsStruct.TimeStepSize = 1E-3; % in s
|
|
OptionsStruct.NoiseScaleFactor = 0.010;
|
|
|
|
OptionsStruct.PlotLive = false;
|
|
OptionsStruct.JobNumber = 1;
|
|
OptionsStruct.RunOnGPU = true;
|
|
OptionsStruct.SaveData = true;
|
|
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();
|
|
%} |