Toward an Electrodynamically Stable Model of the Bohr Atom
G.R.Dixon, 12/9/2011
In the case of the nominal Bohr Hydrogen atom it is assumed that the nucleus (proton) is at rest and the electron revolves around the nucleus in a circular orbit. The electron experiences a tangential radiation reaction force pointing opposite to its velocity. If this force is not counteracted, then the electron will slow down and spiral into the nucleus ... a difficulty appreciated by Bohr.
If the nucleus is indeed at rest, then it cannot provide the needed counteraction to the radiation reaction force. However, if the much heavier nucleus orbits in a smaller radius orbit, it might produce a tangential force on the electron. And if this force points opposite to the radiation reaction force, then there is the interesting possibility that, given an appropriate circular orbital radius of the nucleus, the net tangential force on the electron will be zero.
Now it turns out that an orbiting nucleus, always diametrically opposed to the electron, does indeed produce a tangential, interactive force component that points in the same direction as the electron’s velocity. For example, as the attached Basic program indicates, a nucleus obeying Bohr’s rule (that mvr=h/2p) produces an interactive tangential force that does positive work per cycle in the amount 6.389E-21 joules. This is, however, not equal in magnitude to the negative work per cycle done by the radiation reaction force, which is -7.017E-24 joules. However, the positive work done per cycle in the case of the resting nucleus is zero. By the Mean Value Theorem we might conclude that there is some proton orbital radius which produces a precise counteraction to the electron radiation reaction force. For computation purposes we shall approximate by finding a total work per cycle (done on the electron by the summed interactive and radiation reaction forces) which is 1/1000’th of the (negative) work done by the radiation reaction force alone.
The attached program suggests that the nuclear orbital radius, approximating the desired counteraction to the electron radiation reaction force, is 1.25E-15 meters. That is on the order of the proton’s generally accepted radius of approximately 1E-15 meters. Thus the stable (ground) state of the atom will evidently occur when the proton "wobbles" around its center point. Note that the total computed work per cycle, at this proton orbital radius, is only 7.736E-27 joules.
Basic Program that Computes the Approximate Critical Proton Orbital Radius.
Option Explicit
Private Sub cmdCompute_Click()
Const c As Double = 299800000# 'speed of light
Const h As Double = 6.626068E-34 'Planck constant
Const eps0 As Double = 0.00000000000885 'permittivity constant
Const pi As Double = 3.141592654
Const K As Double = 1 / (4 * pi * eps0)
Const q As Double = 1.6E-19 'elementary charge
Const melec As Double = 9.11E-31 'electron mass
Const mprot As Double = 1.67E-27 'proton mass
Const relec As Double = h ^ 2 / (4 * pi ^ 2 * K * q ^ 2 * melec) 'electron orbit radius
Const xelec As Double = relec 'components of electron orbit radius
Const yelec As Double = 0
Dim vprot As Double 'speed of proton
vprot = 2 * pi * K * Sqr(melec) * q ^ 2 / (h * Sqr(mprot)) 'trial proton speed
Const omega As Double = 8 * pi ^ 3 * K ^ 2 * melec * q ^ 4 / h ^ 3 'common angular speed
Dim rprotOrig, rprot As Double 'Original computed proton orbital radius
rprotOrig = h ^ 2 / (4 * pi ^ 2 * K * q ^ 2 * Sqr(mprot * melec)) 'based on Bohr L rule
rprot = rprotOrig
MsgBox ("Nominal proton orbital radius (Bohr L Rule) = " & rprot & ", nominal vprot = " & vprot)
Dim WorkRR, WorkInt, WorkTotal As Double 'works per orbit done by forces on electron
'Compute and display the (negative) work per cycle done by the radiation reaction force.
WorkRR = -q ^ 2 * omega ^ 3 * relec ^ 2 / (3 * eps0 * c ^ 3) 'work done by rad react force
MsgBox ("Negative work per cycle done by rad react force is " & WorkRR)
'Then compute the (positive) work per cycle done by the interactive force.
'Variables used in computing E field at electron.
Dim dtmin, dtmax, dt, t, tr As Double
Dim xprotr, yprotr As Double
Dim drx, dry, dr As Double
Dim vprotxr, vprotyr, vprotr, aprotxr, aprotyr As Double
Dim ux, uy As Double
Dim Ey, Fy As Double
t = 0
dtmin = 0
dtmax = 5 * relec / c
Do
dt = (dtmin + dtmax) / 2
tr = t - dt
xprotr = -rprot * Cos(omega * tr)
yprotr = -rprot * Sin(omega * tr)
drx = xelec - xprotr
dry = yelec - yprotr
dr = Sqr(drx ^ 2 + dry ^ 2)
If Abs(c * dt - dr) < 2 ^ (-30) Then Exit Do
If c * dt - dr > 0 Then
dtmax = dt
Else
dtmin = dt
End If
Loop
vprotxr = omega * rprot * Sin(omega * tr)
vprotyr = -omega * rprot * Cos(omega * tr)
vprotr = Sqr(vprotxr ^ 2 + vprotyr ^ 2)
aprotxr = omega ^ 2 * rprot * Cos(omega * tr)
aprotyr = omega ^ 2 * rprot * Sin(omega * tr)
ux = c * drx / dr - vprotxr
uy = c * dry / dr - vprotyr
Ey = q / (4 * pi * eps0) * dr / (drx * ux + dry * uy) ^ 3 * (uy * (c ^ 2 - vprotr ^ 2) - drx * (ux * aprotyr - uy * aprotxr))
Fy = -q * Ey
WorkInt = Fy * 2 * pi * relec
MsgBox ("Interactive Work = " & WorkInt)
'Now start reducing rprot and recomputing WorkInt until WorkTotal is approximately 0.
Dim rprotmod As Double
rprotmod = 0.00001 * rprot
t = 0
dtmin = 0
dtmax = 5 * relec / c
Dim TrialCount As Long
TrialCount = 0
'Compute the interactive force on the electron, for a given proton orbital radius.
Trials:
TrialCount = TrialCount + 1
Debug.Print TrialCount
rprot = rprot - rprotmod
Do
dt = (dtmin + dtmax) / 2
tr = t - dt
xprotr = -rprot * Cos(omega * tr)
yprotr = -rprot * Sin(omega * tr)
drx = xelec - xprotr
dry = yelec - yprotr
dr = Sqr(drx ^ 2 + dry ^ 2)
If Abs(c * dt - dr) < 2 ^ (-30) Then Exit Do
If c * dt - dr > 0 Then
dtmax = dt
Else
dtmin = dt
End If
Loop
vprotxr = omega * rprot * Sin(omega * tr)
vprotyr = -omega * rprot * Cos(omega * tr)
vprotr = Sqr(vprotxr ^ 2 + vprotyr ^ 2)
aprotxr = omega ^ 2 * rprot * Cos(omega * tr)
aprotyr = omega ^ 2 * rprot * Sin(omega * tr)
ux = c * drx / dr - vprotxr
uy = c * dry / dr - vprotyr
Ey = q / (4 * pi * eps0) * dr / (drx * ux + dry * uy) ^ 3 * (uy * (c ^ 2 - vprotr ^ 2) - drx * (ux * aprotyr - uy * aprotxr))
Fy = -q * Ey
'Variables used for storing Interactive and Total Work values, for backing out
'if the Total Work goes negative.
Dim WorkIntOld, WorkTotalOld As Double
'Now compute the Interactive Work per cycle.
WorkIntOld = WorkInt
WorkInt = Fy * 2 * pi * relec
'Sum the Interactive and Rad React forces to find the total work per cycle done on the electron.
WorkTotalOld = WorkTotal
WorkTotal = WorkInt + WorkRR
'When Total Work goes negative, we are as close to zero as this program will get.
If WorkTotal < 0 Then
GoTo Done
Else
'Otherwise, reduce the proton orbital radius and re-compute the interactive force.
GoTo Trials
End If
Done:
'At finish, restore and display the last proton orbital radius that produced a positive total work.
rprot = rprot + rprotmod
MsgBox ("Last rprot producing positive WorkTotal = " & rprot)
'Then back out to the previous Interactive and Total Works.
WorkInt = WorkIntOld
WorkTotal = WorkTotalOld
'Display the works per cycle.
MsgBox ("WorkInt = " & WorkInt & ", WorkRR = " & WorkRR & ", WorkTotal = " & WorkTotal)
Stop
End Sub