$3\times 3 = 6 + \bar{3}$ in Mathematica?

The Susyno and LieART Mathematica packages can do this. I know best the first one (I wrote it), so let me use it as an example in this answer.

Assuming that you have installed and loaded the package in a Mathematica session, your example ($\mathbf{10}\times\mathbf{27}$ in $SU(3)$) is computed as follows:

ReduceRepProduct[SU3, {{3, 0}, {2, 2}}]

This follows the generic syntax (which allows more complicated cases)

ReduceRepProduct[<group>, {<rep1>, <rep2>,...}]

The output in your case is

{{{5, 2}, 1}, {{3, 3}, 1}, {{1, 4}, 1}, {{4, 1}, 1}, {{3, 0}, 1}, {{0, 3}, 1}, {{1, 1}, 1}, {{2, 2}, 1}}

which is a list of the form

{..., {< SU(3) representation in the product >, < multiplicity >}, ...}

More information on this or other functions in the package can be found in the help files which you should be able to access from the Mathematica help system itself (once the package is installed of course). In any case, let me say something about the labeling of the representations. The program uses their Dynkin coefficients (as does the LiE program you mentioned). This is true for the output as well as for the input: $\mathbf{10}=\left\{3,0\right\} $ and $\mathbf{27}=\left\{ 2,2\right\} $. To convert the Dynkin coefficients to a more human-friendly notation ($\mathbf{10}$, $\mathbf{27}$, $\overline{\mathbf{3}}$, $\mathbf{15'}$, etc.) you can use the RepName function. In a single step, the code could be

{RepName[SU3, #[[1]]], #[[2]]} & /@ ReduceRepProduct[SU3, {{3, 0}, {2, 2}}]

in which case the output would look as follows:

$\left\{ \left\{ \mathbf{81},1\right\} ,\left\{ \mathbf{64},1\right\} ,\left\{ \overline{\mathbf{35}},1\right\} ,\left\{ \mathbf{35},1\right\} ,\left\{ \mathbf{10},1\right\} ,\left\{ \overline{\mathbf{10}},1\right\} ,\left\{ \mathbf{8},1\right\} ,\left\{ \mathbf{27},1\right\} \right\}$

Of course, the names of representations are partially conventional so, as a general rule, the output of RepName should be interpreted with some care. In the case of $SU(3)$ I think the only important point is that the $\left\{ 0,2\right\}$ representation is considered by this function to have the name $\mathbf{6}$ (not $\overline{\mathbf{6}}$), so for example

{RepName[SU3, #[[1]]], #[[2]]} & /@ ReduceRepProduct[SU3, {{1, 0}, {1, 0}}]

yields

$\left\{ \left\{ \overline{\mathbf{6}},1\right\} ,\left\{ \overline{\mathbf{3}},1\right\} \right\} $

In the package, you can find various other Lie group related functions which can be used, for example, to extract more information on a given representation. Details are explained in the built-in documentation.

Edit addressing your question in the comments [06/March/2015]

A preamble for some context

By multiplying the fundamental representation $F$ of $SU(N)$ with itself $m$ times ($F_{1}\times F_{2}\times F_{3}\cdots\times F_{m}$; subscripts were added just to differentiate the factors) we obtain an $N^m$-dimensional representation of the group, which is reducible. In fact, the irreducible parts can be obtained by (anti)symmetrizing over the $F_i$ representations. For example, in $SU(3)$, $\mathbf{3}\times\mathbf{3} $ is a 9-dimensional representation, which breaks into a symmetric part ($\mathbf{3}_{1}\times\mathbf{3}_{2}+\mathbf{3}_{2}\times\mathbf{3}_{1}$; it is 6-dimensional and it is called by RepName of Susyno the $\overline{\mathbf{6}}$), and an anti-symmetric part ($\mathbf{3}_{1}\times\mathbf{3}_{2}-\mathbf{3}_{2}\times\mathbf{3}_{1}$; the $\overline{\mathbf{3}}$).

By repeated multiplication of the fundamental representation, one can obtain in this way all the irreducible representations of $SU(N)$. Young tableaux are usually associated with the (anti)symmetrization part of this procedure (see for example these notes), which effectively means that an irreducible representation of $SU(N)$ can be labeled also with partitions $\lambda=\left\{ \lambda_{1},\lambda_{2},\cdots,\lambda_{N}\right\} $ with $\lambda_{1}\geq\lambda_{2}\geq\cdots\lambda_{N}\geq0$ of $m=\sum_{i=1}^{N}\lambda_{i}=m$ ($m$ being the number of times the fundamental representation must be multiplied; see above). In the case of $\mathbf{3}\times\mathbf{3} $ in $SU(3)$, we have $m=2$ and the partitions $\lambda=\left\{ 2\right\} $ (which can be seen as $\lambda=\left\{ 2,0\right\} $) and $\left\{1,1\right\} $. The first one is identified with the $\overline{\mathbf{6}}$ (again, in RepName's notation), and the second with the $\overline{\mathbf{3}}$.

Graphically, each $\lambda=\left\{ \lambda_{1},\lambda_{2},\cdots,\lambda_{N}\right\} $ is associated with the Young diagram with $\lambda_1$ boxes in the first row, $\lambda_2$ boxes in the second row, etc.

Answering the question

I'm assuming then you asked for the conversion of the Dynkin coefficients notation $\Lambda=\left\{ \Lambda_{1},\Lambda_{2},...,\Lambda_{N}\right\} $ to the partition notation $\lambda=\left\{ \lambda_{1},\lambda_{2},\cdots,\lambda_{N}\right\} $. It is quite easy: $\Lambda_i$ is the number of columns in the Young diagram with $i$ boxes, so $\Lambda_i=\lambda_i-\lambda_{i+1}$. Then, a possible way to write a function to make this conversion would be

ConvertToPartitionNotation[repr_] := Reverse[Accumulate[Reverse[repr]]]

where repr should be the Dynkin coefficients of the representation (which is what the functions of Susyno output). For example,

DimR[SU3, {1,1}] (* To make sure that {1,1} is the octet; or just use RepName[SU3,{1,1}]  *)
ConvertToPartitionNotation[{1, 1}]

yields

8
{2,1}

Susyno can deal with any simple Lie algebra but, just to be clear, all the discussion above about partitions is valid only for the representations of $SU(N)$ groups.


For completeness, here is a way with the LieART` package. (By the way, I usually write $DefaultOutputForm=StandardForm; before loading the package, as it otherwise messes up with my preferred output form.)

<< LieART`
Irrep[SU[3]][10] Irrep[SU[3]][27]

This gives the (TraditionalForm) output $\boldsymbol{8+10+\overline{10}+27+35+\overline{35}+64+81}$.

The second part of your question, in a comment, was how to express each of these representations in "tensor form". I was hoping to do that with xAct`xTensor` but did not succeed.