Find all homomorphisms from a Finite Field (using GAP)

Solution 1:

Okay I'm going to answer my own question because I've managed to cobble together something that works - in case anyone else finds it useful.

I'd still be quite happy to see if anyone has a better way, or sees an issue with this method though!

F := FiniteField(3, 5);
G := AbelianGroup(ListWithIdenticalEntries(5, 3));
basis := Basis(F);
gens := GeneratorsOfGroup(G);
f := v -> Product([1..5], i -> gens[i]^IntFFE(Coefficients(basis, v)[i]));

The finite field order 243 is additively isomorphic to $\mathbb Z_3^5$ (see: What do the elements of $\mathbb{F}_{243}$ look like?) so if we create that group and then map each element as a product of basis vectors to the corresponding product of generators we should get the additive isomorphism (the function f) we're looking for. I can then apply the homomorphism by normal subgroups method as above (there's a very fun 2664 of them...)