Unit systems

melsophos edited this page Jun 27, 2012 · 4 revisions
Clone this wiki locally

Note: this page is still in progress: the core of the module is still not finished, but it's a good time to begin to gather new ideas for the following. See the discussion on google groups.

Some articles speaking about the mathematical formulation of unit/dimension systems:

Here follow several proposition to improve the unit module.

Dimensional analysis

  • Implement Buckingham Π theorem: find all adimensional quantities with n quantities and N base units.


  • Add name to unit.
  • Units with offset (like °C).
  • Logarithmic units (dB, pH, bytes, etc.) : one has to take care to allow log in different basis (cf [deBoer1979]).
  • Verify that function arg are dimensionless (there is care to take with angles, cf the papers above).

Unit system

  • After an operation, search if the resulting units is the power or the multiple of an unit of the current system.
  • Extend to time system? (like hour/minutes/seconds) calendars?
  • Add prefixed units in two ways: either give a list of prefixes and all units of the system will have these prefixes, or give a dict as (unit): (list of prefixes) to associates only some prefixes.


  • When a quantity can be expressed in a simpler way with a "bigger" unit, do conversion; e.g 1200 m → 1.2 km. Add a global option to disable this automatic conversion (and other conversion).


  • Define sympy printing for the different objects (use the package siunitx for LaTeX).