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