Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
SARAH SARAH
  • Project overview
    • Project overview
    • Details
    • Activity
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
Collapse sidebar
  • GOODSELL Mark
  • SARAHSARAH
  • Wiki
  • Automatic_index_contraction

Last edited by Martin Gabelmann Jul 27, 2019
Page history

Automatic_index_contraction

Automatic index contraction

General

It is usually not necessary to define any index structure for terms appearing in the (Super)potential. This task is automatically performed by SARAH: it adds generation indices if necessary to all fields and parameters and contracts all charges using

  • the Kronecker delta (Delta)
  • the antisymmetric tensor (epsTensor)
  • Clebsch-Gordan Coefficients (CGC).

Simple contractions

The rules to contract indices corresponding to the fundamental (upper) and anti-fundamental (lower) representation of a gauge group are:

  • an upper and a lower index is contracted via a Kronecker Delta
  • N upper or lower indices of a SU(N) are contracted with the epsilon Tensor

Verifying Index Contractions

If one is unsure about how indices are contracted you can check the output of the function MakeIndexStructure which is internally used. Example after loading the THDM-II model:

   In[1]: MakeIndexStructure[{H2, u, q}]
   Out[1]: Delta[col2, col3] epsTensor[lef1, lef3]
   In[2]: MakeIndexStructure[{conj[H1], d, q}]
   Out[2]: Delta[col2, col3] Delta[lef1, lef3]

In case of a supersymmetric model one can view the contrations of all superfields in the superpotential using:

  ShowSuperpotentialContractions;

after loading the model.

Example

  1. 3 \times \bar{3} of SU(3):

    Delta[col1,col2] T[{col1}].Tc[{col2}]
  2. 2\times 2 of SU(2):

    epsTensor[lef1,lef2] Hu[{lef1}].Hd[{lef2}]
  3. 3\times 3 \times 3 of SU(3):

    epsTensor[col1,col2,col3] T[{col1}].T[{col2}].T[{col3}]
  4. 2\times 3\times 2 of SU(2):

    Delta[lef1,lef2] epsTensor[lef2b,lef3] Hu[{lef1}].T[{lef2,lef2b}].Hu[{lef3}]
  5. 3 \times \bar{3} of SU(3) and 2\times 2 of SU(2):

    Delta[col1,col2] epsTensor[lef1,lef3] Q[{lef1,col1}].u[{col2}].Hu[{lef3}]

Clebsch-Gordan Coefficients

The CGCs which are used for interactions involving higher dimensional irreps are parametrized as follows:

CG[group,dnykin][indices]

First, the gauge group is given, afterwards the Dynkin labels of all involved irreps are stated and finally the indices are listed. For instance, the interaction between a scalar color sextet (Oc) and two fermionic triplets which appear in several generations (t) is defined in the input by the user just as

Example

Ys Oc.t.t

and internally expanded by SARAH to

Ys[gen2,gen3]*CG[SU[3],{{0,2},{1,0},{1,0}}][col1,col2,co3]*Oc[{col1}]*t[{gen2,col2}]*t[{gen3,col3}]

The numerical values for all CGCs are calculated by Susyno.

Self-defined contractions

Contractions for Lagrangian

