Now for what a Weyl orbit is. It's a group-theory kind of orbit. Consider a group action: for some g in group G, find x' = g(x) for some x and x' in some set X. Thus: X = G(X).
If the group is a matrix group, then X can be a set of vectors, with action x' = g.x -- the dot or inner product.
If one starts with some x, then for all group elements g, the g(x)'s form an "orbit". The order or size of an orbit is related to that of the group by the orbit-stabilizer theorem:
(order of group) = (order of orbit) * (order of "stabilizer" subgroup, the subgroup that does x = g(x)).
So orbits can be much smaller than groups, and that's what one often finds here.
For roots in algebras and their reps, the orbits generated by the Weyl groups are Weyl orbits. The roots in the orbits can be related to weights, and the weights have the property that only one of them has all-nonnegative components: the dominant weight. So as one designates irreps by their highest weights, one can do likewise with Weyl orbits.
One can find the Weyl orbits in irreps using the same procedure as for rep roots. All one has to do is keep those with nonnegative weight vectors, and stop when the solution process fails to find any more. Multiplicities / degeneracies one can find with Frobenius's theorem, working from the dominant weights' roots. However, some of the roots that one uses in it will be non-dominant, and one has to find which orbits those roots are in. But that does not present much difficulty, and finding an irrep's orbits is usually much faster than finding its basis set of roots/weights.
This speedup is not original with me -- I read about it in
[1206.6379] LieART -- A Mathematica Application for Lie Algebras and Representation Theory. Though that package has much fancier output options than mine, it does not seem to do plethysms.
LieART also mentioned another speedup for doing rep products and subalgebra reps. One still needs to use complete expansions of the input reps, but as one calculates the products and subalgebra reps, one can keep only the roots with nonnegative weights, because those will designate the Weyl orbits. One can then find what irreps by using their Weyl-orbit content.
Now for expanding a Weyl orbit. One does not need an entire Weyl group for that, just its generators, and my code uses only the generators for the algebra's simple roots. One can start with the dominant root/weight and work one's way downward until one can proceed no further. Likewise, to see what orbit a root is in, one can work one's way upward until one gets to the dominant root/weight.
Using those alternative basis vectors for the roots of A(n), B(n), C(n), and D(n), one can use Weyl-group elements implicitly to get further speedups when expanding Weyl orbits.
- Take the dominant root from the Cartan-Weyl basis into an appropriate alternative basis.
- Apply the Weyl-group elements implicitly by doing sign changes and permutations, generating all the roots in the orbit.
- Take these roots back into the Cartan-Weyl basis.
However, that does not work so well for the exceptional algebras. One can easily special-case G2, but F4 is more difficult. I've been unable to find anything even halfway simple for E6, E7, or E8.
At least in my Mathematica version, I've found speedups for A(n), B(n), C(n), and D(n), but not for G2 or F4.