Generating performance portable geoscientific simulation code with Firedrake (Invited)