The equations that describe solar cell can be solved analytically or numerically. While the analytical equations are easier to solve by hand and give great insight into cell operation, they become difficult to solve as more factors of cell operation are included. In the past, it was common to re-write the equations slightly to simplify the solution to solve specific cases, however, such methods are time consuming. For example the solar cell modelling program on page XXX accurately models solar cell operation but only for a limited number cases as noted on the page.
Computer speeds have increased (and memory for 2D cases) so it is now easier to write a general solver that applies to most cases. There are an enormous number of packages for modelling semiconductor devices. However most of these packages either don't consider light generation or only partially include light generation effects. Even for packages specifically designed for simulating solar cells there exist a wide range of solvers both in house and commercially available for simulating solar cell operation. Most of these packages have fairly similar basic module and it comes down to how fast they are, how easy they are to use and how many effects they model.
The basic operation of a modelling program consists of setting up the model with user defined paramters, a generation of nodes to solve, then iterating to produce a solution that is consistent with all the nodes.
Two device modelling programs commonly within the photovoltaic community: PC1D for one-dimensional modelling and DESSIS for two dimensional modelling