Change of variable names, new properties included along with their getters and setters, increased limit on number of trajectories to be computed, corrections to formulae calculating saturation parameters and average velocity.

This commit is contained in:
Karthik 2021-07-11 14:34:19 +02:00
parent e16ac42415
commit 058fa0fb19

View File

@ -24,18 +24,18 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
BlueDetuning;
BlueBeamRadius;
BlueBeamWaist;
BlueWaveVector;
BlueWaveNumber;
BlueSaturationIntensity;
OrangePower;
OrangeDetuning;
OrangeBeamRadius;
OrangeBeamWaist;
OrangeWaveVector;
OrangeWaveNumber;
OrangeSaturationIntensity;
CoolingBeamPower;
CoolingBeamWaveVector;
CoolingBeamWaveNumber;
CoolingBeamLinewidth;
CoolingBeamDetuning;
CoolingBeamRadius;
@ -49,7 +49,7 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
SidebandBeamSaturationIntensity;
PushBeamPower;
PushBeamWaveVector;
PushBeamWaveNumber;
PushBeamLinewidth;
PushBeamDetuning;
PushBeamRadius;
@ -71,16 +71,16 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
CaptureVelocity;
VelocityCutoff;
ClausingFactor;
ThetaArray;
AngularDistribution;
NormalizationConstantForAngularDistribution;
ReducedClausingFactor;
ReducedFlux;
TimeSpentInInteractionRegion;
%Flags
SpontaneousEmission;
Sideband;
ZeemanSlowerBeam;
Gravity;
AtomicBeamCollision;
BackgroundCollision;
DebugMode;
DoSave;
@ -124,7 +124,7 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
@islogical);
addParameter(p, 'Gravity', false,...
@islogical);
addParameter(p, 'AtomicBeamCollision', true,...
addParameter(p, 'BackgroundCollision', false,...
@islogical);
addParameter(p, 'DebugMode', false,...
@islogical);
@ -144,7 +144,7 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
s.Sideband = p.Results.Sideband;
s.ZeemanSlowerBeam = p.Results.ZeemanSlowerBeam;
s.Gravity = p.Results.Gravity;
s.AtomicBeamCollision = p.Results.AtomicBeamCollision;
s.BackgroundCollision = p.Results.BackgroundCollision;
s.DebugMode = p.Results.DebugMode;
s.DoSave = p.Results.SaveData;
@ -177,7 +177,7 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
ret = this.SimulationTime;
end
function set.NumberOfAtoms(this, val)
assert(val <= 10000, 'Not time efficient to compute for atom numbers larger than 10,000!');
assert(val <= 20000, 'Not time efficient to compute for atom numbers larger than 20,000!');
this.NumberOfAtoms = val;
end
function ret = get.NumberOfAtoms(this)
@ -282,11 +282,11 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
function ret = get.BlueBeamWaist(this)
ret = this.BlueBeamWaist;
end
function set.BlueWaveVector(this, val)
this.BlueWaveVector = val;
function set.BlueWaveNumber(this, val)
this.BlueWaveNumber = val;
end
function ret = get.BlueWaveVector(this)
ret = this.BlueWaveVector;
function ret = get.BlueWaveNumber(this)
ret = this.BlueWaveNumber;
end
function set.BlueSaturationIntensity(this, val)
this.BlueSaturationIntensity = val;
@ -319,11 +319,11 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
function ret = get.OrangeBeamWaist(this)
ret = this.OrangeBeamWaist;
end
function set.OrangeWaveVector(this, val)
this.OrangeWaveVector = val;
function set.OrangeWaveNumber(this, val)
this.OrangeWaveNumber = val;
end
function ret = get.OrangeWaveVector(this)
ret = this.OrangeWaveVector;
function ret = get.OrangeWaveNumber(this)
ret = this.OrangeWaveNumber;
end
function set.OrangeSaturationIntensity(this, val)
this.OrangeSaturationIntensity = val;
@ -356,11 +356,11 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
function ret = get.CoolingBeamWaist(this)
ret = this.CoolingBeamWaist;
end
function set.CoolingBeamWaveVector(this, val)
this.CoolingBeamWaveVector = val;
function set.CoolingBeamWaveNumber(this, val)
this.CoolingBeamWaveNumber = val;
end
function ret = get.CoolingBeamWaveVector(this)
ret = this.CoolingBeamWaveVector;
function ret = get.CoolingBeamWaveNumber(this)
ret = this.CoolingBeamWaveNumber;
end
function set.CoolingBeamLinewidth(this, val)
this.CoolingBeamLinewidth = val;
@ -430,11 +430,11 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
function ret = get.PushBeamWaist(this)
ret = this.PushBeamWaist;
end
function set.PushBeamWaveVector(this, val)
this.PushBeamWaveVector = val;
function set.PushBeamWaveNumber(this, val)
this.PushBeamWaveNumber= val;
end
function ret = get.PushBeamWaveVector(this)
ret = this.PushBeamWaveVector;
function ret = get.PushBeamWaveNumber(this)
ret = this.PushBeamWaveNumber;
end
function set.PushBeamLinewidth(this, val)
this.PushBeamLinewidth = val;
@ -529,31 +529,23 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
function ret = get.ClausingFactor(this)
ret = this.ClausingFactor;
end
function set.AngularDistribution(this,val)
this.AngularDistribution = val;
function set.ReducedClausingFactor(this,val)
this.ReducedClausingFactor = val;
end
function ret = get.AngularDistribution(this)
ret = this.AngularDistribution;
function ret = get.ReducedClausingFactor(this)
ret = this.ReducedClausingFactor;
end
function set.ThetaArray(this,val)
this.ThetaArray = val;
function set.ReducedFlux(this,val)
this.ReducedFlux = val;
end
function ret = get.ThetaArray(this)
ret = this.ThetaArray;
function ret = get.ReducedFlux(this)
ret = this.ReducedFlux;
end
function set.NormalizationConstantForAngularDistribution(this,val)
this.NormalizationConstantForAngularDistribution = val;
function set.TimeSpentInInteractionRegion(this,val)
this.TimeSpentInInteractionRegion = val;
end
function ret = get.NormalizationConstantForAngularDistribution(this)
ret = this.NormalizationConstantForAngularDistribution;
end
function set.AtomicBeamCollision(this,val)
this.AtomicBeamCollision=val;
end
function ret=get.AtomicBeamCollision(this)
ret=this.AtomicBeamCollision;
function ret = get.TimeSpentInInteractionRegion(this)
ret = this.TimeSpentInInteractionRegion;
end
function set.DebugMode(this, val)
@ -586,19 +578,19 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
methods
function ret = get.CoolingBeamSaturationParameter(this)
ret = 4* this.CoolingBeamPower/(pi*this.CoolingBeamWaist^2)/this.CoolingBeamSaturationIntensity/10; % two beams are reflected
ret = 0.1 * (4 * this.CoolingBeamPower) / (pi*this.CoolingBeamWaist^2 * this.CoolingBeamSaturationIntensity); % two beams are reflected
end
function ret = get.SidebandSaturationParameter(this)
ret = 4*this.SidebandPower/(pi*this.SidebandBeamWaist^2)/this.SidebandBeamSaturationIntensity/10;
ret = 0.1 * (4 * this.SidebandPower) / (pi*this.SidebandBeamWaist^2 * this.SidebandBeamSaturationIntensity);
end
function ret = get.PushBeamSaturationParameter(this)
ret = this.PushBeamPower/(pi*this.PushBeamWaist^2)/this.PushBeamSaturationIntensity/10;
ret = 0.1 * this.PushBeamPower/(pi * this.PushBeamWaist^2 * this.PushBeamSaturationIntensity);
end
function ret = get.ZeemanSlowerBeamSaturationParameter(this)
ret = this.ZeemanSlowerBeamPower/(pi*this.ZeemanSlowerBeamWaist^2)/this.ZeemanSlowerBeamSaturationIntensity/10;
ret = 0.1 * this.ZeemanSlowerBeamPower / (pi * this.ZeemanSlowerBeamWaist^2 * this.ZeemanSlowerBeamSaturationIntensity);
end
function ret = get.OvenTemperatureinKelvin(this)
@ -607,7 +599,7 @@ classdef MOTSimulator < handle & matlab.mixin.Copyable
function ret = get.AverageVelocity(this)
%See Background collision probability section in Barbiero
ret = sqrt(((8*pi)/9) * ((Helper.PhysicsConstants.BoltzmannConstant * this.OvenTemperatureinKelvin)/Helper.PhysicsConstants.Dy164Mass));
ret = sqrt((8*Helper.PhysicsConstants.BoltzmannConstant*this.OvenTemperatureinKelvin)/ (pi*Helper.PhysicsConstants.Dy164Mass));
end
function ret = get.AtomicBeamDensity(this)