PyR@TE v1.2.0

Release Notes

This document aims at describing the new features of PyR@TEv1.2.0 In particular it explains the new capabilities regarding its ability to handle terms that can lead to several gauge singlets. The first section is dedicated to the presentation of the issue, the second deals with the changes brought to PyR@TE in order to deal with such cases and finally, the last section shows how this applies to a concrete example namely the effective potential of the TypeII Seesaw model.

1. Multiple Gauge Singlets

The different terms entering a given Lagrangin, $\mathcal{L}$ in PyR@TE are given by a python dictionary under the following form

'\lambda_1': {Fields: [F1,F2,F3,F4], Norm: 1/2}.

Note that since v1.1.5 it is also possible to have a sum of terms as in

'\lambda_2': {Fields: [[F1,F2*,F1*,F2*],[F2,F1,F2,F1*]], Norm: [1,1/2]},

such an example will be shown later on.

In PyR@TE, each complex scalar field is expended into its real and complex component and then written as a gauge singlet i.e.

$\mathcal{L} \supset \lambda F_1^i F_2^j F_3^k F_4^l C_{ijkl}$,

where for simplicity we assume that the $F$ fields are charged under a single gauge group. $C_{ijkl}$ are the so called Clebsh-Gordon coefficients (CGCs). In PyR@TE we rely on a database constructed from the Mathematica package Susyno.

Until now, we assumed that only one such $C_{ijkl}$ exist for each term in the Lagrangian. However, as the dimension of the irreducible representations (irreps) involved in the Lagrangian or the number of fields increases one is likely to end up in the situation where there exist several ways to contract the indices of $F_1,F_2,F_3,F_4$ into a gauge singlet. For instance if one considers complex triplets of $\mathrm{SU}(2)$, we generally find in the literature the following two terms:

$\lambda_1 \mathrm{Tr}\left[\Delta^\dagger\Delta\Delta^\dagger\Delta\right]$ and $\lambda_2 \mathrm{Tr}\left[\Delta^\dagger\Delta\right]\mathrm{Tr}\left[\Delta^\dagger\Delta\right]$,

where $\Delta$ is a $2\times2$ matrix representation of the triplet in some basis. This case is therefore clearly not covered by the previous versions of PyR@TE and we now explain how to implement such terms in the new version.

2. 'CGCs' key in PyR@TE v1.2.0 and the interactive database querrying

In order to be able to implement such terms in PyR@TE a new keyword (key to the dictionary) has been introduced through which it is now possible to specify which CGCs to use for a given term. In the above generic example one could therefore specify something along the following lines:

'\lambda_1': {Fields: [F1,F2,F3,F4], Norm: 1/2, CGCs: [1]},

or for a sum of terms

'\lambda_2': {Fields: [[F1,F2*,F1*,F2*],[F2,F1,F2,F1*]], Norm: [1,1/2], CGCs: [1,2]}.

Because there are many different ways to write a given invariant the user must take special care that the term he is interested in really matches what is implemented in PyR@TE. More specifically, one has to make sure that the invariants are the same and the normalization of the CGCs identical. What is precisely meant here will become clear when presenting the example of the TypeII seesaw model.

In order to achieve this task the user must be able to probe PyR@TE database and check what is the exact expression for the CGCs which is implemented for a given invariant. To do so, we have implemented a command line mode allowing the user to explore PyR@TE's database.

2.1 '-idb' option

To start this mode the user simply needs to start PyR@TE with the '-idb' option as follows:

python pyR@TE -idb

or from a notebook as usual

%run pyR@TE -idb.

Then any of the following keywords and corresponding syntax can be used to probe the database:

Casimir group irrep AdjR group Dynkin group irrep FondR group GetDynk group dimirrep DimR group irrep Invariants group irreps Matrices group irrep

where irrep(s) refer to a Dynkin label(s).

In [1]:
%cd..
/Users/florian/Documents/work/Projects/Pyrate/git/pyrate

