UFC: a Finite Element Code Generation Interface