Because even the simplest mistake can result in hours of debugging, it is critical to do everything possible to make software clean and simple. One thing which we can do in the physical sciences toward this end is to use dimensional analysis.

The simplest form of dimensional analysis is to change to a new system of units tailored specifically to the problem at hand. This is relatively straight-forward because it involves no change in our equations and changes only the numerical values of the physical constants which appear. It requires only that, once the calculations are complete, we convert the results back to standard units using the familiar rules for unit conversion.

A tailored system of units can be very useful when the relevant physical constants have large or small values in term standard units. In a quantum mechanics calculation, for instance, kgm/s and, as appears in many of our expressions, numerical underflow is a significant risk. On the other hand, if we worked not in meters but Angstroms (1 Å= 10 m), which are much more relevant for quantum mechanical problems, then we have kgÅ/s, a much more manageable number.

Often times, we can do much better and arrange so that all of the relevant physical constants have a numerical value of unity. This has the tremendous advantage that we do not have to type the values of the physical constants into each subroutines or try to set up a repository of global variables, both of which are a frequent source of hard-to-track bugs. Once should definitely seek such an appropriate set of units before beginning a scientific application.

In the case of density functional theory, inspection of the
expressions above reveals four physical constants: Planck's constant
, the electron mass , Coulomb's constant , and the
electron charge . Rather than use the standard units of meter,
kilogram and second for the three fundamental dimensions of length,
mass and time, we can define three new units, which we shall call L, M
and T, respectively. With the ability to choose three unknowns, in
general we can hope to reduce only three physical constants to the
value unity. We are fortunate, however, because our physical
constants always appear in only one of *two* different
combinations, or , which we can simultaneously
reduce to unity with an appropriate choice of units.

For our two combinations, we have

where represents the SI unit of energy, the Joule, which has units 1 J=1 kgm/s. In our new system of units, we would like these combinations of constants to appear as

where E is the unit of energy in our units 1 E=1 ML/T. We may easily solve (18) for L and E, finding the standard atomic units of the Bohr and the Hartree as our units of length and energy, respectively,

(19) | |||

(20) |

From now, on so long as we interpret all distances in our calculations as expressed in Bohrs (about 1/2 Angstrom) and all energies in Hartrees (about 27 electron Volts), we can take the factors and to be unity and, in effect ignore all physical constants appearing in our expressions. Note that we have in reserve the ability to set yet one other constant to unity in the future, if necessary.

Tomas Arias 2004-01-26