In [2]:
%run pyR@TE.py -idb




		==================================================================================

				PyR@TE version 1.2.2_beta released November 11th, 2015

			F. Lyonnet, I. Schienbein, F.Staub, A.Wingerter, arxiv 1309.7030
		==================================================================================


=========================================================================================================
		 Interactive PyR@TE: mode to querry the database.
		 The database is built on Susyno v3.4 November 6th.
		 IMPORTANT: All the results are therefore bounded by the implicit definitions of Susyno
		 to which we refer the user for further information. 
		 Florian Lyonnet: flyonnet@smu.edu 2015
=========================================================================================================

loading database of CGCs...
db version: August 22 2013
done!
Query: Casimir SU2 [2]
2
Query: AdjR SU4
[1, 0, 1]
Query: Dynkin SU3 [1,0]
1/2
Query:  FondR SU5
[1, 0, 0, 0]
Query: GetDynk SU2 [2,True]
The second argument must be an integer representing the dimension of the irrep
Query: GetDynk SU2 2
[1]
Query: DimR SU3 [1,0]
3
Query: exit

An exception has occurred, use %tb to see the full traceback.

SystemExit: Exiting the interactive mode.

3. The TypeII seesaw model inspired

In this last section we show how to implement a toy TypeII seesaw model.

3.1 Fields, Potential

In the model we consider here we have the following scalar particle content charged under $\mathrm{SU}(3)\times\mathrm{SU}(2)\times\mathrm{U}(1)$:

  • $H\sim(\boldsymbol{1},\boldsymbol{2},\boldsymbol{1/2})$,
  • $T\sim(\boldsymbol{1},\boldsymbol{3},\boldsymbol{1})$,

and the following scalar potential

$\mathcal{V} = \lambda_1 H^\dagger H H^\dagger H + \lambda_{2} \mathrm{Tr}\left[\Delta^\dagger \Delta \right]H^\dagger H + \lambda_3 H^\dagger \Delta \Delta^\dagger H + \lambda_{\Delta 1} \mathrm{Tr}\left[\Delta^\dagger \Delta\right]\mathrm{Tr}\left[\Delta^\dagger\Delta\right] + \lambda_{\Delta 2} \mathrm{Tr}\left[\Delta^\dagger\Delta \Delta^\dagger \Delta\right]$,

in which we have writen the vector triplet $T= (\Delta^{++},\Delta^{+},\Delta^{0})$ as a matrix

$\Delta =\left(\begin{array}{cc}\frac{\Delta^+}{\sqrt{2}}&\Delta^{++}\\ \Delta^0 & -\frac{\Delta^+}{\sqrt{2}}\end{array}\right)$.

This implies that $(\Delta^{++},\Delta^{+},\Delta^{0})$ transforms under SU(2) according to the following matrices:

$\left(\begin{array}{ccc}0&-\frac{1}{\sqrt{2}}&0\\-\frac{1}{\sqrt{2}}&0&\frac{1}{\sqrt{2}}\\0&\frac{1}{\sqrt{2}}&0\end{array}\right), \left(\begin{array}{ccc}0&\frac{I}{\sqrt{2}}&0\\-\frac{I}{\sqrt{2}}&0&-\frac{I}{\sqrt{2}}\\0&\frac{I}{\sqrt{2}}&0\end{array}\right), \left(\begin{array}{ccc}1&0&0\\0&0&0\\0&0&-1\end{array}\right)$.

However the matrices used in PyR@TE are slightly different as can be checked directly:

Note that the matrices are sparse matrices and only non-zero components are returned.

In [3]:
%run pyR@TE.py -idb




		==================================================================================

				PyR@TE version 1.2.2_beta released November 11th, 2015

			F. Lyonnet, I. Schienbein, F.Staub, A.Wingerter, arxiv 1309.7030
		==================================================================================


