2021-06-29 15:44:28 +02:00
|
|
|
function ret = accelerationDueToPushBeam(this, PositionVector, VelocityVector)
|
|
|
|
% is the distance between the chamber center and the cross point of push beam and z-axis (along the gravity)
|
|
|
|
WaveVectorEndPoint = [0, 1, this.DistanceBetweenPushBeamAnd3DMOTCenter/this.PushBeamDistance];
|
|
|
|
WaveVectorEndPoint = WaveVectorEndPoint./norm(WaveVectorEndPoint);
|
|
|
|
Origin=[0,0,0];
|
|
|
|
|
|
|
|
SaturationIntensity = this.calculateLocalSaturationIntensity(this.PushBeamSaturationIntensity, PositionVector, Origin, WaveVectorEndPoint, this.PushBeamRadius, this.PushBeamWaist);
|
|
|
|
|
|
|
|
DopplerShift = (VelocityVector * WaveVectorEndPoint(1:3)') * this.PushBeamWaveVector;
|
|
|
|
|
|
|
|
Detuning = this.PushBeamDetuning - DopplerShift;
|
|
|
|
|
|
|
|
a_push = (Helper.PhysicsConstants.PlanckConstantReduced * this.PushBeamWaveVector * WaveVectorEndPoint(1:3)/Helper.PhysicsConstants.Dy164Mass).*(this.PushBeamLinewidth * 0.5) .* ...
|
2021-07-04 20:24:38 +02:00
|
|
|
(SaturationIntensity/(1 + SaturationIntensity + (4 * (Detuning./this.PushBeamLinewidth).^2)));
|
2021-06-29 15:44:28 +02:00
|
|
|
|
|
|
|
if this.SpontaneousEmission
|
|
|
|
a_scatter = this.accelerationDueToSpontaneousEmissionProcess(SaturationIntensity, SaturationIntensity, Detuning, this.PushBeamLinewidth, this.PushBeamWaveVector);
|
|
|
|
else
|
|
|
|
a_scatter = [0,0,0];
|
|
|
|
end
|
|
|
|
|
|
|
|
a_total = a_push + a_scatter;
|
|
|
|
|
|
|
|
ret = a_total(1:3);
|
|
|
|
end
|
|
|
|
|