In principle, it is also possible that the user can define a contraction of indices which is not the standard one. In particular for the S**U(2) it might be necessary to adjust the index contraction: there is some ambiguity because of the relation among the fundamental and anti-fundamental representation in this group. One can see that SARAH used contractions via

  • ShowSuperpotentialContractions for SUSY models
  • SA`LagrangianContractions for non-SUSY models

Example

  1. 2 \times 3 \times 2 of SU(2): depending of the definition of the triplet t the demanded contraction might be

    epsTensor[lef1,lef2] epsTensor[lef2b,lef3] l[{lef1}].t[{lef2,lef2b}].l[{lef3}]

    The default contraction of SARAH would have been instead

    epsTensor[lef1,lef2] Delta[lef2b,lef3] l[{lef1}].t[{lef2,lef2b}].l[{lef3}]

    Note, the indices for the fields are shown only for clarity here. When writing the contractions in the SARAH model file, it is not necessary to write the indices of the fields. These are generated automatically by SARAH. Thus, the correct syntax which shall be used in the model file is as follows

    epsTensor[lef1,lef2] epsTensor[lef2b,lef3] l.t.l
  2. |H_u^\dagger \sigma_a H_u + H_d^\dagger \sigma_a H_d|^2 can be written by using the completeness relation of the Pauli matrices as

    (2 Delta[lef1,lef4] Delta[lef2,lef3]- Delta[lef1,lef2] Delta[lef3,lef4])*
         (conj[SHd].SHd.SHd.conj[SHd] +  conj[SHu].SHu.SHu.conj[SHu] - 2 conj[SHd].SHd.SHu.conj[SHu]) )

Contractions for RGEs

SARAH calculates the RGEs for the unbroken gauge groups. Therefore, it assumes that non-fundamental irreps not written as tensor product as this is the case for broken groups, but of vectors of appropriate length. Because of that, it has to re-calculate the contractions internally, and makes use of routines of Susyno of that. However, Susyno returns the contractions with an arbitrary phase which can even change from Mathematica version to Mathematica version, i.e. this can sometimes by rather randomly. If you encounter such a problem, it's best to make use of the option to fix the contractions in the model. That's done via

ContractionRGE[COUPLING]=CONTRACTION

where COUPLING is the name of the coupling for which you want to 'hard-code' the contraction and CONTRACTION is the given contraction.

Example

  1. Four triplet interaction: for 1/2 LT trip.trip.trip.trip

    one can define as contraction used in the RGEs

    ContractionRGE[LT]=Delta[lef1,lef2] Delta[lef3, lef4];
  2. Triplet-doublet interaction: Writing the interaction between to scalar doublets H and a scalar triplet Ts as

     muT conj[H].Ts.H

    One can define an explicit contraction via

    ContractionRGE[muT]=InvMat[99][lef1,lef2,lef3];
    Off[Part::pspec];
    InvMat[99][a___Integer]:={{{1/Sqrt[2], 0}, {0, 1/Sqrt[2]}, {0, -(I/Sqrt[2])}}, {{0, -(1/Sqrt[2])}, {1/Sqrt[2], 0}, {I/Sqrt[2], 0}}}[[/a|a]];
    On[Part::pspec];
Clone repository

Home

Index

  • Additional terms in Lagrangian
  • Advanced usage of FlavorKit
  • Advanced usage of FlavorKit to calculate new Wilson coefficients
  • Advanced usage of FlavorKit to define new observables
  • Already defined Operators in FlavorKit
  • Already defined observables in FlavorKit
  • Auto-generated templates for particles.m and parameters.m
  • Automatic index contraction
  • Basic definitions for a non-supersymmetric model
  • Basic definitions for a supersymmetric model
  • Basic usage of FlavorKit
  • Boundary conditions in SPheno
  • CalcHep CompHep
  • Calculation of flavour and precision observables with SPheno
  • Checking the particles and parameters within Mathematica
  • Checks of implemented models
  • Conventions
  • Decay calculation with SPheno
  • Defined FlavorKit parameters
  • Definition of the properties of different eigenstates
  • Delete Particles
  • Different sets of eigenstates
  • Diphoton and digluon vertices with SPheno
  • Dirac Spinors
  • FeynArts
  • Fine-Tuning calculations with SPheno
  • Flags for SPheno Output
  • Flags in SPheno LesHouches file
  • FlavorKit
  • FlavorKit Download and Installation
  • Flavour Decomposition
  • GUT scale condition in SPheno
  • Gauge Symmetries SUSY
  • Gauge Symmetries non-SUSY
  • Gauge fixing
  • Gauge group constants
  • General information about Field Properties
  • General information about model implementations
  • Generating files with particle properties
  • Generic RGE calculation
  • Global Symmetries SUSY
  • Global Symmetries non-SUSY
  • Handling of Tadpoles with SPheno
  • Handling of non-fundamental representations
  • HiggsBounds
  • Higher dimensionsal terms in superpotential
  • Input parameters of SPheno
  • Installation
  • Installing Vevacious
  • LHCP
  • LHPC
  • LaTeX
  • Lagrangian
  • Loop Masses
  • Loop calculations
  • Loop functions
  • Low or High scale SPheno version
  • Main Commands
  • Main Model File
  • Matching to the SM in SPheno
  • MicrOmegas
  • ModelOutput
  • Model files for Monte-Carlo tools
  • Model files for other tools
  • Models with Thresholds in SPheno
  • Models with another gauge group at the SUSY scale
  • Models with several generations of Higgs doublets
  • More precise mass spectrum calculation
  • No SPheno output possible
  • Nomenclature for fields in non-supersymmetric models
  • Nomenclature for fields in supersymmetric models
  • One-Loop Self-Energies and Tadpoles
  • One-Loop Threshold Corrections in Scalar Sectors
  • Options SUSY Models
  • Options non-SUSY Models
  • Parameters.m
  • Particle Content SUSY
  • Particle Content non-SUSY
  • Particles.m
  • Phases
  • Potential
  • Presence of super-heavy particles
  • RGE Running with Mathematica
  • RGEs
  • Renormalisation procedure of SPheno
  • Rotations angles in SPheno
  • Rotations in gauge sector
  • Rotations in matter sector
  • SARAH in a Nutshell
  • SARAH wiki
  • SLHA input for Vevacious
  • SPheno
  • SPheno Higgs production
  • SPheno Output
  • SPheno and Monte-Carlo tools
  • SPheno files
  • SPheno mass calculation
  • SPheno threshold corrections
  • Setting up SPheno.m
  • Setting up Vevacious
  • Setting up the SPheno properties
  • Special fields and parameters in SARAH
  • Superpotential
  • Support of Dirac Gauginos
  • Supported Models
  • Supported gauge sectors
  • Supported global symmetries
  • Supported matter sector
  • Supported options for symmetry breaking
  • Supported particle mixing
  • Tadpole Equations
  • The renormalisation scale in SPheno
  • Tree-level calculations
  • Tree Masses
  • Two-Loop Self-Energies and Tadpoles
  • UFO
  • Usage of tadpoles equations
  • Using SPheno for two-loop masses
  • Using auxiliary parameters in SPheno
  • VEVs
  • Vertices
  • Vevacious
  • WHIZARD