Here is a follow-up paper on the unconditionally stable time step for diffuse interface methods.

Paper: Maximally fast coarsening algorithms

Authors: Mowei Cheng and Andrew D. Rutenberg

Abstract:

We present maximally fast numerical algorithms for conserved coarsening systems thatare stable and accurate with a growing natural time step \Delta t = A t_{s}^{2/3}. We compare the scaling structure obtained from our maximally fast conserved systems directly against the standard fixed time-step Euler algorithm, and find that the error scales as \sqrt{A}—so arbitrary accuracy can be achieved. For non-conserved systems, only effectively finite time steps are accessible for similar unconditionally stable algorithms.

The lecture notes of an upper-division Introduction to Computational Physics course in html and pdf formats:

A complete set of lecture notes for an upper-division computational physics course. Topics covered include scientific programming in C, the numerical solution of ordinary and partial differential equations, particle-in-cell codes, and Monte Carlo methods.

I especially liked the programming methodology adopted in the course, namely,

…write our own programs–completely from scratch–in a high-level language.

And, what is more, I liked the choice of programming language much more:

Of the above languages, we can immediately rule out C++, because object-orientation is an unnecessary complication (at least, for our purposes), and FORTRAN 90, because of the absence of an inexpensive compiler. The remaining options are FORTRAN 77 and C. I have chosen to use C (augmented by some of the useful, non-object-orientated features of C++) in this course, simply because I find the archaic features of FORTRAN 77 too embarrassing to teach students in the 21st century.

And, whatever little I read of the lecture notes I liked too. Take a look!

PS:- For those of you coming from a physics background, there are also other lecture notes of Prof. Richard Fitzpatrick that are available online here.