You can easily calculate cross-polarization in HFSS or CST.
There comes the fancy part: Cross-polarization definition.
If you are checking the cross-polarization level on the principal planes (E or H-plane) then there is no confusion.
The important thing, if your array or your antennas have symmetry planes you won't get anything on the principal planes (E-plane or H-plane) only the numerical error. Typically diagonal planes have the worse cross-polarization performance, and therefore they are checked and plotted for many applications.
However, if you are checking points other than principal planes, then you have to pick a "Cross-polarization definition". You have to pick one of three Ludwig definitions.
You can find it at:
Ludwig, A.; , "The definition of cross polarization," Antennas and Propagation, IEEE Transactions on , vol.21, no.1, pp. 116- 119, Jan 1973
doi: 10.1109/TAP.1973.1140406
URL:
IEEE Xplore - Sign In
Note that all three reduce to same vectors in principal planes.
Hope this helps. Both CST and HFSS can calculate cross polarization using all three Ludwig cross-polarization definitions. The most commonly used one is Ludwig's 3rd definition as most measurement facilities measure the cross-polarization in a way that is compatible for this definition.
Edit: I figured that this was an old post. But, I think the stuff posted here can be useful for others as well...