1. Georg Brandl
  2. ipython-physics


ipython-physics /

Filename Size Date modified Message
19 B
Make conversion consistently use "//", add README file.
3.2 KB
README.txt edited online with Bitbucket
32.7 KB
Quick fix for newest IPythons, disable the %tbl magic for now.
262 B
Duh, the real test was commented out

This is an extension for IPython 0.11+ that at the moment mainly enables easy
input of physical quantities (i.e. numbers with units).  The implementation
is adapted from Konrad Hinsen's "Scientific.Physics.PhysicalQuantities" module.

If the "uncertainties" module (http://github.com/newville/uncertainties/) is
installed, you can also enter values with standard errors wherever you can enter
quantities, see the examples below.

You can have a look at a short notebook tutorial put together by Hans Fangohr at

Quick installation advice:

  Place `physics.py` in any directory on PYTHONPATH, or add its directory to
  `sys.path` in your IPython `ipython_config.py` file.  Then you can load it
  either in the config file or on the command line as described here:

Quick usage examples:

  In:  1 m // cm                        # convert between units
  Out: 100 cm                           # (syntax inspired by Mathematica)

  In:  (1 m)/(1 s)                      # sugar for inline quantity input
  Out: 1 m/s                            # in arbitrary expressions

  In:  Quantity('1 m')/Quantity('1 s')  # this is the desugared form
  Out: 1 m/s

  In:  // furlong/fortnight             # convert units in last result
  Out: 6012.8848 furlong/fortnight

  In:  alpha = 90 deg                   # more sugar for assignment: no
                                        # parentheses needed

  In:  sin(alpha)                       # angle units work with NumPy
  Out: 1.0                              # trigonometric functions

  In:  m = 80 +/- 5 kg                  # calculating with uncertainties
  In:  v = 130 +/- 10 m/s               # (needs the "uncertainties" module)
  In:  0.5 * m * v**2 // kJ
  Out: 676 +/- 112.25445 kJ

  In:  %tbl sqrt(?x**2 + ?y**2) // cm   # quickly tabulate a formula:
  x = 1 m                               # provide some values
  y = 2 m
  Out: 223.6068 cm                      # and get the result
  x = 3 m                               # ... this continues as long as you
  y = 4 m                               # enter new values
  Out: 500 cm

  In:  c0                               # important physical constants
  Out: 2.9979246e+08 m/s
  In:  setprec(4)                       # set the display precision
  In:  c0
  Out: 2.998e+08 m/s

The predefined constants are:

  c0    -- vacuum speed of light
  mu0   -- magnetic constant
  eps0  -- electric constant
  Grav  -- Newton's constant
  hpl   -- Planck's constant
  hbar  -- Planck's constant / 2pi
  e0    -- elementary charge
  me    -- electron mass
  mp    -- proton mass
  mn    -- neutron mass
  NA    -- Avogadro's number
  kb    -- Boltzmann constant
  g0    -- Standard earth gravity
  R     -- Universal gas constant
  alpha -- fine structure constant
  Ry    -- Rydberg constant
  mu_n  -- Magnetic moment of the neutron
  gamma -- Gyromagnetic ratio of the neutron
  h0    -- dimensionless Hubble parameter

Please let me know if anything is missing.