Added source_term to the solver.

It does not change any parts of the codes for systems without source. It
just adds more functionality.