indici fittizi e vincoli in Mathematica
-
27-10-2019 - |
Domanda
vorrei che Mathematica semplifica l'espressione secondo alcuni vincoli. Ad esempio:
M = p.k p.k
dato il vincolo:
p(mu) * p(nu) = \delta(mu,nu)
dovrebbe dare
M = k^2
Ma io non so come specificare fittizie indici, e io non sono anche abbastanza sicuro dove dovrei mettere il vincolo stesso. In un argomento di semplificare?
Soluzione
In[1]:= FilePrint["dummyindices.m"]
<<HighEnergyPhysics`FeynCalc`
Print[" "];
{$AL[1], $AL[2]} = {mu, nu}; (* $AL are predefined dummy indices *)
M = SP[p,k] * SP[p,k]; (* this defines p.k * p.k *)
SP[k, k] = k2; (* abbreviate the scalar product k^2 by k2 *)
constraint = FeynCalcInternal[
FourVector[p,mu] FourVector[p,nu] -> MetricTensor[mu, nu]
]; (* this is one way of specifying the constraint *)
(* use the Uncontract function http://www.feyncalc.org/FeynCalcBook/Uncontract/*)
Print["uncontracting : ", FCF[ tmp = Uncontract[M, k, Pair->All, Unique->False]]];
Print["contract and using the constraint : ",
FeynCalcExternal @ Contract[tmp /. constraint]
]
In[2]:= <<dummyindices.m
Loading FeynCalc from /home/rolfm/HighEnergyPhysics
FeynCalc 8.1.0 Type ?FeynCalc for help or visit http://www.feyncalc.org/
$PrePrint is set to FeynCalcForm. Use FI and FC to change the display format.
Loading FeynArts, see www.feynarts.de for documentation
FeynArts 3.4 patched for use with FeynCalc
uncontracting : k[mu] k[nu] p[mu] p[nu]
contract and using the constraint : k2
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow