  We study the numerical solution of the time-dependent Gross-Pitaevskii
equation (GPE) describing a Bose-Einstein condensate (BEC) at zero or very low
temperature. In preparation for the numerics we scale the 3d Gross-Pitaevskii
equation and obtain a four-parameter model. Identifying `extreme parameter
regimes', the model is accessible to analytical perturbation theory, which
justifies formal procedures well known in the physical literature: reduction to
2d and 1d GPEs, approximation of ground state solutions of the GPE and
geometrical optics approximations. Then we use a time-splitting spectral method
to discretize the time-dependent GPE. Again, perturbation theory is used to
understand the discretization scheme and to choose the spatial/temporal grid in
dependence of the perturbation parameter. Extensive numerical examples in 1d,
2d and 3d for weak/strong interactions, defocusing/focusing nonlinearity, and
zero/nonzero initial phase data are presented to demonstrate the power of the
numerical method and to discuss the physics of Bose-Einstein condensation.
