Calculations/Dipolar-Gas-Simulator/+Simulator/@DipolarGas/setupQuenchSettings.m

43 lines
2.5 KiB
Matlab

function Quench = setupQuenchSettings(this, Params)
Quench.eq_time = this.EquilibrationTime; % Equilibration time in s
Quench.quench_time = this.QuenchTime; % Quench time in s
Quench.hold_time = this.HoldTime; % Hold time in s
Quench.as_final = this.FinalScatteringLength*Params.a0; % Final scattering length in a0 (initial is Params.as)
Quench.theta_final = this.FinalDipolarPolarAngle; % pi/2 dipoles along x, theta=0 dipoles along z
Quench.phi_final = this.FinalDipolarAzimuthAngle;
% --- Save steps
Quench.saveinterval = 200;
% --- Constructing quench vectors
eq_time = Quench.eq_time*Params.w0;
quench_time = Quench.quench_time*Params.w0;
hold_time = Quench.hold_time*Params.w0;
tVec_Eq = 0:Params.dt:eq_time;
tVec_Q = (eq_time+Params.dt):Params.dt:(eq_time+quench_time);
tVec_H = (eq_time+quench_time+Params.dt):Params.dt:(eq_time+quench_time+hold_time);
Quench.tSteps = length(tVec_Eq) + length(tVec_Q) + length(tVec_H);
Quench.as_vec = [Params.as*ones(1, length(tVec_Eq)), linspace(Params.as,Quench.as_final,length(tVec_Q)), Quench.as_final*ones(1, length(tVec_H))];
Quench.gs_vec = 4*pi*Quench.as_vec/Params.l0;
Quench.theta_vec = [Params.theta*ones(1, length(tVec_Eq)), linspace(Params.theta,Quench.theta_final,length(tVec_Q)), Quench.theta_final*ones(1, length(tVec_H))];
Quench.phi_vec = [Params.phi*ones(1, length(tVec_Eq)), linspace(Params.phi,Quench.phi_final,length(tVec_Q)), Quench.phi_final*ones(1, length(tVec_H))];
Quench.tVec = [tVec_Eq, tVec_Q, tVec_H];
% Quantum fluctuations need to be calculated over the quench
eps_dd_vec = Params.add./Quench.as_vec;
if this.UseApproximationForLHY
Q5_vec = 1 + ((3*eps_dd_vec.^2)/2);
else
yeps_vec = (1-eps_dd_vec)./(3*eps_dd_vec);
Q5_vec = (3*eps_dd_vec).^(5/2).*( (8+26*yeps_vec+33*yeps_vec.^2).*sqrt(1+yeps_vec) + 15*yeps_vec.^3.*log((1+sqrt(1+yeps_vec))./sqrt(yeps_vec)) )/48;
Q5_vec = real(Q5_vec);
Q5_vec(eps_dd_vec == 0) = 1;
Q5_vec(eps_dd_vec == 1) = 3*sqrt(3)/2;
end
Quench.gammaQF_vec = 128/3*sqrt(pi*(Quench.as_vec/Params.l0).^5).*Q5_vec;
end