## 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