Calculations/MOT Capture Process Simulation/@MOTSimulator/setInitialConditions.m

98 lines
5.6 KiB
Matlab

function setInitialConditions(this, varargin)
p = inputParser;
p.KeepUnmatched = true;
addParameter(p, 'NumberOfAtoms', 5000,...
@(x) assert(isnumeric(x) && isscalar(x) && (x > 0)));
addParameter(p, 'BluePower', 200e-3,...
@(x) assert(isnumeric(x) && isscalar(x) && (x > 0)));
addParameter(p, 'BlueDetuning', -1.92857*Helper.PhysicsConstants.BlueLinewidth,...
@(x) assert(isnumeric(x) && isscalar(x)));
addParameter(p, 'BlueBeamWaist', 10e-3,...
@(x) assert(isnumeric(x) && isscalar(x) && (x > 0)));
addParameter(p, 'SidebandPower', 200e-3,...
@(x) assert(isnumeric(x) && isscalar(x) && (x > 0)));
addParameter(p, 'SidebandDetuning', 0,...
@(x) assert(isnumeric(x) && isscalar(x)));
addParameter(p, 'SidebandBeamWaist', 12e-3,...
@(x) assert(isnumeric(x) && isscalar(x) && (x > 0)));
addParameter(p, 'PushBeamPower', 10e-3,...
@(x) assert(isnumeric(x) && isscalar(x) && (x > 0)));
addParameter(p, 'PushBeamDetuning', 0,...
@(x) assert(isnumeric(x) && isscalar(x)));
addParameter(p, 'PushBeamWaist', 0.81e-3,...
@(x) assert(isnumeric(x) && isscalar(x) && (x > 0)));
addParameter(p, 'OrangePower', 70e-3,...
@(x) assert(isnumeric(x) && isscalar(x) && (x > 0)));
addParameter(p, 'OrangeDetuning', 12e-3,...
@(x) assert(isnumeric(x) && isscalar(x)));
addParameter(p, 'OrangeBeamWaist', 12e-3,...
@(x) assert(isnumeric(x) && isscalar(x) && (x > 0)));
addParameter(p, 'ZeemanSlowerBeamPower', 200e-3,...
@(x) assert(isnumeric(x) && isscalar(x) && (x > 0)));
addParameter(p, 'ZeemanSlowerBeamDetuning', -7*Helper.PhysicsConstants.BlueLinewidth,...
@(x) assert(isnumeric(x) && isscalar(x)));
addParameter(p, 'ZeemanSlowerBeamWaist', 7e-3,...
@(x) assert(isnumeric(x) && isscalar(x) && (x > 0)));
p.parse(varargin{:});
this.NumberOfAtoms = p.Results.NumberOfAtoms;
this.BluePower = p.Results.BluePower;
this.BlueDetuning = p.Results.BlueDetuning;
this.BlueBeamWaist = p.Results.BlueBeamWaist;
this.SidebandPower = p.Results.SidebandPower;
this.SidebandDetuning = p.Results.SidebandDetuning;
this.SidebandBeamWaist = p.Results.SidebandBeamWaist;
this.PushBeamPower = p.Results.PushBeamPower;
this.PushBeamDetuning = p.Results.PushBeamDetuning;
this.PushBeamWaist = p.Results.PushBeamWaist;
this.OrangePower = p.Results.OrangePower;
this.OrangeDetuning = p.Results.OrangeDetuning;
this.OrangeBeamWaist = p.Results.OrangeBeamWaist;
this.ZeemanSlowerBeamPower = p.Results.ZeemanSlowerBeamPower;
this.ZeemanSlowerBeamDetuning = p.Results.ZeemanSlowerBeamDetuning;
this.ZeemanSlowerBeamWaist = p.Results.ZeemanSlowerBeamWaist;
%% Set general parameters according to simulation mode
switch this.SimulationMode
case "2D"
this.CoolingBeamPower = this.BluePower;
this.CoolingBeamWaist = this.BlueBeamWaist;
this.CoolingBeamLinewidth = Helper.PhysicsConstants.BlueLinewidth;
this.CoolingBeamWaveVector = this.BlueWaveVector;
this.CoolingBeamDetuning = this.BlueDetuning;
this.CoolingBeamRadius = this.BlueBeamRadius;
this.CoolingBeamSaturationIntensity = this.BlueSaturationIntensity;
this.SidebandBeamRadius = this.BlueBeamRadius;
this.SidebandBeamSaturationIntensity = this.BlueSaturationIntensity;
this.PushBeamLinewidth = Helper.PhysicsConstants.OrangeLinewidth;
this.PushBeamWaveVector = this.OrangeWaveVector;
this.PushBeamDetuning = this.OrangeDetuning;
this.PushBeamSaturationIntensity = this.OrangeSaturationIntensity;
this.LandegFactor = Helper.PhysicsConstants.BlueLandegFactor;
this.MagneticSubLevel = 1;
case "3D"
% Development In progress
end
%% - store in struct
this.InitialParameters = struct;
this.InitialParameters.NumberOfAtoms = this.NumberOfAtoms;
this.InitialParameters.BluePower = this.BluePower;
this.InitialParameters.BlueDetuning = this.BlueDetuning;
this.InitialParameters.BlueBeamWaist = this.BlueBeamWaist;
this.InitialParameters.SidebandPower = this.SidebandPower;
this.InitialParameters.SidebandDetuning = this.SidebandDetuning;
this.InitialParameters.SidebandBeamWaist = this.SidebandBeamWaist;
this.InitialParameters.PushBeamPower = this.PushBeamPower;
this.InitialParameters.PushBeamDetuning = this.PushBeamDetuning;
this.InitialParameters.PushBeamWaist = this.PushBeamWaist;
this.InitialParameters.OrangePower = this.OrangePower;
this.InitialParameters.OrangeDetuning = this.OrangeDetuning;
this.InitialParameters.OrangeBeamWaist = this.OrangeBeamWaist;
this.InitialParameters.ZeemanSlowerBeamPower = this.ZeemanSlowerBeamPower;
this.InitialParameters.ZeemanSlowerBeamDetuning = this.ZeemanSlowerBeamDetuning;
this.InitialParameters.ZeemanSlowerBeamBeamWaist = this.ZeemanSlowerBeamWaist;
end