2021-07-11 14:40:43 +02:00
|
|
|
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
|
2021-07-14 20:23:00 +02:00
|
|
|
if ThetaArray(p) <= this.ExitDivergence
|
2021-07-11 14:40:43 +02:00
|
|
|
ReducedClausingFactor = ReducedClausingFactor + (2 * pi * sin(ThetaArray(p)) * AngularDistribution(p) * (ThetaArray(2)-ThetaArray(1)));
|
|
|
|
end
|
|
|
|
end
|
|
|
|
ReducedClausingFactor = ReducedClausingFactor / pi;
|
|
|
|
end
|