__Mercury’s Orbital Precession
Attributable To The Sun’s Spin
__

References:

**(1)
Roots of Gravitomagnetic Theory. (Article on this website.)
**

**(2)
THE FEYNMAN LECTURES ON PHYSICS, volume 2, Section 14-5.
**

In Newton’s gravitational
force law, no distinction is made between a non-spinning central body and a
spinning central body. In most cases the central body mass can be modeled as a *point*
mass. Given a massive central body whose center is at rest in an inertial frame,
a satellite’s orbit can be *analytically*
found to be a closed ellipse.

__Figure 1__

__Orbit of
Mercury in the Sun's Gravitational Field__

In Gravitomagnetic Theory
(GMT) Newton’s gravitation law again applies to a central body (whether the
body spins or not). Quite as the *electric*
field of a sphere of charge (whose center is at rest) is inverse square
regardless of whether or not the sphere spins, so is the *gravitational* field of a sphere of mass inverse square.

However, analogously to a
spinning charge, GMT specifies that a *spinning*
mass has an Imaginary gravitomagnetic field (dubbed the ** O** field) quite as a spinning charge has a Real

Invoking Newton 2, the resulting satellite path in the case of a spinning Sun can be computed (see Appendix A). And it is found that the analytical closed elliptic orbit, attributable to gravity alone, is very slightly different when the central body spins. However, this difference is not great enough to be seen in a plot like Fig. 1. But the difference can be greatly exaggerated by increasing the gravitomagnetic force to be say .1 of the gravitational force. Fig 2. plots the computed Mercury path around a spinning Sun whose gravitomagnetic field has been exaggerated. Note that there is no perihelion. Of course in reality the opening out of the orbit is very much less obvious.

__Figure 2__

__Orbit
Under the Influence of a Much Enhanced Gravitomagnetic Force__

__Appendix
A
__

#Python 3.3.4 (v3.3.4:7ff62415e426, Feb 10 2014, 18:12:08) [MSC v.1600 32 bit (Intel)] on win32

#Type "copyright", "credits" or "license()" for more information.

#class Precession:

"""

References and suggested background reading:

(1) Roots of Gravitomagnetic Theory. (Article on this website.)

(2) THE FEYNMAN LECTURES ON PHYSICS, volume 2, Section 14-5.

Please Note: "GMT" is short for "Gravitomagnetic Theory".

This program computes the orbit of Mercury as it travels

around the Sun, with the Sun spinning and, according to GMT, engendering a gravitomagnetic field

in addition to the omnipresent gravitational field. The center of the sun is assumed to

be fixed at the origin of a rectangular coordinate system in inertial space. When the sun spins CCW,

its angular velocity points in the positive z-direction.

In GMT the spinning sun is theorized to

engender a dipolar gravitomagnetic field that (a) points in the positive z-direction at internal

points of the equatorial plane, and (b) points in the negative z-direction at points in the

external equatorial plane. The orbit of Mercury

is also assumed to lie in the xy plane and, from the perspective of the positive z axis, also to be

CCW. Mercury is assumed to be acted upon by a gravitational force and

by an opposing gravitomagnetic force. Analytically the orbit is a perfect ellipse

when only gravity acts. However, with the small (and opposing) graviyomagnetic force also acting,

the result should hypothetically be an open ellipse.

It is expected that the computed result

may not be precisely what is observed owing to certain realities. First the spinning Sun

is modeled as a spinning square line mass, and not as a spinning, oblate sphere of mass

with a complicated internal density and with zones that rotate at different rates.

Secondly, the Sun's spin equatorial plane does not actually coincide precisely with the plane

of Mercury's orbit. (Mercury's orbital plane is tilted slightly, relative to the

Sun's spin equatorial plane.) Finally there may be

small numeric computer errors.

Feynman(Reference 2) models a square electric current loop as a square line charge q,

with sides a, and line charge density lambda=q/4a.

He assumes that this line charge circulates CCW in the xy-plane with a current,

I=q/tau, where tau is the time for q to make one trip around the loop. I.e. I=q*omega/(2*pi).

The magnetic moment for this model is mu=I*a**2, or mu=(q*omega*a**2/(2*pi).

For a point r>a in the loop's plane

he finds that B points in the -z direction and has the

value Bz=-(mu/(4*pi*eps0*c**2*r**3)=-(q*omega*a**2)/(2*pi*(4*pi*eps0)*c**2*r**3).

We model the spinning Sun as a square line mass M, where M=MassOfSun,

and with side a equal to R, the radius of the Sun, and with a line mass density of lambda=M/(4*R).

We assume that this line mass circulates CCW with a current I=lamda*v, where v=omega*2*R/pi is

the line mass speed around the loop.

At points in the equatorial plane and at greater distances

r>R our model indicates that Oz=-mu*G/(c**2*r**3)=-M*OmegaOfSun*R**2*G/(4*c**2*r**3).

"""

