From 058fa0fb191f8a673264d2808b4658f1671f2492 Mon Sep 17 00:00:00 2001 From: Karthik Chandrashekara Date: Sun, 11 Jul 2021 14:34:19 +0200 Subject: [PATCH] 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. --- .../@MOTSimulator/MOTSimulator.m | 96 +++++++++---------- 1 file changed, 44 insertions(+), 52 deletions(-) diff --git a/MOT Capture Process Simulation/@MOTSimulator/MOTSimulator.m b/MOT Capture Process Simulation/@MOTSimulator/MOTSimulator.m index a83f68c..24ad242 100644 --- a/MOT Capture Process Simulation/@MOTSimulator/MOTSimulator.m +++ b/MOT Capture Process Simulation/@MOTSimulator/MOTSimulator.m @@ -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)