GithubHelp home page GithubHelp logo

formtracer / formtracer Goto Github PK

View Code? Open in Web Editor NEW
20.0 8.0 4.0 7.37 MB

A Mathematica Tracing Package Using FORM

Home Page: https://arxiv.org/abs/1610.09331

License: GNU General Public License v3.0

Mathematica 17.47% C 0.21% C++ 0.04% MATLAB 0.03% M 0.01% Objective-C 82.26% VBA 0.01%
mathematica trace efficiency spinor lorentz arxiv lie-groups lie-group high-energy-physics

formtracer's Introduction

FormTracer

FormTracer is a high-performance, general purpose, easy-to-use Mathematica tracing package which uses FORM. It supports arbitrary space and spinor dimensions as well as an arbitrary number of simple compact Lie groups. While keeping the usability of the Mathematica interface, it relies on the efficiency of FORM. An additional performance gain is achieved by a decomposition algorithm that avoids redundant traces in the product tensors spaces. FormTracer supports a wide range of syntaxes which endows it with a high flexibility. Mathematica notebooks that automatically install the package and guide the user through performing standard traces in spacetime, spinor and gauge-group spaces are provided.

FormTracer has been developed by

Anton K. Cyrol, Mario Mitter, Jan M. Pawlowski, and Nils Strodthoff.

If used in scientific publications, please cite the corresponding paper,

Anton K. Cyrol, Mario Mitter, and Nils Strodthoff
Comput. Phys. Commun. 219C (2017) 346-352, arXiv:1610.09331 [hep-ph].

FormTracer is maintained by selected members of the fQCD collaboration.

Features

  • evaluation of (Euclidean) Lorentz/Dirac traces in arbitrary dimensions and traces over an arbitrary number of group product spaces
  • intuitive, easy-to-use and highly customizable Mathematica frontend
  • high performance due to FORM backend combined with an efficient decomposition algorithm in Mathematica
  • convenient installation and update procedure within Mathematica
  • supports
    • the fifth gamma matrix in general dimensions within the Larin scheme
    • a special time-like direction for (Euclidean) finite temperature and density applications
    • partial traces involving open indices
    • creation of optimized output (including bracketing) using FORM’s optimization algorithm for further numerical processing in C/C++/Fortran
    • user-defined combined Lorentz tensors and corresponding identities, e.g., (transverse and longitudinal) projectors and their orthogonality relations, for speedup

Build instructions

FormTracer is equipped with a fully automated installation script in Mathematica, which is executed by evaluating
Import["https://raw.githubusercontent.com/FormTracer/FormTracer/master/src/FormTracerInstaller.m"]
in a Mathematica input cell. Example notebooks are available for download:

The first two may also be used to install FormTracer.

Bug reports

Please reports bugs via the issue tracker.

Links to related software

  • FORM - project for symbolic manipulation of very big expressions
  • DoFun - Derivation of Functional Equations
  • FeynCalc - Tools and Tables for QFT Calculations

formtracer's People

Contributors

antoncyrol avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

formtracer's Issues

Mathematica 12 support

Hi,

it seems that FormTracer is broken in MATHEMATICA version 12. It seems that FORM cannot be located or called. I'm getting

    "FORM exited with error code 1."
    "FORM exited with error code 1."

    Line 1 -->

And the stack trace for the first error: Message[FormTrace::formeexitcode, 1], and the second error: Message[FormTrace::formerror, " \nLine 1 --> "], respectively.

Any way I can help debug this? The code runs fine using MATHEMATICA 11.3.

issue in calculation of Dirac trace

I use the defination of gamma5 from the textbook, -I/4! gamma_mu gamma_nu gamma_rou gamma_sigma esplison^{mu nu rou sigma} to calculate Trace[ gamma5^2], using codes:
FormTrace[
gamma[mu, a, b] gamma[nu, b, c] gamma[rou, c, d] gamma[sigma, d,
e] gamma[o, e, f] gamma[p, f, i] gamma[q, i, j] gamma[r, j,
a] eps[o, p, q, r] eps[mu, nu, rou, sigma]] (-I1)/4! (-I1)/4!

the result is -4, but I use codes:
FormTrace[gamma5[a, b] gamma5[b, a]]
the result is 4.
So I think these is something wrong in your program.

ParallelMap and List

There are two issues I found working on Mathematica 11.0 for Linux 64

One is related to Lists
In= FormTrace[ {fvd[p, mu] fvd[q, mu], fvd[p, mu] fvd[q, mu]}]
Out= 2 spd[p, q]

