OptionsStruct = struct; OptionsStruct.NumberOfAtoms = 90000; OptionsStruct.DipolarPolarAngle = deg2rad(0); OptionsStruct.DipolarAzimuthAngle = 0; OptionsStruct.ScatteringLength = 85; OptionsStruct.TrapFrequencies = [50, 20, 150]; OptionsStruct.TrapPotentialType = 'Harmonic'; OptionsStruct.NumberOfGridPoints = [128, 256, 128]; OptionsStruct.Dimensions = [30, 50, 30]; OptionsStruct.UseApproximationForLHY = true; OptionsStruct.IncludeDDICutOff = true; OptionsStruct.CutoffType = 'Cylindrical'; OptionsStruct.SimulationMode = 'EnergyMinimization'; % 'ImaginaryTimeEvolution' | 'RealTimeEvolution' | 'EnergyMinimization' OptionsStruct.GradientDescentMethod = 'NonLinearCGD'; % 'HeavyBall' | 'NonLinearCGD' OptionsStruct.MaxIterationsForGD = 15000; OptionsStruct.NoiseScaleFactor = 0.010; OptionsStruct.PlotLive = false; OptionsStruct.JobNumber = 0; OptionsStruct.RunOnGPU = true; OptionsStruct.SaveData = true; OptionsStruct.SaveDirectory = './Results/Data_3D/GradientDescent'; % './Results/Data_3D/AnisotropicTrap/Tilted0' options = Helper.convertstruct2cell(OptionsStruct); sim = Simulator.DipolarGas(options{:}); pot = Simulator.Potentials(options{:}); sim.Potential = pot.trap(); % + pot.repulsive_chopstick(); %-% 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);