98 lines
5.6 KiB
Matlab
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 |