sympy/sympy — pull request #2628 by melsophos (2013-11-24 16:58:29+00:00)
Title: Units

Here is a new implementation of unit systems and dimensional analysis.

This module is made of several layers:
- Dimensions and dimension systems: they are the fundamental objects in my algorithm, because they contain all the physical information about what are quantities. Dimensional analysis can be done with them, for example by replacing symbol by dimension.
- Units add scales to dimensions. They are arranged in unit systems, which allow to select only the units one wants, instead of having all defined as it is in the old unit module. Constants are defined as units for the moment (see the doc for a discussion on this point).
- Then you have physical quantities.
- Finally I have defined several systems: MKS, MKSA and natural systems.

This work includes extensive tests and doc, and I refer to the later for detailed explanations about how the algorithm works.

For those who followed the previous pull request (https://github.com/sympy/sympy/pull/1389), there is no more magic conversion and displaying: the user always has to explicit what he wants to see, but the computation are now much more predictable.

Some work remains to be done, but I think the module is already usable. Also for some points I'm not totally sure of what is the best, so it could be nice that other people begin to use it and say how they see it. For these discussions see the wiki: https://github.com/sympy/sympy/wiki/Unit-systems