Appendix A

Option Explicit

Private Sub cmdComputePrad_Click()

Const c As Double = 299792000

Const epsilon0 As Double = 0.00000000000885

Const pi As Double = 3.14159265358979

Const A As Double = 1

Const omega As Double = 0.95 * c * A

Const freq As Double = omega / (2 * pi)

Const tau As Double = 1 / freq

Const Steps As Long = 1000

Const deltat As Double = tau / Steps

Const q As Double = 1

Const TransV As Double = 277140791.364136

Const TransI As Double = 37

Dim t(Steps) As Double

Dim I As Long

Dim Prad(Steps) As Double

Dim vx(Steps), gamma, ax, daxdt As Double

Dim Term As Double

Dim Erad As Double

'Compute the Powers.

For I = 0 To Steps - 1

t(I) = I * deltat

'GoTo sinusoidal

If I <= TransI Or I >= Steps / 2 - TransI And I <= Steps / 2 + TransI Or I >= Steps - TransI Then

If I <= TransI Or I >= Steps - TransI Then

vx(I) = TransV

Else

vx(I) = -TransV

End If

ax = 0

daxdt = 0

Else

sinusoidal:

vx(I) = omega * A * Cos(omega * t(I))

ax = -omega ^ 2 * A * Sin(omega * t(I))

daxdt = -omega ^ 3 * A * Cos(omega * t(I))

GoTo skipendif

End If

skipendif:

gamma = 1 / Sqr(1 - vx(I) ^ 2 / c ^ 2)

Term = -(gamma ^ 4) * q ^ 2 * vx(I) / (6 * pi * epsilon0 * c ^ 3)

Prad(I) = Term * (daxdt + 3 * gamma ^ 2 * vx(I) * ax ^ 2 / c ^ 2)

Next I

'Compute the total radiated energy per cycle.

Erad = 0

For I = 0 To Steps - 1

Erad = Erad + Prad(I) * deltat

Next I

MsgBox ("Erad = " & Erad)

'Output the values of Prad(t) for plotting purposes.

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

For I = 0 To Steps - 1

Write #1, t(I), Prad(I)

Next I

MsgBox ("Ready for plotting")

Stop

End Sub