import math

N=50

#Constants for Sun.

MassOfSun=1.9891e30

RadiusOfSun=6.955e8

OmegaOfSun=2.*math.pi/(25.71*24*60**2)

#Constants for Mercury.

MercuryMass=.33011e24

PerihelionDistance=46001200e3

PerihelionSpeed=58.98e3

OrbitalPeriod=87.969*86400 #seconds

#Program constants

DT=OrbitalPeriod/N #Time increment betweem orbital step computations

SpeedOfLight=2.99792458e8

G=6.67408e-11 #Gravitational constant.

#First determine what OzAdjust must be in order for the gravitomagnetic force on Mercury

#to be 1/10 the gravitational force.

Dis=PerihelionDistance

F=-G*MassOfSun*MercuryMass/Dis**2 #F is gravitational force.
Masses are Imaginay; hence force is negative or attractive.

Oz=-MassOfSun*RadiusOfSun**2*G*OmegaOfSun/(4*SpeedOfLight**2*Dis**3)
#Oz is Imaginary.

GMF=MercuryMass*PerihelionSpeed*Oz #GMF is the gravitomagnetic
force. Note use of left hand rule. GMF opposes F.

#Want OzAdjust*GMF/F=.1

OzAdjust=.1*F/GMF

print("OzAdjust=",OzAdjust) #For reference.

OK=input("Cont?")

#Now compute orbit with sun spinning.

#Do trial orbit to determine numeric error.

print("computing. Please wait.")

Dis=[]

DisX=[]

DisY=[]

DisX.append(PerihelionDistance)

DisY.append(0.)

Dis.append(math.sqrt(DisX[0]**2+DisY[0]**2))

g=G*MassOfSun/Dis[0]**2

gX=g

gY=0.

FX=gX*MercuryMass #Gravitational force.

FY=0.

Oz=-OzAdjust*MassOfSun*RadiusOfSun**2*G*OmegaOfSun/(4*SpeedOfLight**2*Dis[0]**3)

#Oz=0. Execute this statement if computing gravity alone (non-spinning Sun).

GMFX=-MercuryMass*PerihelionSpeed*Oz

GMFY=MercuryMass*0.*Oz

TotalFX=FX+GMFX #Points toward Sun, but less than force when Sun does not spin.

TotalFY=FY+GMFY

AX=TotalFX/MercuryMass

AY=TotalFY/MercuryMass

VX=AX*DT/2

VY=PerihelionSpeed+(AY*DT/2)

#Set up for t=DT loop.

DisX.append(DisX[0]+VX*DT)

DisY.append(DisY[0]+VY*DT)

Dis.append(math.sqrt(DisX[1]**2+DisY[1]**2))

g=G*MassOfSun/Dis[1]**2

gX=g*(-DisX[1]/Dis[1])

gY=g*(-DisY[1]/Dis[1])

FX=gX*MercuryMass

FY=gY*MercuryMass

Oz=-OzAdjust*MassOfSun*RadiusOfSun**2*G*OmegaOfSun/(4*SpeedOfLight**2*Dis[1]**3)

#Oz=0.

GMFX=-MercuryMass*VY*Oz

GMFY=MercuryMass*VX*Oz

TotalFX=FX+GMFX #Points toward Sun.

TotalFY=FY+GMFY

AX=TotalFX/MercuryMass

AY=TotalFY/MercuryMass

VX=VX+AX*DT

VY=VY+AY*DT

#Now do rest of orbit.

for index in range(2,2*N-1):

DisX.append(DisX[index-1]+VX*DT)

DisY.append(DisY[index-1]+VY*DT)

Dis.append(math.sqrt(DisX[index]**2+DisY[index]**2))

g=G*MassOfSun/Dis[index]**2

gX=g*(-DisX[index]/Dis[index])

gY=g*(-DisY[index]/Dis[index])

FX=gX*MercuryMass

FY=gY*MercuryMass

Oz=-OzAdjust*MassOfSun*RadiusOfSun**2*G*OmegaOfSun/(4*SpeedOfLight**2*Dis[index]**3)

#Oz=0.

GMFX=-MercuryMass*VY*Oz

GMFY=MercuryMass*VX*Oz

TotalFX=FX+GMFX #Points toward Sun, but less than force when Suin does not spin.

TotalFY=FY+GMFY

AX=TotalFX/MercuryMass

AY=TotalFY/MercuryMass

VX=VX+AX*DT

VY=VY+AY*DT

#Execute following 3 statements for plotting of x-axis.

for index in range(0,2*N-1):

print(DisX[index])

c=input("Cont?")

#Execute following 3 statements for plotting of y-axis.

for index in range(0,2*N-1):

print(DisY[index])

c=input("Cont?")

print("End Of Program")