=========================================================================================================
		 Interactive PyR@TE: mode to querry the database.
		 The database is built on Susyno v3.4 November 6th.
		 IMPORTANT: All the results are therefore bounded by the implicit definitions of Susyno
		 to which we refer the user for further information. 
		 Florian Lyonnet: flyonnet@smu.edu 2015
=========================================================================================================

loading database of CGCs...
db version: August 22 2013
done!
Query: Matrices SU2 [2]
Sparse matrices, showing non zero components:

(((0, 1, sqrt(2)/2), (1, 0, sqrt(2)/2), (1, 2, sqrt(2)/2), (2, 1, sqrt(2)/2)), ((0, 1, -sqrt(2)*I/2), (1, 0, sqrt(2)*I/2), (1, 2, -sqrt(2)*I/2), (2, 1, sqrt(2)*I/2)), ((0, 0, 1), (2, 2, -1)))
Query: exit

An exception has occurred, use %tb to see the full traceback.

SystemExit: Exiting the interactive mode.
In [4]:
import sys
sys.path.append('../../sympy-0.7.6/')
In [5]:
sys.path = sys.path[::-1]
In [6]:
from sympy import *
from sympy import init_printing
init_printing(use_latex=True)
In [7]:
#Susyno matrices
Susyno3 = [Matrix([[0, sqrt(2)/2, 0],[sqrt(2)/2,0, sqrt(2)/2],[ 0, sqrt(2)/2,  0]]),
           Matrix([[0, -sqrt(2)*I/2,0],[sqrt(2)*I/2,0, -sqrt(2)*I/2],[0,sqrt(2)*I/2,0]]),
           Matrix([[1, 0,  0],[0, 0,  0],[0, 0, -1]])]
#Matrices used for (deltapp,deltap,delta0)
Pauli3=[Matrix([[0,-sqrt(2)/2,0],[-sqrt(2)/2,0,sqrt(2)/2],[0,sqrt(2)/2,0]]),
        Matrix([[0,sqrt(2)*I/2,0],[-sqrt(2)*I/2,0,-sqrt(2)*I/2],[0,sqrt(2)*I/2,0]]),
        Matrix([[1,0,0],[0,0,0],[0,0,-1]])]
P = Matrix([[-1,0,0],[0,1,0],[0,0,1]])

The two sets of matrices are related to each other by the matrix $P$

