Firedrake is an automated system for the portable solution of partial differential equations using the finite element method (FEM)