Program for "Covariance of Abraham-Lorentz, Point Charge Going in a Circle in Motional Rest Frame K"

 

Private Sub cmdCircularAL_Click()

Const c As Double = 299792458

Const pi As Double = 3.14159265

Const q As Double = 1

Const Radius As Double = 0.000001

Const eps0 As Double = 0.00000000000885

Const u As Double = 0.0001 * c

Const a As Double = u ^ 2 / Radius

Const omega As Double = u / Radius

Const tau As Double = 2 * pi / omega

Const N As Double = 10000

Const dt As Double = tau / N

Const K As Double = q ^ 2 / (6 * pi * eps0 * c ^ 3)

Const v As Double = 0.95 * c

'Const Term As Double = a ^ 2 - (u * a / c) ^ 2

Dim t(N), tp(N) As Double

Dim x(N), y(N) As Double

Dim ux(N), uxp, uy(N), uyp, up As Double

Dim ax(N), axp, ay(N), ayp, ap As Double

Dim daxdt(N), daxdtp, daydt(N), daydtp, dadtp As Double

Dim Fx, Fxp, Fy, Fyp As Double

Dim PAL(N), PALp(N) As Double

Dim index As Long

Dim gamma, gammap As Double

Dim IntAL, IntALp As Double

Dim dtp As Double

gamma = 1 / Sqr(1 - v ^ 2 / c ^ 2)

gammap = 1 / Sqr(1 - u ^ 2 / c ^ 2)

'Compute P(t).

For index = 0 To N - 1

t(index) = index * dt

x(index) = Radius * Cos(omega * t(index))

y(index) = Radius * Sin(omega * t(index))

ux(index) = -omega * Radius * Sin(omega * t(index))

uy(index) = omega * Radius * Cos(omega * t(index))

ax(index) = -omega ^ 2 * Radius * Cos(omega * t(index))

ay(index) = -omega ^ 2 * Radius * Sin(omega * t(index))

daxdt(index) = omega ^ 3 * Radius * Sin(omega * t(index))

daydt(index) = -omega ^ 3 * Radius * Cos(omega * t(index))

Fx = -K * gammap ^ 4 * (daxdt(index) + 3 * gammap ^ 2 * ux(index) * a ^ 2 / c ^ 2)

Fy = -K * gammap ^ 4 * (daydt(index) + 3 * gammap ^ 2 * uy(index) * a ^ 2 / c ^ 2)

PAL(index) = ux(index) * Fx + uy(index) * Fy

Next index

'Integrate P(t) to find the energy radiated per cycle.

IntAL = 0

For index = 0 To N - 1

IntAL = IntAL + PAL(index) * dt

Next index

MsgBox ("IntAL = " & IntAL)

'Then transform the values to frame Kprime and compute the power in Kprime.

For index = 0 To N - 1

tp(index) = gamma * (t(index) - v * x(index) / c ^ 2)

uxp = (ux(index) - v) / (1 - v * ux(index) / c ^ 2)

uyp = uy(index) / gamma / (1 - v * ux(index) / c ^ 2)

up = Sqr(uxp ^ 2 + uyp ^ 2)

gammap = 1 / Sqr(1 - up ^ 2 / c ^ 2)

axp = ax(index) / gamma ^ 3 / (1 - v * ux(index) / c ^ 2) ^ 3

ayp = ay(index) / gamma ^ 2 / (1 - v * ux(index) / c ^ 2) ^ 2 + v * uy(index) * ax(index) / c ^ 2 / gamma ^ 2 / (1 - v * ux(index) / c ^ 2) ^ 3

ap = Sqr(axp ^ 2 + ayp ^ 2)

daxdtp = 1 / gamma ^ 4 / (1 - v * ux(index) / c ^ 2) ^ 4 * (daxdt(index) + 3 * v * ax(index) ^ 2 / c ^ 2 / (1 - v * ux(index) / c ^ 2))

daydtp = 1 / gamma ^ 3 / (1 - v * ux(index) / c ^ 2) ^ 3 * (daydt(index) + 3 * v * ay(index) * ax(index) / c ^ 2 / (1 - v * ux(index) / c ^ 2) + v * uy(index) * daxdt(index) / c ^ 2 / (1 - v * ux(index) / c ^ 2) + 3 * v ^ 2 * uy(index) * ax(index) ^ 2 / c ^ 4 / (1 - v * ux(index) / c ^ 2) ^ 2)

Fxp = -K * gammap ^ 4 * (daxdtp + 3 * axp * gammap ^ 2 * (uxp * axp + uyp * ayp) / c ^ 2)

Fyp = -K * gammap ^ 4 * (daydtp + 3 * ayp * gammap ^ 2 * (uxp * axp + uyp * ayp) / c ^ 2)

PALp(index) = Fxp * uxp + Fyp * uyp

Next index

'Integrate to find the energy radiated per cycle in Kprime.

IntALp = 0

For index = 0 To N - 1

If index < (N - 1) Then dtp = tp(index + 1) - tp(index)

IntALp = IntALp + PALp(index) * dtp

Next index

MsgBox ("IntALp = " & IntALp & ", gamma*IntAL/IntALp = " & gamma * IntAL / IntALp)

'Output the powers for plotting.

Open "c:\WINMCAD\Physics\ALLL.PRN" For Output As #1

For index = 0 To N - 1

Write #1, t(index), PAL(index), tp(index), PALp(index)

Next index

Close

MsgBox ("Ready for plotting")

End Sub