Skip to content

Commit fe66451

Browse files
committed
Merge branch 'master' into hotfix-stable
2 parents 8f54fa9 + e965c08 commit fe66451

File tree

420 files changed

+18365
-2287
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

420 files changed

+18365
-2287
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
FeynCalc/FeynArts
22
FeynCalc/FeynArts/*
3-
FeynCalc/Database/*.db
3+
FeynCalc/Database/*
44
FeynCalc/Examples/Temp
55
FeynCalc/Examples/*/WIP
66
FeynCalc/Examples/WIP

FeynCalc/Changelog.md

Lines changed: 66 additions & 561 deletions
Large diffs are not rendered by default.

FeynCalc/ChangelogOld.md

Lines changed: 577 additions & 0 deletions
Large diffs are not rendered by default.

FeynCalc/Dirac/DiracTrace.m

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
DiracTraceEvaluate -> False,
5656
EpsContract -> False,
5757
EpsExpand -> True,
58+
EpsEvaluate -> True,
5859
Expand -> True,
5960
FCVerbose -> False,
6061
Factoring -> Automatic,
@@ -217,18 +218,18 @@
217218
unitMatrixTrace expr;
218219

219220
diracTraceEvaluate[expr_/;!FreeQ[expr,DiracGamma], opts:OptionsPattern[]] :=
220-
Block[ { diractrres, tmp = expr, diractrfact,
221-
diractrcoll,
222-
dtmp,dWrap,wrapRule,prepSpur,time,time2,contract,spurHeadList,spurHeadListChiral,spurHeadListNonChiral,
223-
gammaFree,gammaPart,
224-
traceListChiral,traceListNonChiral,repRule,null1,null2,dummyIndexFreeQ},
221+
Block[{ diractrres, tmp = expr, diractrfact, diractrcoll,
222+
dtmp,dWrap,wrapRule,prepSpur,time,time2,contract,spurHeadList,
223+
spurHeadListChiral,spurHeadListNonChiral,gammaFree,gammaPart,
224+
traceListChiral,traceListNonChiral,repRule,null1,null2,dummyIndexFreeQ, epsEvaluate},
225225

226226
wrapRule = {dWrap[5]->0, dWrap[6]->1/2, dWrap[7]->1/2, dWrap[LorentzIndex[_,_:4],___]->0,
227227
dWrap[_. Momentum[_,_:4]+_:0,___]->0};
228228

229229
diractrfact = OptionValue[DiracTrace,{opts},Factoring];
230230
diractrcoll = OptionValue[DiracTrace,{opts},PairCollect];
231231
contract = OptionValue[DiracTrace,{opts},Contract];
232+
epsEvaluate = OptionValue[DiracTrace,{opts},EpsEvaluate];
232233
west = OptionValue[DiracTrace,{opts},West];
233234
larinMVV = OptionValue[DiracTrace,{opts},LarinMVV];
234235

@@ -292,7 +293,6 @@
292293
tmp = tmp/. spurHead[x__]/; !NonCommFreeQ[{x}/.DiracGamma->null1] :> noSpur[x];
293294
FCPrint[3,"DiracTrace: diracTraceEvaluate: Trace contains unknown non-commutative objects: ", !FreeQ[tmp, noSpur], FCDoControl->diTrVerbose];
294295

295-
296296
(* Split chiral projectors here *)
297297
tmp = tmp /. {spurHead[x___,DiracGamma[6]] :> 1/2 spurHead[x] + 1/2 spurHead[x,DiracGamma[5]],
298298
spurHead[x___,DiracGamma[7]] :> 1/2 spurHead[x] - 1/2 spurHead[x,DiracGamma[5]]} /. spurHead[] -> 1;
@@ -371,7 +371,7 @@
371371

372372
(* Evaluate the traces *)
373373
time2=AbsoluteTime[];
374-
FCPrint[1,"DiracTrace: diracTraceEvaluate: Calculating non-chiral traces.", FCDoControl->diTrVerbose];
374+
FCPrint[1,"DiracTrace: diracTraceEvaluate: Calculating ", Length[spurHeadListChiral], " nonchiral traces.", FCDoControl->diTrVerbose];
375375

376376
traceListNonChiral = spurHeadListNonChiral/. spurHead-> spurNo5;
377377
FCPrint[1,"DiracTrace: diracTraceEvaluate: Done calculating non-chiral traces, timing: ", N[AbsoluteTime[] - time2, 4], FCDoControl->diTrVerbose];
@@ -384,7 +384,7 @@
384384
];
385385

386386
time2=AbsoluteTime[];
387-
FCPrint[1,"DiracTrace: diracTraceEvaluate: Calculating chiral traces.", FCDoControl->diTrVerbose];
387+
FCPrint[1,"DiracTrace: diracTraceEvaluate: Calculating ",Length[spurHeadListChiral]," chiral traces.", FCDoControl->diTrVerbose];
388388
(* Purely 4 dimensional traces are always computed in the same way, regardless of the chosen scheme:
389389
Eq 2.18 of R. Mertig, M. Boehm, A. Denner. Comp. Phys. Commun., 64 (1991)) *)
390390
traceListChiral = spurHeadListChiral/. spurHead[x__]/;(FCGetDimensions[{x},ChangeDimension->True]==={4}) :> spur5In4Dim[x];
@@ -395,22 +395,25 @@
395395