An other to Parallel Mapping for long lists. While for short lists it's working well.
In:= list = fvd[p, mu] fvd[q, mu] Range[1000];
In:= ParallelMap[FormTrace, list]
(kernel 1) DeleteFile::fdnfnd : Directory or file /tmp/runform_2017-04-09-03-13-23.401708.frm not found.
(kernel 1) DeleteFile::fdnfnd : Directory or file /tmp/runform_2017-04-09-03-13-24.730253.frm not found.
(kernel 1) ImportFormResult::noformoutput : An unknown FORM error occured!
No FORM output was generated.
(kernel 1) DeleteFile::fdnfnd : Directory or file /tmp/runform_2017-04-09-03-13-27.359470.frm not found.
(kernel 3) DeleteFile::fdnfnd : Directory or file /tmp/runform_2017-04-09-03-13-28.447646.frm not found.
(kernel 3) ImportFormResult::noformoutput : An unknown FORM error occured!
No FORM output was generated.
Out= $Aborted

Wrong calculation of FormTracer about gamma5

the calculation is:
FormTrace[
gamma[[Alpha], a, b] gamma[[Mu], b, c] gamma[[Nu], c,
d] gamma[[Beta], d, e] gamma5[e, f] gamma[[Sigma], f,
g] gamma[[Rho], g, a] vec[p1, [Alpha]] vec[p2, [Mu]] vec[
p3, [Nu]] vec[p4, [Beta]] vec[p5, [Sigma]] vec[p6, [Rho]]]

the result is :4 sp[p5, p6] e_[p1, p2, p3, p4] - 4 sp[p4, p6] e_[p1, p2, p3, p5] +
4 sp[p4, p5] e_[p1, p2, p3, p6] + 4 sp[p2, p3] e_[p1, p4, p5, p6] -
4 sp[p1, p3] e_[p2, p4, p5, p6] + 4 sp[p1, p2] e_[p3, p4, p5, p6]

however, this result is wrong

Issue with Partial Traces

I found an issue with calculations involving traces with open indices associated with Spinors or "Group Tensors".

(For simplicity I will refer to the objects defined in "FormTracerShowcase.nb")

In the first case, the partial trace converts deltaDirac into deltaLorentz. In the case of "Group Tensors", the partial trace converts deltaFund into deltaAdj. I'm attaching here a snapshot with the two examples.

Screenshot 2022-02-04 at 15 01 49

In principle I have a solution for this in my own code, but I hope this information might be useful for the developers.

PartialTrace Bug

There seems to be a minor bug in the experimental PartialTrace feature. If an expression only contains fundamental but no adjoint indices, the fundamental indices are converted to adjoint ones. Same with Dirac and Lorentz. This can be seen by executing

DefineLorentzTensors[deltaLorentz[mu, nu], vec[p, mu], sp[p, q], eps[], deltaDirac[i, j], gamma[mu, i, j], gamma5[i, j]];
DefineGroupTensors[{{SU2fundexplicit, color, deltaAdjCol[a, b], structureConstantCol[a, b, c], deltaFundCol[i, j], generatorCol[a, i, j]}}]
PartialTrace[True]
FormTrace[deltaFundCol[f1, f2]]
FormTrace[deltaDirac[i, j]]

which results for me in

deltaAdjCol[f1, f2]
deltaLorentz[i, j]

it doesn't happen when fundamental as well as adjoint indices are present in an expression. Inspecting the generated FORM file with the debugging feature, the following combination of lines seems responsible (for the first case with color indices)

Lines 46-48:

*** color index sets
Set acIndices: ;
Set fcIndices: fc1,fc2;

Lines 101-102

id d_(ac1?acIndices,ac2?)=FTxdeltaAdj(color,ac1,ac2);
id d_(fc1?fcIndices,fc2?)=FTxdeltaFund(color,fc1,fc2);

where the empty set of acIndices seems to cause the error.

Wrong Result Computing general traces

While using FormTracer with a general group there seems to have problems while tracing expressions like Tr[T^a T^b T^c].

Following the the color paper we see at equation (42) that such traces are given in terms of symmetric invariant tensor, the Index of the representation and the structure constants. But if we compute:

DefineGroupTensors[{{GenericGroup, color, generalAdjDelta[a, b], generalStructureConstant[a, b, c], generalDeltaFund[i, j], generalGenerator[a, i, j]}]

FormTrace[generalGenerator[a,i,j] generalGenerator[b,j,k] generalGenerator[c,k,i]

The result is
grpvecxcR1[a] grpvecxcR1[b] grpvecxcR1[c]
That seems to correspond to the symmetric invariant tensor (by explicit computing it) and not the corresponding equation (42) of the color paper.

Dirac-trace identity not in Documentation

The identity for doing the Dirac trace on a gamma5 matrix with four slashed vectors, which yields a Levi-Civita tensor, should definitely be included in the documentation, as it is easy to recognize in the attached example, however it might be very hard for a lot of people to recognize the e_[.,.,.,.] notation in a longer trace.

Identity_Documentation_FORMTracer.pdf

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.