A solver's Solve() method returns an estimate of the model for a given operator of compatible type, a data input vector , and possibly a starting model vector . Usually, a programmer sets the solver's convergence criteria. For example, geophysicists usually combine a maximal number of iterations (for iterative solvers) or an acceptable residual norm. Currently, HCL includes about three solver classes. We hope that as more solvers are implemented, a solver class hierarchy will develop.