This package is designed to supplement the FeynCalc
package, making light-cone calculations more convenient.
This package relies on FeynCalc
's external representation and version-specific features in most cases. Please ensure that your FeynCalc
version is compatible with the CHYLightConeUtils
version.
CHYLightConeUtils
Version | Recommended FeynCalc
Version
---|---
0.2-alpha | 10.1.0
Please import this package after importing FeynCalc
. You can use:
Needs["CHYLightConeUtils`"];
to import the package. Alternatively, if you need to specify the package path:
Needs["CHYLightConeUtils`", "Path of this package .wl file"];
An online path is available at https://www.cihaoyi.com/CHYLightConeUtils/CHYLightConeUtils.wl, or you can use https://www.cihaoyi.com/CHYLightConeUtils/CHYLightConeUtils-<version>.wl to obtain a specific version. Currently, the following version alias is available:
latest
: Represents the latest stable version (or the latest recommended version if no stable version exists).You can always use the online address to fetch the latest recommended version.
Before importing the package, it is recommended to declare the built-in variables $CHYLCUDefaultLightconeVectorN
, $CHYLCUDefaultLightconeVectorNB
, and $CHYLCUDefaultParallelVectorV
. Otherwise, their default values will be $FCDefaultLightconeVectorN
, $FCDefaultLightconeVectorNB
, and FCGV["v"]
, respectively. You can set their default values using the following code (ensure that you explicitly declare the namespace CHYLightConeUtils`
):
CHYLightConeUtils`$CHYLCUDefaultLightconeVectorN(*=$FCDefaultLightconeVectorN*)= n;
CHYLightConeUtils`$CHYLCUDefaultLightconeVectorNB(*=$FCDefaultLightconeVectorNB*)= nb;
CHYLightConeUtils`$CHYLCUDefaultParallelVectorV = v;
Needs["CHYLightConeUtils`"];
Note that if you simultaneously set $FCDefaultLightconeVectorN
and $FCDefaultLightconeVectorNB
, FeynCalc
will enable forced ordering, ensuring that the light-cone component n
is always ordered before nb
. Due to the non-commutativity of the Gamma
matrix, the computed results may appear different but remain equivalent.
$$ n\cdot n=0, \bar{n}\cdot \bar{n} =0, n\cdot \bar{n}=2 $$
$$ v\cdot n=1, v\cdot \bar{n}=1, v\cdot v=1 $$
In the program, $CHYLCUDefaultLightconeVectorN
represents $n$, $FCDefaultLightconeVectorNB
represents $\bar{n}$, and $CHYLCUDefaultParallelVectorV
represents $v$.
If you want to prevent the package from automatically defining these relations, declare CHYLightConeUtils`$CHYLCUEnableLightConeRelation=False
before importing the package.
None
GAL[u_,n_,nb_]
, GALD[u_,n_,nb_]
represent the light-cone decomposition of Gamma matrices in 4D and D-dimensional space, respectively. Here, u_
is the index of the Gamma matrix, and n_
and nb_
are the basis symbols for the parallel and anti-parallel components.
LCR[\[Mu]_,\[Nu]_,n_,nb_]
, LCRD[\[Mu]_,\[Nu]_,n_,nb_]
represent the perpendicular components of the Levi-Civita symbol in 4D and D-dimensional space, respectively, i.e., $\epsilon^{\mu \nu}_{\perp}$ or $\epsilon^{\mu \nu}\cdot n \cdot \bar{n}$.
EpsIndexDeduplicate[expr_]
removes Levi-Civita symbols containing duplicate indices (or momenta).
GetLowestNPowerList[expr_,var_,n_]
retrieves the list of the lowest nonzero power terms of a given variable in an expression. n
starts from 0.
For example, for the expression $a x^2+c x^4$:
GetLowestNPowerList[a x^2+c x^4,x,0]
returns {a}
, and
GetLowestNPowerList[a x^2+c x^4,x,1]
returns {a, b}
.
An abbreviation for ToLightConeComponents
.
Momentum2LightConeComponent[expr_,momenta_List]
performs light-cone decomposition of momenta in expr
. When momenta
is an empty list or not provided, all momenta are decomposed; otherwise, only the momenta in the list are decomposed.
An alternative method is using Momentum2LightConeComponentReplacement[args_List,n_,nb_,all_]
, a Rule
list, though this is not a standard usage and is not recommended.
Gamma2LightConeComponent[expr_,indices_List]
performs light-cone decomposition of Gamma matrices in expr
. When indices
is an empty list or not provided, all Gamma matrices are decomposed; otherwise, only those with specified indices or momenta are decomposed.
SplitSlash2Gamma[expr_]
decomposes slashed Gamma matrices (GSD[p]
) into their component forms, generating unique indices and applying DotSimplify
.