%% - Labyrinth phase OptionsStruct = struct; OptionsStruct.NumberOfAtoms = 5E5; OptionsStruct.DipolarPolarAngle = deg2rad(0); OptionsStruct.DipolarAzimuthAngle = 0; OptionsStruct.ScatteringLength = 85; OptionsStruct.TrapFrequencies = [125, 125, 350]; OptionsStruct.TrapPotentialType = 'Harmonic'; OptionsStruct.NumberOfGridPoints = [128, 128, 64]; OptionsStruct.Dimensions = [18, 18, 18]; OptionsStruct.UseApproximationForLHY = true; OptionsStruct.IncludeDDICutOff = true; OptionsStruct.CutoffType = 'Cylindrical'; OptionsStruct.SimulationMode = 'EnergyMinimization'; % 'ImaginaryTimeEvolution' | 'RealTimeEvolution' | 'EnergyMinimization' OptionsStruct.GradientDescentMethod = 'NonLinearCGD'; % 'HeavyBall' | 'NonLinearCGD' OptionsStruct.MaxIterationsForGD = 1E5; OptionsStruct.NoiseScaleFactor = 0.010; OptionsStruct.PlotLive = false; OptionsStruct.JobNumber = 0; OptionsStruct.RunOnGPU = true; OptionsStruct.SaveData = true; OptionsStruct.SaveDirectory = './Results/Data_3D/GradientDescent'; options = Helper.convertstruct2cell(OptionsStruct); sim = Simulator.DipolarGas(options{:}); pot = Simulator.Potentials(options{:}); sim.Potential = pot.trap(); %-% Run Simulation %-% NumberOfOutputs = 5; [Params, Transf, psi, V, VDk, stats] = Helper.runWithProfiling(@() sim.run(), NumberOfOutputs, OptionsStruct.SaveDirectory); fprintf('Runtime: %.3f seconds\n', stats.runtime); fprintf('Memory used: %.2f MB\n', stats.workspaceMemoryMB); clear all