16 lines
664 B
Mathematica
16 lines
664 B
Mathematica
|
function ret = accelerationDueToSpontaneousEmissionProcess(this, SaturationParameter, TotalSaturationParameter, Linewidth, WaveNumber)
|
||
|
Vector = [2*rand(1)-1,2*rand(1)-1,2*rand(1)-1];
|
||
|
Vector = Vector./norm(Vector);
|
||
|
|
||
|
ScatteringRate = (0.5 * Linewidth) * (SaturationParameter / (1 + TotalSaturationParameter));
|
||
|
NumberOfScatteringEvents = floor(ScatteringRate * this.TimeStep);
|
||
|
|
||
|
if NumberOfScatteringEvents > 0
|
||
|
ret = Vector.*((Helper.PhysicsConstants.PlanckConstantReduced * WaveNumber) / ...
|
||
|
(Helper.PhysicsConstants.Dy164Mass * this.TimeStep)).* sqrt(NumberOfScatteringEvents);
|
||
|
else
|
||
|
ret = zeros(1,3);
|
||
|
end
|
||
|
end
|
||
|
|