Computational Methods for Optimal Design and Control by John Burns & J. Borggaard