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

![]() |
(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