WallGo/ WallGoMatrix

Computes 2-to-2 scattering matrix amplitudes for arbitrary quantum field theories

Contributed by: Andreas Ekstedt
Oliver Gould
Joonas Hirvonen
Benoit Laurent
Lauri Niemi
Philipp Schicho
Jorinde van de Vis

Computes 2-to-2 scattering matrix amplitudes for arbitrary quantum field theories

Installation Instructions

To install this paclet in your Wolfram Language environment, evaluate this code:
PacletInstall["WallGo/WallGoMatrix"]


To load the code after installation, evaluate this code:
Needs["WallGo`WallGoMatrix`"]

Details

WallGoMatrix is a Mathematica package for computing 2-to-2 scattering matrix elements for arbitrary quantum field theories. It is part of the WallGo project for computing the bubble wall speed for cosmological phase transitions. Users can implement their own models. For WallGoMatrix, the model building routines are taken from DRalgo and involve constructing coupling tensors. The WallGoMatrix routines then contract these coupling tensors with the appropriate kinematic factors to yield the 2-to-2 scattering matrix elements.

Examples

Basic Example of QCD

Model (5) 

We consider an SU(3) gauge theory in the adjoint representation, with Dynkin index {1,1}and representation dimension R = 8.

In[1]:=
Group = {"SU3"};
RepAdjoint = {{1, 1}};
CouplingName = {gs};

No scalar fields are included in the model:

In[2]:=
RepScalar = {};

Fermions are implemented as Weyl spinors. To construct one Dirac fermion, a left-handed and a right-handed Weyl fermion are combined:

In[3]:=
Rep1 = {{{1, 0}}, "L"};
Rep2 = {{{1, 0}}, "R"};
RepFermion1Gen = {Rep1, Rep2};

For QCD, we introduce six fermion generations (Nf = 6):

In[4]:=
RepFermion3Gen = {RepFermion1Gen, RepFermion1Gen, RepFermion1Gen, RepFermion1Gen, RepFermion1Gen, RepFermion1Gen} // Flatten[#, 1] &;

The input tensors defining the gauge interactions are then allocated via:

In[5]:=
{gvvv, gvff, gvss, \[Lambda]1, \[Lambda]3, \[Lambda]4, \[Mu]ij, \[Mu]IJ, \[Mu]IJC, Ysff, YsffC} = AllocateTensors[Group, RepAdjoint, CouplingName, RepFermion3Gen, RepScalar];

Finally, the model is imported into the working environment using:

In[6]:=
ImportModel[Group, gvvv, gvff, gvss, \[Lambda]1, \[Lambda]3, \[Lambda]4, \[Mu]ij, \[Mu]IJ, \[Mu]IJC, Ysff, YsffC, Verbose -> False];

Creating particles (5) 

We now define the particle content of the model using CreateParticle.

Representation for the top quark:

In[7]:=
RepTop = CreateParticle[{1, 2}, "F", mq2, "Top"]
Out[7]=

Representation for the gluon:

In[8]:=
RepGluon = CreateParticle[{1}, "V", mg2, "Gluon"]
Out[8]=

Representation for the five light quarks:

In[9]:=
LightQuarks = CreateParticle[{3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, "F", mq2, "LightParticle"]
Out[9]=

Out-of-equilibrium particles (e.g. heavy degrees of freedom such as the top quark and gluon) are collected as:

In[10]:=
ParticleList = {RepTop, RepGluon};

Light particles, which are never incoming states, are collected separately:

In[11]:=
LightParticleList = {LightQuarks};

Generating the matrix elements

Generate a matrix element file truncated at leading logarithmic order, without exporting it to file.

In[12]:=
MatrixElements = ExportMatrixElements[
  None,
  ParticleList,
  LightParticleList,
  {
   TruncateAtLeadingLog -> True,
   Format -> {"json", "txt"}
   }
  ]
Out[12]=

Generate a matrix element file that includes all contributions, without truncation at leading logarithmic order. When the option TagLeadingLog -> True is used, leading-logarithmic enhancements are additionally marked with logEnhanced tags in the output.

In[13]:=
OutputFile = "matrixElements.qcd";
MatrixElements = ExportMatrixElements[
   OutputFile,
   ParticleList,
   LightParticleList,
   {
    TruncateAtLeadingLog -> False,
    TagLeadingLog -> True,
    Format -> {"json", "txt"}
    }
   ] // Collect[#, logEnhanced] &
Out[14]=

Publisher

Philipp Schicho

Compatibility

Wolfram Language Version 13

Version History

  • 1.1.0 – 20 October 2025
  • 1.0.0 – 08 November 2024
  • 0.3.0 – 05 November 2024
  • 0.2.1 – 31 October 2024
  • 0.2.0 – 31 October 2024

License Information

GNU General Public License v3.0 or later

Paclet Source