27 lines
1.3 KiB
Matlab
27 lines
1.3 KiB
Matlab
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.PushBeamSaturationParameter, PositionVector, Origin, WaveVectorEndPoint, this.PushBeamRadius, this.PushBeamWaist);
|
|
|
|
DopplerShift = (VelocityVector * WaveVectorEndPoint(1:3)') * this.PushBeamWaveNumber;
|
|
|
|
Detuning = this.PushBeamDetuning - DopplerShift;
|
|
|
|
s_push = SaturationIntensity/(1 + SaturationIntensity + (4 * (Detuning./this.PushBeamLinewidth).^2));
|
|
a_push = (Helper.PhysicsConstants.PlanckConstantReduced * this.PushBeamWaveNumber * WaveVectorEndPoint(1:3)/Helper.PhysicsConstants.Dy164Mass).*(this.PushBeamLinewidth * 0.5) .* (s_push/(1+s_push));
|
|
|
|
if this.SpontaneousEmission
|
|
a_scatter = this.accelerationDueToSpontaneousEmissionProcess(s_push, s_push, Detuning, this.PushBeamLinewidth, this.PushBeamWaveNumber);
|
|
else
|
|
a_scatter = [0,0,0];
|
|
end
|
|
|
|
a_total = a_push + a_scatter;
|
|
|
|
ret = a_total(1:3);
|
|
end
|
|
|