How Planck’s Constant Lies Implicit in the Bohr H Atom

Max Planck

The fields of a charged particle depend upon the particle’s position, velocity and acceleration at a previous time. (Griffiths, INTRODUCTION TO ELECTRODYNAMICS    , 2nd Edition) These parameters are called the retarded position, velocity and acceleration, and depend on where the particle was at a previous time. The retarded quantities differ from the current ones by amounts that depend on the distance between the particle and the field evaluation point. An example is found in the article “Revisiting the Bohr H Atom” on the present website. In that article the proton’s force on an orbiting electron is computed and stable states (where the accelerating electron does not radiate) are calculated.

Now the program (see Appendix A) uses only Newton, Maxwell and the Lorentz force law to identify the stable states. A constant of the motion can be identified: K1=2πmrv/N, where m, r and v are electron mass, speed and the radius of its orbit in stable state N. It is found that K1=6.62607e-34. This is practically equal to Planck’s constant, h=6.626068e-34. Although no mention of h is made in the derivation of the stable state’s electron motion, it is in there in the form of a system constant! Planck, who was reportedly skeptical about his discovery, might have been more comfortable if he had known about Rutherford’s work and if he’d had access to a PC.   

Appendix A. A “Creeping Up” Program.

import math
c=2.99792458e8  #Speed of light
eps0=8.85418782e-12    #Permittivity constant
q=1.60217662e-19    #Elementary charge
me=9.10938356e-31   #Electron rest mass
mp=1.6726219e-27    #Proton rest mass
re1=.529177211067e-10
ve1=q/math.sqrt(4*math.pi*eps0*me*re1)
L1=me*ve1*re1
#Any of the lowest 10 energies can be computed.
N=0
while N<=10:
    N=int(input('level=?(>10 to exit) '))
    if(N<11):
        print('Computing level ',N)
        ElectronOrbitRadius=N**2*re1    #N'th level electron orbit radius
        L=N*L1
        ve=q**2/(4*math.pi*eps0*N*L1)
        re=N*L1/(me*ve)
        taue=2*math.pi*re/ve
        nue=1/taue    #Orbital fequency
        omega=2*math.pi*nue    #Angular frequency
        vp1=me*ve1/mp #total momentum=0
        vp=me*ve/mp  
        rp1=vp1/omega
        rp=vp/omega  
        maxN=1e8    #Maximun number of iterations in orbital computation
        #DelayedTime=(re1+ProtonOrbitalRadius1)/c
        DelayedTime=(re+rp)/c
        dt=-DelayedTime/maxN    #Time increment
        loopN=-1
        theta=0.    #See diagram
        RadReactF=q**2*omega**3*re/(6*math.pi*eps0*c**3)  
        RetardedProtonSpeed=vp    #Proton travels at constant speed
        ar=RetardedProtonSpeed**2/rp
        Fy=0.    #Initial trial force of proton on electron
        #Find parameters when forces on electron sum to zero
        while RadReactF+Fy>=0:
            loopN=loopN+1
            #If infinite loop, Print params and exit by clicking X in display
            if loopN>maxN:
                print('Possible infiite loop.')
                print('loopN, RadReactF, Fy',loopN,'; ',RadReacF,', ',Fy)
                print('Abort by clicking X in your display.')
                input('OK?')
            #If necessary, keep 'inching up’ to loop termination condition.
            RetardedTime=-loopN*dt
            theta=omega*RetardedTime
            RetardedVelocityX=vp*math.sin(theta)    #See diagram
            RetardedVelocityY=vp*math.cos(theta)
            RetardedAccelerationX=-(vp**2)/rp*math.cos(theta)
            RetardedAccelerationY=vp**2/rp*math.sin(theta)
            L=math.sqrt((re+rp)**2-(rp*math.sin(theta))**2)
            alpha=math.atan(rp*math.sin(theta)/L)
            Lx=-L*math.cos(alpha)
            Ly=L*math.sin(alpha)
            #Compute electric field at electron (see Griffith's text)
            ux=c*Lx/L-RetardedVelocityX  
            uy=(c*Ly/L-RetardedVelocityY)  
            u=math.sqrt(ux**2+uy**2)
            ux=-u*math.cos(alpha)
            uy=u*math.sin(alpha)
            Ey=q/(4*math.pi*eps0)*L/(Lx*ux+Ly*uy)**3
            Ey=Ey*(uy*(c**2-RetardedProtonSpeed**2)-(Lx*(ux*RetardedAccelerationY-uy*RetardedAccelerationX)))
            Fy=-q*Ey    #Interactive force on electron
        #When Fy+RadiationReactionForce=0, display results.
        L=math.sqrt((re+rp)**2-(rp*math.sin(theta))**2)    #See diagram
        alpha=math.atan(rp*math.sin(theta)/L)
        Lx=-L*math.cos(alpha)
        Ly=L*math.sin(alpha)
        K1=2*math.pi*me*re*ve/N
        h=6.626068e-34    #Planck constant
        print("    K1=",K1,", h=",h)
        input("OK?")
        #Do another level.