Symbolic preconditioning techniques for linear systems of partial differential equations