From b4e28e09dbf87849494b2230f802de3b4adbbb4f Mon Sep 17 00:00:00 2001 From: Karthik Chandrashekara Date: Sun, 11 Jul 2021 14:40:43 +0200 Subject: [PATCH] Wrapped the calculation of the "reduced" Clausing factor - which is the probability of an atom exiting from the oven within a smaller solid angle as determined by the apertures/orifices along the way. --- .../calculateReducedClausingFactor.m | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 MOT Capture Process Simulation/@MOTSimulator/calculateReducedClausingFactor.m diff --git a/MOT Capture Process Simulation/@MOTSimulator/calculateReducedClausingFactor.m b/MOT Capture Process Simulation/@MOTSimulator/calculateReducedClausingFactor.m new file mode 100644 index 0000000..e994c16 --- /dev/null +++ b/MOT Capture Process Simulation/@MOTSimulator/calculateReducedClausingFactor.m @@ -0,0 +1,17 @@ +function [ReducedClausingFactor, NormalizationConstantForAngularDistribution] = calculateReducedClausingFactor(this) + ThetaArray = linspace(0.0001, pi/2, 1000); + AngularDistribution = zeros(1,length(ThetaArray)); + parfor k = 1:length(ThetaArray) + AngularDistribution(k) = this.angularDistributionFunction(ThetaArray(k)); + end + + NormalizationConstantForAngularDistribution = max(2 * pi .* sin(ThetaArray) .* AngularDistribution); + + ReducedClausingFactor = 0; % We have to calculate the probability of an atom coming out of the oven subject to the physical constraint + parfor p = 1:length(ThetaArray) % that the angle of divergence is not more than the angle subtended at the mouth of the nozzle + if ThetaArray(p) <= this.NozzleExitDivergence + ReducedClausingFactor = ReducedClausingFactor + (2 * pi * sin(ThetaArray(p)) * AngularDistribution(p) * (ThetaArray(2)-ThetaArray(1))); + end + end + ReducedClausingFactor = ReducedClausingFactor / pi; +end \ No newline at end of file