In [9]:
[Susyno3[i]-P*Pauli3[i]*P for i in range(3)]
Out[9]:
$$\begin{bmatrix}\left[\begin{smallmatrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{smallmatrix}\right], & \left[\begin{smallmatrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{smallmatrix}\right], & \left[\begin{smallmatrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{smallmatrix}\right]\end{bmatrix}$$

Which amounts to the redefinition $\Delta^{++}\rightarrow -\Delta^{++}$

In [10]:
P*Matrix([Symbol('Delta^{++}'),Symbol('Delta^+'),Symbol('Delta^0')])
Out[10]:
$$\left[\begin{smallmatrix}- \Delta^{{++}}\\\Delta^{+}\\\Delta^{0}\end{smallmatrix}\right]$$

Let's now have a look at the different CGCs involved in the above potential.

3.2 $\mathrm{SU}(2)$ Gauge singlets

3.2.1. $\boldsymbol{2^*}\times \boldsymbol{2}\times \boldsymbol{2^*}\times\boldsymbol{2}$

Invariants SU2 [[2,True],[2],[2,True],[2]]

In [11]:
%run pyR@TE.py -idb




		==================================================================================

				PyR@TE version 1.2.2_beta released November 11th, 2015

			F. Lyonnet, I. Schienbein, F.Staub, A.Wingerter, arxiv 1309.7030
		==================================================================================


=========================================================================================================
		 Interactive PyR@TE: mode to querry the database.
		 The database is built on Susyno v3.4 November 6th.
		 IMPORTANT: All the results are therefore bounded by the implicit definitions of Susyno
		 to which we refer the user for further information. 
		 Florian Lyonnet: flyonnet@smu.edu 2015
=========================================================================================================

loading database of CGCs...
db version: August 22 2013
done!
Query: Invariants SU2 [[1,True],[1],[1,True],[1]]
1 invariant:
	a[1]*b[1]*c[1]*d[1] + a[1]*b[1]*c[2]*d[2] + a[2]*b[2]*c[1]*d[1] + a[2]*b[2]*c[2]*d[2]

2 invariant:
	a[1]*b[1]*c[1]*d[1] - a[1]*b[1]*c[2]*d[2] + 2*a[1]*b[2]*c[2]*d[1] + 2*a[2]*b[1]*c[1]*d[2] - a[2]*b[2]*c[1]*d[1] + a[2]*b[2]*c[2]*d[2]


Query: exit

An exception has occurred, use %tb to see the full traceback.

SystemExit: Exiting the interactive mode.

so we see that in general there are two ways of contracting 4 different fields transforming as a $\boldsymbol{2}$ of $\mathrm{SU}(2)$ into a gauge singlet. However, it is clear that the contraction corresponding to the vector multiplication, $H^\dagger H=H_i H_j \delta_{ij}$ is the first one.

  • The first term would then be entered in PyR@TE as

'\lambda_1: {Fields: [H*,H,H*,H], CGCs: {SU2L: 1}, Norm: 1}

3.2.2. $\boldsymbol{3^*}\times \boldsymbol{3}\times \boldsymbol{3^*}\times \boldsymbol{3}$ of $\mathrm{SU}(2)$

Invariants SU2 [[2,True],[2],[2,True],[2]]

In [12]:
%run pyR@TE.py -idb




		==================================================================================

				PyR@TE version 1.2.2_beta released November 11th, 2015

			F. Lyonnet, I. Schienbein, F.Staub, A.Wingerter, arxiv 1309.7030
		==================================================================================


=========================================================================================================
		 Interactive PyR@TE: mode to querry the database.
		 The database is built on Susyno v3.4 November 6th.
		 IMPORTANT: All the results are therefore bounded by the implicit definitions of Susyno
		 to which we refer the user for further information. 
		 Florian Lyonnet: flyonnet@smu.edu 2015
=========================================================================================================

loading database of CGCs...
db version: August 22 2013
done!
Query: Invariants SU2 [[2,True],[2],[2,True],[2]]
1 invariant:
	a[1]*b[1]*c[1]*d[1] + a[1]*b[1]*c[2]*d[2]/2 + a[1]*b[1]*c[3]*d[3] + a[1]*b[2]*c[2]*d[1]/2 - a[1]*b[2]*c[3]*d[2]/2 + a[1]*b[3]*c[3]*d[1] + a[2]*b[1]*c[1]*d[2]/2 - a[2]*b[1]*c[2]*d[3]/2 + a[2]*b[2]*c[1]*d[1]/2 + 3*a[2]*b[2]*c[2]*d[2]/2 + a[2]*b[2]*c[3]*d[3]/2 - a[2]*b[3]*c[2]*d[1]/2 + a[2]*b[3]*c[3]*d[2]/2 + a[3]*b[1]*c[1]*d[3] - a[3]*b[2]*c[1]*d[2]/2 + a[3]*b[2]*c[2]*d[3]/2 + a[3]*b[3]*c[1]*d[1] + a[3]*b[3]*c[2]*d[2]/2 + a[3]*b[3]*c[3]*d[3]

2 invariant:
	a[1]*b[1]*c[1]*d[1] + a[1]*b[1]*c[2]*d[2]/2 - a[1]*b[1]*c[3]*d[3]/2 + a[1]*b[2]*c[2]*d[1]/2 + a[1]*b[2]*c[3]*d[2] - a[1]*b[3]*c[3]*d[1]/2 + a[2]*b[1]*c[1]*d[2]/2 + a[2]*b[1]*c[2]*d[3] + a[2]*b[2]*c[1]*d[1]/2 + a[2]*b[2]*c[3]*d[3]/2 + a[2]*b[3]*c[2]*d[1] + a[2]*b[3]*c[3]*d[2]/2 - a[3]*b[1]*c[1]*d[3]/2 + a[3]*b[2]*c[1]*d[2] + a[3]*b[2]*c[2]*d[3]/2 - a[3]*b[3]*c[1]*d[1]/2 + a[3]*b[3]*c[2]*d[2]/2 + a[3]*b[3]*c[3]*d[3]

3 invariant:
	a[1]*b[1]*c[2]*d[2] + a[1]*b[1]*c[3]*d[3] - a[1]*b[2]*c[2]*d[1] - a[1]*b[3]*c[3]*d[1] - a[2]*b[1]*c[1]*d[2] + a[2]*b[2]*c[1]*d[1] + a[2]*b[2]*c[3]*d[3] - a[2]*b[3]*c[3]*d[2] - a[3]*b[1]*c[1]*d[3] - a[3]*b[2]*c[2]*d[3] + a[3]*b[3]*c[1]*d[1] + a[3]*b[3]*c[2]*d[2]


Query: exit

An exception has occurred, use %tb to see the full traceback.

SystemExit: Exiting the interactive mode.

Here we have in general three invariants. Now, while it was obvious in the case of the doublets to find which term the vector multiplication corresponds to, we have to do a bit more work in this case.

In [1]:
import sys
sys.path.append('../../../sympy-0.7.6/')
In [3]:
sys.path=sys.path[::-1]
In [4]:
#Let's import sympy for algebraic manipulation (here 0.7.6)
from sympy import *
from sympy import init_printing
init_printing(use_latex=True)
a,b,c,d,Pi,Sig = map(IndexedBase,['a','b', 'c', 'd','Pi','Sigma'])
p = Wild('p')
In [10]:
invs = [inv1,inv2,inv3] = [a[1]*b[1]*c[1]*d[1] + a[1]*b[1]*c[2]*d[2]/2 + a[1]*b[1]*c[3]*d[3] + a[1]*b[2]*c[2]*d[1]/2 - a[1]*b[2]*c[3]*d[2]/2 + a[1]*b[3]*c[3]*d[1] + a[2]*b[1]*c[1]*d[2]/2 - a[2]*b[1]*c[2]*d[3]/2 + a[2]*b[2]*c[1]*d[1]/2 + 3*a[2]*b[2]*c[2]*d[2]/2 + a[2]*b[2]*c[3]*d[3]/2 - a[2]*b[3]*c[2]*d[1]/2 + a[2]*b[3]*c[3]*d[2]/2 + a[3]*b[1]*c[1]*d[3] - a[3]*b[2]*c[1]*d[2]/2 + a[3]*b[2]*c[2]*d[3]/2 + a[3]*b[3]*c[1]*d[1] + a[3]*b[3]*c[2]*d[2]/2 + a[3]*b[3]*c[3]*d[3],a[1]*b[1]*c[1]*d[1] + a[1]*b[1]*c[2]*d[2]/2 - a[1]*b[1]*c[3]*d[3]/2 + a[1]*b[2]*c[2]*d[1]/2 + a[1]*b[2]*c[3]*d[2] - a[1]*b[3]*c[3]*d[1]/2 + a[2]*b[1]*c[1]*d[2]/2 + a[2]*b[1]*c[2]*d[3] + a[2]*b[2]*c[1]*d[1]/2 + a[2]*b[2]*c[3]*d[3]/2 + a[2]*b[3]*c[2]*d[1] + a[2]*b[3]*c[3]*d[2]/2 - a[3]*b[1]*c[1]*d[3]/2 + a[3]*b[2]*c[1]*d[2] + a[3]*b[2]*c[2]*d[3]/2 - a[3]*b[3]*c[1]*d[1]/2 + a[3]*b[3]*c[2]*d[2]/2 + a[3]*b[3]*c[3]*d[3],a[1]*b[1]*c[2]*d[2] + a[1]*b[1]*c[3]*d[3] - a[1]*b[2]*c[2]*d[1] - a[1]*b[3]*c[3]*d[1] - a[2]*b[1]*c[1]*d[2] + a[2]*b[2]*c[1]*d[1] + a[2]*b[2]*c[3]*d[3] - a[2]*b[3]*c[3]*d[2] - a[3]*b[1]*c[1]*d[3] - a[3]*b[2]*c[2]*d[3] + a[3]*b[3]*c[1]*d[1] + a[3]*b[3]*c[2]*d[2]]

Let's substitute:

  • $a,c\rightarrow \Delta\rightarrow \frac{1}{\sqrt{2}}(\Pi + I\Sigma)$,
  • $b,d\rightarrow \Delta^\dagger\rightarrow \frac{1}{\sqrt{2}}(\Pi - I\Sigma)$
In [11]:
invs = [el.subs(((a,c),(b,d))).replace(c[p],1/sqrt(2)*(Pi[p]+I*Sig[p])).replace(d[p],1/sqrt(2)*(Pi[p]-I*Sig[p])).expand() for el in invs]

We can now expand the invariants defined in the potential applying the following replacement rules:

  • $\Delta = \left(\begin{array}{cc} \frac{(\Pi_2+ I \Sigma_2)}{2} & - \frac{\Pi_1+I \Sigma_1}{\sqrt{2}}\\ \frac{\Pi_3+I \Sigma_3}{\sqrt{2}} & - \frac{\Pi_2 + I \Sigma_2}{2}\end{array}\right)$, where we have expanded the triplets into real and complex components, e.g. $\Delta^{++} \rightarrow \frac{1}{\sqrt{2}}(\Pi_1+I\Sigma_1)$

we can now look at $\lambda_{\Delta_4}$ and $\lambda_9$

In [12]:
Delta = Matrix([[(Pi[2]+I*Sig[2])/2,-(Pi[1]+I*Sig[1])/sqrt(2)],[1/sqrt(2)*(Pi[3]+I*Sig[3]),-Rational(1,2)*(Pi[2]+I*Sig[2])]])
Delta
Out[12]:
$$\left[\begin{matrix}\frac{\Pi_{2}}{2} + \frac{i \Sigma_{2}}{2} & \frac{\sqrt{2}}{2} \left(- \Pi_{1} - i \Sigma_{1}\right)\\\frac{\sqrt{2}}{2} \left(\Pi_{3} + i \Sigma_{3}\right) & - \frac{\Pi_{2}}{2} - \frac{i \Sigma_{2}}{2}\end{matrix}\right]$$

These are our two couplings

In [13]:
lD2 = ((Delta.H*Delta*Delta.H*Delta).trace().replace(conjugate(p),p).expand())
lD1 = ((Delta.H*Delta).trace()*(Delta.H*Delta).trace()).replace(conjugate(p),p).expand()

It is easy to convinced oneself that the relation between $\lambda_{\Delta 2}$ and invs is $\frac{1}{3} (invs[0] + 2 invs[1])$.

In [15]:
lD2-Rational(1,3)*(invs[0]+2*invs[1]).expand()
Out[15]:
$$0$$

likewise for $\lambda_{\Delta 1}$:

In [17]:
lD1 - Rational(1,3)*(2*invs[0]+invs[1])
Out[17]:
$$0$$

Of course the third invariant vanishes

In [18]:
invs[2]
Out[18]:
$$0$$

Therefore, to implement $\lambda_{\Delta 4}$ and $\lambda_9$, one has to implement the following in PyR@TE:

  • '\lambda_{\Delta_2}': {Fields: [[T*,T,T*,T],[T*,T,T*,T]],CGCs: {SU2L: [1,2]} ,Norm: [1/3,2/3]}
  • 'lambda_{\Delta_1}': {Fields: [[T,T*,T,T*],[T,T*,T,T*]] CGCs: {SU2L: [1,2]}, Norm: [2/3,1/3]}
3.2.3. $\boldsymbol{2^*}\times \boldsymbol{3}\times\boldsymbol{3^*}\times\boldsymbol{2}$

Invariants SU2 [[1,True],[2],[2,True],[1]]

In [21]:
%run pyR@TE.py -idb




		==================================================================================

				PyR@TE version 1.2.2_beta released November 11th, 2015

			F. Lyonnet, I. Schienbein, F.Staub, A.Wingerter, arxiv 1309.7030
		==================================================================================


=========================================================================================================
		 Interactive PyR@TE: mode to querry the database.
		 The database is built on Susyno v3.4 November 6th.
		 IMPORTANT: All the results are therefore bounded by the implicit definitions of Susyno
		 to which we refer the user for further information. 
		 Florian Lyonnet: flyonnet@smu.edu 2015
=========================================================================================================

loading database of CGCs...
db version: August 22 2013
done!
Query: Invariants SU2 [[1,True],[2],[2,True],[1]]
1 invariant:
	a[1]*b[1]*c[1]*d[1] + a[1]*b[2]*c[2]*d[1] + a[1]*b[3]*c[3]*d[1] + a[2]*b[1]*c[1]*d[2] + a[2]*b[2]*c[2]*d[2] + a[2]*b[3]*c[3]*d[2]

2 invariant:
	a[1]*b[1]*c[1]*d[1] + sqrt(2)*a[1]*b[1]*c[2]*d[2] + sqrt(2)*a[1]*b[2]*c[3]*d[2] - a[1]*b[3]*c[3]*d[1] - a[2]*b[1]*c[1]*d[2] + sqrt(2)*a[2]*b[2]*c[1]*d[1] + sqrt(2)*a[2]*b[3]*c[2]*d[1] + a[2]*b[3]*c[3]*d[2]


Query: exit

An exception has occurred, use %tb to see the full traceback.

SystemExit: Exiting the interactive mode.
In [22]:
invs = (a[1]*b[1]*c[1]*d[1] + a[1]*b[2]*c[2]*d[1] + a[1]*b[3]*c[3]*d[1] + a[2]*b[1]*c[1]*d[2] + a[2]*b[2]*c[2]*d[2] + a[2]*b[3]*c[3]*d[2],a[1]*b[1]*c[1]*d[1] + sqrt(2)*a[1]*b[1]*c[2]*d[2] + sqrt(2)*a[1]*b[2]*c[3]*d[2] - a[1]*b[3]*c[3]*d[1] - a[2]*b[1]*c[1]*d[2] + sqrt(2)*a[2]*b[2]*c[1]*d[1] + sqrt(2)*a[2]*b[3]*c[2]*d[1] + a[2]*b[3]*c[3]*d[2]
)
invs = [el.subs(((a,c),(b,d))).replace(c[p],1/sqrt(2)*(Pi[p]+I*Sig[p])).replace(d[p],1/sqrt(2)*(Pi[p]-I*Sig[p])).expand() for el in invs]
In [23]:
H = 1/sqrt(2)*Matrix([[Pi[1]+I*Sig[1]],[Pi[2]+I*Sig[2]]])
In [24]:
l2 = ((Delta.H*Delta).trace()*(H.H*H).trace()).replace(conjugate(p),p).expand()
l3 = (H.H*Delta*Delta.H*H).trace().replace(conjugate(p),p).expand()
In [37]:
(l3-Rational(1,2)*(invs[0]+invs[1])).expand()
Out[37]:
$$0$$
In [45]:
(l2-invs[0]).expand()
Out[45]:
$$0$$

We therefore obtain the last expression for the desired couplings:

  • '\lambda_2': {Fields: [H*,T,T*,H], CGCs; {SU2L: [1]}, Norm: 1}
  • '\lambda_3': {Fields: [[H*,T,T*,H],[H*,T,T*,H]], CGCs: {SU2L: [1/2,1/2]}, Norm: 1},

In this case it is easy to see that $\lambda_{2}$ can also be obtained via the contraction Invariants SU2 [[2,True],[2],[1,True],[1]] via the following term, i.e.

'\lambda_2' : {Fields: [T*,T,H*,H], Norm: 1, CGCs: {SU2L: [1]}}

To conclude we give below the full model file for the above potential.

In [3]:
%cat models/TypeIItoy.model
# YAML 1.1
---
Author: Florian Lyonnet 
Date: 04.15.2015
Name: TypeIIandaxion
Groups: {'U1': U1, 'SU2L': SU2, 'SU3c': SU3}

##############################
#Fermions assumed weyl spinors
##############################
Fermions: {
   Qbar: {Gen: 3, Qnb:{ U1: -1/6, SU2L: -2, SU3c: -3}},
   L: {Gen: 3, Qnb:{ U1: -1/2, SU2L: 2, SU3c: 1}},
   Lbar: {Gen: 3, Qnb:{ U1: 1/2, SU2L: -2, SU3c: 1}},
   uR: {Gen: 3, Qnb:{ U1: 2/3, SU2L: 1, SU3c: [1,0]}},
   dR: {Gen: 3, Qnb:{ U1: -1/3, SU2L: 1, SU3c: 3}},
   eR: {Gen: 3, Qnb:{ U1: -1, SU2L: 1, SU3c: 1}}
}

#############
#Real Scalars
#############

RealScalars: {
}

##########################################################################
#Complex Scalars : have to be expressed in terms of Real Scalars see above
##########################################################################

CplxScalars: {
  H: {RealFields: [Pi,I*Sigma], Norm: 1/Sqrt(2), Qnb : {U1: -1/2, SU2L: 2, SU3c: 1}},
  H*: {RealFields: [Pi,-I*Sigma], Norm: 1/Sqrt(2), Qnb : {U1: 1/2, SU2L: -2, SU3c: 1}},
  T : {RealFields: [T1,I*T2], Norm: 1/sqrt(2), Qnb: {U1: 1, SU2L : 3, SU3c: 1}},
  T* : {RealFields: [T1,-I*T2], Norm: 1/sqrt(2), Qnb: {U1: -1, SU2L : -3, SU3c: 1}},
}

Potential: {

#######################################
# All particles must be defined above !
#######################################
 
Yukawas:{
 },

QuarticTerms: {
 '\lambda_1' : {Fields : [H*,H,H*,H], Norm : 1, CGCs:{SU2L: [1]}},
#This coefficient can be obtained via several combinations 
 '\lambda_2' : {Fields: [H*,T,T*,H], Norm: 1, CGCs: {SU2L: [1]}},
#'\lambda_2' : {Fields: [T*,T,H*,H], Norm: 1, CGCs: {SU2L: [1]}},
 '\lambda_3' : {Fields : [[H*,T,T*,H],[H*,T,T*,H]], Norm : [1/2,1/2], CGCs: {SU2L: [1,2]}},
 ##That's another one. Of course they lead to the same result.
 '\lambda_{\Delta_1}' : {Fields : [[T*,T,T*,T],[T*,T,T*,T]], Norm : [2/3,1/3],CGCs: {SU2L: [1,2]}},
 '\lambda_{\Delta_2}' : {Fields : [[T*,T,T*,T],[T*,T,T*,T]], Norm : [1/3,2/3], CGCs: {SU2L: [1,2]}},
 },
ScalarMasses: {
 }
}

For any additional information, questions or feedbacks you can email me at flyonnet[at]smu.edu.