This document describes the overall build process to produce an executable SPARK simulator. It also explains step by step how to implement a driver function for a SPARK problem. For example, writing your own driver function will let you solve multiple problems sequentially as well as re-solve the same problem(s) with different runtime control parameters and/or preference settings (e.g., to perform sensitivity analysis or to recover from a failed simulation with a new set of solution settings).