SRVADD Name
SRVADD
Author
Craig B. Markwardt, NASA/GSFC Code 662, Greenbelt, MD 20770
craigm@lheamail.gsfc.nasa.gov
UPDATED VERSIONs can be found on my WEB PAGE:
http://cow.physics.wisc.edu/~craigm/idl/idl.html
Purpose
Add velocity 3-vectors according to special relativity
Major Topics
Physics, Geometry
Calling Sequence
U0 = SRVADD(U1, V)
Description
The function SRVADD performs addition of velocity 3-vectors
according to special relativity.
Consider two inertial coordinate frames. Frame "0" is a "lab" or
rest frame. Frame "1" is a "rocket" or moving frame, moving at
velocity V with respect to the lab frame. The velocity V is
allowed to be an arbitrary 3-vector.
* An observer in the rocket frame sees a body moving at velocity U1.
* An observer in the lab frame sees the same body moving at
velocity U0.
* This function solves for U0 in terms of V and U1.
U1 and V are allowed to be 3xN arrays, which means more than one
vector can be computed in a single call. If the dimensions of
either U1 or V are 3x1, then it will be expanded to match the
dimensions of the other vector. This simulates addition by a
"scalar" vector. Because V can be a 3xN array, this means that
multiple "rocket" frames can be computed at one time.
NOTE: Velocities passed to SRVADD are measured as a *fraction of
the speed of light*. Therefore, if the velocities are
measured in some physical units, and CLIGHT is the speed of
light in those same units, then the following statement:
U0 = SRVADD(U1/CLIGHT, V/CLIGHT)*CLIGHT
will compute the velocity U0, also in the same units.
The formula for computing the velocity in the lab frame is:
( (1-1/GAMMA)*(U1 . VUNIT)*VUNIT + U1/GAMMA + V )
U0 = -------------------------------------------------
(1 - U1 . V)
where
GAMMA is the Lorentz factor = 1/SQRT(1 - |V|^2)
VUNIT is the unit vector in the direction of V, = V/|V|
"." is the vector dot product
[ IDL notation is not strictly adhered to in this formula, for
clarity of presentation. ] Inputs
U1 - 3-vector or 3xN array, the velocity of a body as seen in the
rocket frame (frame 1). The velocity is normalized such that
the speed of light is 1.
V - 3-vector or 3xN array, the velocity of the rocket frame as
seen by an observer in the lab. The velocity is normalized
such that the speed of light is 1.
Returns
A 3xN array, containing the velocity of the body as seen in the
lab frame. The velocity is normalized such that the speed of
light is 1. Keyword Parameters
CLASSICAL - if set, then classical velocity addition is performed,
and the relativistic form is disabled.
Default: not set (i.e., relativity is applied)
Example
IDL> print, srvadd([0.1d,0,0], [0.5d,0,0])
0.56504883 0.0000000 0.0000000
Adds velocities of 0.1 and 0.5 times the speed of light. The
result is slightly less than the arithmetic sum.
IDL> print, srvadd([0.,0.1,0],[0.5d,0,0])
0.50000000 0.086602542 0.0000000
Adds velocities in two orthogonal directions. Demonstrates the
relativistic aberration of velocities (i.e., velocities in the
perpendicular direction are affected).
Modification History
Written, 28 Jan 2002, CM
More documentation, 29 Jan 2002, CM
Add CLASSICAL keyword, 29 Jul 2002, CM