396396
(* NDR *)
397397
"NDR",
398-
FCPrint[3,"DiracTrace: diracTraceEvaluate: Chiral traces will be left untouched (NDR scheme).", FCDoControl->diTrVerbose];
398+
FCPrint[2,"DiracTrace: diracTraceEvaluate: Chiral traces will be left untouched (NDR scheme).", FCDoControl->diTrVerbose];
399399
traceListChiral = traceListChiral/. spurHead -> noSpur,
400400

401401
(* NDR-Discard *)
402402
"NDR-Discard",
403-
FCPrint[3,"DiracTrace: diracTraceEvaluate: Chiral traces are set to zero (NDR-Discard scheme).", FCDoControl->diTrVerbose];
403+
FCPrint[2,"DiracTrace: diracTraceEvaluate: Chiral traces are set to zero (NDR-Discard scheme).", FCDoControl->diTrVerbose];
404404
traceListChiral = ConstantArray[0, Length[traceListChiral]],
405405

406406
(* Larin *)
407407
"Larin",
408-
FCPrint[3,"DiracTrace: diracTraceEvaluate: Chiral traces will be computed using Larin scheme", FCDoControl->diTrVerbose];
408+
FCPrint[2,"DiracTrace: diracTraceEvaluate: Chiral traces will be computed using Larin scheme.", FCDoControl->diTrVerbose];
409409

410410
If[ larinMVV,
411-
(* Larin, MVV trace formula *)
411+
FCPrint[2,"DiracTrace: diracTraceEvaluate: Using the MVV trace formula.", FCDoControl->diTrVerbose];
412+
412413
traceListChiral = traceListChiral/. spurHead -> spur5LarinMVV,
413-
(* Laring, standard (slow!) trace formula *)
414+
415+
FCPrint[2,"DiracTrace: diracTraceEvaluate: Using the standard slow trace formula.", FCDoControl->diTrVerbose];
416+
414417
traceListChiral = traceListChiral/. spurHead -> spur5Larin
415418
],
416419

@@ -496,7 +499,7 @@
496499
];
497500

