# My code uses ClebschGordan but Mathematica is using ThreeJSymbol

I'm using a function that calculate CG coefficients with the function ClebschGordan but instead, I've got the following error because Mathematica is using ThreeJSymbol:

ClebschGordan::phy: "ThreeJSymbol[{1/2,1/2},{0,0},{1/2,1/2}] is not physical. 

I know that this 3JSymbols isn't physical but is a valid value for a CG coefficient:

ClebschGordan[{1/2, 1/2}, {0, 0}, {1/2, 1/2}]  gives 1 as result.

Edit: Here is all the code and the actual code that I'm running.

GeneradorQs[M_] :=
Module[{l = Length[M], q, i}, q = {M[[l]] + M[[l - 1]]};
Table[AppendTo[q, q[[i]] + M[[l - (i + 1)]]], {i, 1, l - 3}];
q]

RangoAngular[j_] := Table[m, {m, -j, j}]

QVD[k_, q_] :=
Module[{i, total = 0},
For[i = 1, i <= Length[k], i++,
If[MemberQ[RangoAngular[k[[i]]], q[[i]]], total += 1]];
If[total == Length[k], True, False]]

Mexico[k_, q_, M_, j_, m_] :=
Module[{l = Length[M], prod = 0, i},
prod = ClebschGordan[{1/2, M[[l - 1]]}, {1/2, M[[l]]}, {k[[1]],
q[[1]]}];
For[i = 1, i <= l - 3, i++,
prod *= ClebschGordan[{1/2, M[[l - i]]}, {k[[i]],
q[[i]]}, {k[[i + 1]], q[[i + 1]]}]];
prod *=
ClebschGordan[{1/2, M[[1]]}, {k[[l - 2]], q[[l - 2]]}, {j, m}]]

Lapiz[K_, M_, j_, m_] :=
If[Total[M] == m &&
M}, {0, M}]


And I'm calling the function Lapiz with:

Lapiz[{0, 1/2}, {1/2, -(1/2), 1/2, -(1/2)}, 0, 0]


Edit${}^2$:

The snippet:

For[i = 1, i <= l - 3, i++, prod *= ClebschGordan[{1/2, M[[l - i]]}, {k[[i]], q[[i]]}, {k[[i + 1]], q[[i + 1]]}]];

have to be changed for

For[i = 1, i <= l - 3, i++, prod *= ClebschGordan[{1/2, M[[l - (i-1)]]}, {k[[i]], q[[i]]}, {k[[i + 1]], q[[i + 1]]}]];

You probably entered

ClebschGordan[{1/2,1/2},{0,0},{1/2,-1/2}]


and got the warning message. This happens when you use angular-momentum quantum numbers that don't satisfy the conservation laws. In this case, the rule $m_1+m_2=m$ is not met, see the documentation for ClebschGordan. However, Mathematica still produces the correct result, i.e., 0. This just says that the product state with individual angular-momentum z momenta $0$ and $\frac12$ does not occur in the total-angular-momentum state with z angular momentum $-\frac12$.

All you have to do is turn off the warning message, and everything will be fine:

Off[ClebschGordan::phy];


In your function Mexico, you do indeed call ClebschGordan[{1/2,1/2},{0,0},{1/2,-1/2}] as I suspected. This is easily confirmed by modifying the definition of Mexico by replacing ClebschGordan by ClebschGordan1 to see what arguments the functions are getting.

• Sorry but it isn't the case. The message that Mathematica shows me says that I'm doing: ClebschGordan[{1/2, 1/2}, {0, 0}, {1/2, 1/2}]. I'm thinking that the problem is somewhere else because, I've written CG[a_, b_, c_] := If[a == {1/2, 1/2} && c == {1/2, 1/2} && b == {0, 0}, 1, ClebschGordan[a, b, c]] but still giving me the same error. Jun 26 '16 at 16:30
• I don't understand. You'd have to post the actual input that gives rise to the warning. I get the warning you quote when I input the values I stated above. What happens if you type ClebschGordan[{1/2,1/2},{0,0},{1/2,1/2}]? You don't get any warning, or do you? If you do, what version of Mathematica are you using?
– Jens
Jun 26 '16 at 16:40
• I don't get any warning, just 1. But when ClebschGordan is called with the same arguments inside my functions* gives me the error that I put in the post. My functions is  Jun 26 '16 at 16:43
• As I said, you would have to post valid code to reproduce the problem before I can say anything else.
– Jens
Jun 26 '16 at 16:44
• You may be misunderstanding something. Probably something in your loops is wrong, but I can't guess what their purpose is. CG invokes ThreeJSymbol but that has the rule that the m indices add up to minus the total m`. The error corresponds exactly to the incorrect invocation I mentioned, and everything is the way it should be. The warning does deserve to be turned off when you know what you're doing. In your case, the warning probably points to a separate error that is specific to your loop.
– Jens
Jun 26 '16 at 17:24