This thesis describes methods for aerodynamic optimization, including a new derivation of an adjoint method for efficient computation and regularization of the gradient. Also, a general method using different surface parameterizations is presented.
Further, the design and implementation of an parallel, object oriented code based on these methods is described. The implementation is in C++ mixed with Fortran and includes a general purpose PDE solver framework and an array package which uses expression templates for maximal efficiency.
Finally, numerical optimization of 2D and 3D test cases are presented which confirm the accuracy and efficiency of the theory and implementation.