Check analytic derivatives

The functions **PrintAnalyticForces()** and **PrintNumericalForces()** in **eff_output** will print out to the standard output all the nuclear and electron forces, evaluated analytically and numerically through finite differences. Commented-out calls to these functions appear in **eff_driver**. When developing new energy expressions, it is useful to check that the analytic derivatives are correct by comparing the output of these two functions.

Use spin annealing

The function **AnnealSpins()** in **eff_driver** randomly swaps opposite spins in a Metropolis Monte Carlo fashion while keeping all particle positions fixed, using a temperature ramp profile specified through the arguments. A commented-out call to this function appear in **RunSinglePoint()** in **eff_driver**. We have used this routine to anneal the spin configuration of lithium solid to a lower potential energy state.

Julius 2008-04-29