>  Docs Center  >  Libraries  >  Markwardt  >  SRVADD
Libraries

SRVADD

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



© 2024 NV5 Geospatial Solutions, Inc. |  Legal
   Contact Us