498501
(* Special expansion for expressions that contain Levi-Civita tensors*)
499-
If[ !FreeQ[tmp, Eps],
502+
If[ !FreeQ[tmp, Eps] && epsEvaluate,
500503
time=AbsoluteTime[];
501504
FCPrint[1,"DiracTrace: diracTraceEvaluate: Treating Eps tensors.", FCDoControl->diTrVerbose];
502505
tmp = EpsEvaluate[tmp,FCI->True, EpsExpand->OptionValue[DiracTrace,{opts},EpsExpand]]//Expand;

FeynCalc/Dirac/DiracTrick.m

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -349,12 +349,17 @@ create replacement rules (standard) and substitute the results back.
349349
diracTrickEvalFast[DiracGamma[6|7]]:=
350350
1/2/; insideDiracTrace;
351351

352+
(* Reordering of Dirac matrices using cyclicity of the trace *)
353+
352354
diracTrickEvalFast[DOT[DiracGamma[(a:6|7)],b___,DiracGamma[(a:6|7)]]] :=
353355
diracTrickEvalFast[DOT[b,DiracGamma[a]]]/; insideDiracTrace;
354356

355357
diracTrickEvalFast[DOT[DiracGamma[(h1:5|6|7)],b___,DiracGamma[(h2:5|6|7)]]] :=
356358
ga67MatSign[h1,h2] diracTrickEvalFast[DOT[b,ga67Mat[h1,h2]]]/; h1=!=h2 && insideDiracTrace;
357359

360+
diracTrickEvalFast[DOT[DiracGamma[(h:5|6|7)],b__]] :=
361+
diracTrickEvalFast[DOT[b,DiracGamma[h]]]/; insideDiracTrace;
362+
358363
(* Generic simplifications *)
359364

360365
diracTrickEvalFast[DOT[b___,DiracGamma[l_LorentzIndex], DiracGamma[l_LorentzIndex], d___]] :=
@@ -375,6 +380,8 @@ create replacement rules (standard) and substitute the results back.
375380
diracTrickEvalFast[DOT[b___,DiracGamma[l_LorentzIndex, dim_:4], DiracGamma[c_Momentum, dim_:4], DiracGamma[l_LorentzIndex, dim_:4], d___]] :=
376381
(2 - dim) diracTrickEvalFast[DOT[ b, DiracGamma[c, dim], d ]];
377382

383+
(* Neighboring g^5 and chiral projectors *)
384+
378385
diracTrickEvalFast[DOT[b___,DiracGamma[5], DiracGamma[5], d___]] :=
379386
diracTrickEvalFast[DOT[ b,d ]];
380387

@@ -387,6 +394,7 @@ create replacement rules (standard) and substitute the results back.
387394
diracTrickEvalFast[DOT[b___, DiracGamma[(hh1:6|7)],DiracGamma[(hh2:6|7)], c___]] :=
388395
ga67Val2[hh1,hh2] diracTrickEvalFast[DOT[b, DiracGamma[hh2], c]];
389396

397+
(* D-dimensional formulas for anticommuting g^5 (NDR only) *)
390398

391399
diracTrickEvalFast[DOT[b___,DiracGamma[5], c:DiracGamma[_[_,__],_].. , d___]] :=
392400
(-1)^Length[{c}] diracTrickEvalFast[DOT[ b,c,DiracGamma[5],d]]/; MemberQ[{"NDR","NDR-Discard"},FeynCalc`Package`DiracGammaScheme] &&
@@ -424,7 +432,7 @@ create replacement rules (standard) and substitute the results back.
424432
diracTrickEvalFast[DOT[b, dg, xy, DiracGamma[h], c]]/; OddQ[Length[{xy}]] && MemberQ[{"NDR","NDR-Discard"},FeynCalc`Package`DiracGammaScheme] &&
425433
MatchQ[FCGetDimensions[{dg,xy}],{_Symbol}];
426434

427-
435+
(* 4-dimensional formulas for anticommuting g^5 *)
428436
diracTrickEvalFast[DOT[b___,DiracGamma[5], c:DiracGamma[_[__]].. , d___]] :=
429437
(-1)^Length[{c}] diracTrickEvalFast[DOT[ b,c,DiracGamma[5],d]];
430438

@@ -1562,7 +1570,7 @@ create replacement rules (standard) and substitute the results back.
15621570
Block[{li1,li2,li3},
15631571
{li1,li2,li3} = LorentzIndex[#,dim]& /@ Unique[{"dtlarLia","dtlarLib","dtlarLic"}];
15641572
mass chiralTrickLarin[b,DiracGamma[7],d] +
1565-
1/2 chiralTrickLarin[b,dg,d] +
1573+
1/2 chiralTrickLarin[b,dg,d] -
15661574
I/12 $LeviCivitaSign Eps[dg[[1]], li1, li2, li3] chiralTrickLarin[b,DiracGamma[li1,dim],DiracGamma[li2,dim],DiracGamma[li3,dim],d]
15671575
]/; !FreeQ2[{d},{DiracGamma[5],DiracGamma[6],DiracGamma[7]}] && NonCommFreeQ[mass];
15681576

FeynCalc/Documentation/Markdown/$FCDefaultLightconeVectorN.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
```mathematica
2-
3-
```
4-
51
## $FCDefaultLightconeVectorN
62

73
`$FCDefaultLightconeVectorN` is a global variable which is set to FCGV["n"]. It denotes the default name for the vector $n$ in the lightcone decomposition for Lorentz tensors.

FeynCalc/Documentation/Markdown/$FCDefaultLightconeVectorNB.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
```mathematica
2-
3-
```
4-
51
## $FCDefaultLightconeVectorNB
62

73
`$FCDefaultLightconeVectorNB` is a global variable which is set to FCGV["nb"]. It denotes the default name for the vector $\bar{n}$ in the lightcone decomposition for Lorentz tensors.

FeynCalc/Documentation/Markdown/$FeynArtsDirectory.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
### See also
66

7-
[Overview](Extra/FeynCalc.md), [$FeynCalcDirectory]($FeynCalcDirectory.md).
7+
[Overview](Extra/FeynCalc.md), [\$FeynCalcDirectory](\$FeynCalcDirectory.md).
88

99
### Examples
1010

FeynCalc/Documentation/Markdown/$FeynCalcDirectory.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
### See also
66

7-
[Overview](Extra/FeynCalc.md), [$FeynArtsDirectory]($FeynArtsDirectory.md).
7+
[Overview](Extra/FeynCalc.md), [\$FeynArtsDirectory](\$FeynArtsDirectory.md).
88

99
### Examples
1010

FeynCalc/Documentation/Markdown/$FeynCalcLastCommitDateHash.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
```mathematica
2-
3-
```
4-
51
## $FeynCalcLastCommitDateHash
62

73
The setting of `$FeynCalcLastCommitDateHash` provides the date and the hash of the last commit in the branch from which the current FeynCalc version originates.

0 commit comments

Comments
 (0)