Modified progress bar settings to work for the variational solver.

This commit is contained in:
Karthik 2024-11-17 13:25:06 +01:00
parent df1beb268d
commit e3f9c7b352
4 changed files with 21 additions and 14 deletions

View File

@ -62,10 +62,10 @@ OptionsStruct.TrapPotentialType = 'None';
OptionsStruct.NumberOfGridPoints = [128, 128];
OptionsStruct.Dimensions = [7.5, 7.5]; % Critical point: 6.996; Triangular phase: 7.5; Stripe phase: 6.972; Honeycomb phase: 6.239 for both for Atom Number fixed to 1E5
OptionsStruct.TimeStepSize = 500E-6; % in s
OptionsStruct.TimeCutOff = 2E6; % in s
OptionsStruct.TimeStepSize = 200E-6; % in s
OptionsStruct.TimeCutOff = 100; % in s
OptionsStruct.EnergyTolerance = 5E-10;
OptionsStruct.ResidualTolerance = 1E-04;
OptionsStruct.ResidualTolerance = 1E-05;
OptionsStruct.JobNumber = 1;
OptionsStruct.RunOnGPU = false;

View File

@ -26,6 +26,10 @@ function [psi] = propagateWavefunction(this, psi, Params, VParams, Transf, VDk,
gamma_eff = Params.gammaQF * (sqrt(2/5)/(pi^(3/4)*VParams.ell^(3/2)));
Ez = (0.25*VParams.ell^2) + (0.25*Params.gz*VParams.ell^2);
pb = Helper.ProgressBar();
fprintf('\n')
pb.run('Propagating wavefunction in imaginary time: ');
while t_idx < Params.sim_time_cut_off
% kin
@ -89,6 +93,7 @@ function [psi] = propagateWavefunction(this, psi, Params, VParams, Transf, VDk,
break
end
t_idx=t_idx+1;
pb.run(100*t_idx/Params.sim_time_cut_off);
end
% Change in Energy
@ -103,4 +108,7 @@ function [psi] = propagateWavefunction(this, psi, Params, VParams, Transf, VDk,
% Chemical potential
Observ.mucVec = [Observ.mucVec muchem];
pb.run(' - Job Completed!');
clear pb.run
end

View File

@ -30,11 +30,10 @@ function [Params, Transf, psi, V, VDk] = run(this)
E_Var = @(x) this.Calculator.calculateVariationalEnergy(psi, Params, x, Transf, VDk, V)/Params.N;
E_vs_iter(1) = E_Var(ells(1));
t_idx = 1; % Start at t = 0;
for nn = 1:Params.SelfConIter
Observ.EVec = []; Observ.NormVec = []; Observ.PCVec = []; Observ.tVecPlot = []; Observ.mucVec = []; Observ.residual = [];
Observ.res_idx = 1;
Observ.EVec = []; Observ.NormVec = []; Observ.PCVec = []; Observ.tVecPlot = []; Observ.mucVec = []; Observ.residual = []; Observ.res_idx = 1;
t_idx = 1; % Start at t = 0;
[~,V,VDk] = this.initialize(Params,VParams,Transf); % Do not overwrite psi, susbequent iterations should use psi generated at the end of the loop to converge faster
% This is still needed however to recalculate VDk with new value
@ -68,7 +67,7 @@ function [Params, Transf, psi, V, VDk] = run(this)
break
end
end
fprintf('\n')
disp('Saving data...');
save(sprintf('./Data/Run_%03i/psi_gs.mat',Params.njob),'psi','Observ','Transf','Params','VDk','V','VParams');
disp('Save complete!');

View File

@ -5,8 +5,8 @@
# Request number of nodes and GPU for job
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --gres=gpu:1
#SBATCH --mem=4G
#SBATCH --gres=gpu:4
#SBATCH --mem=8G
# Estimated wallclock time for job
#SBATCH --time=04:00:00
#SBATCH --job-name=simulation