Name: V. Shtabovenko Date: 02/06/19-08:32:53 PM Z
Hi,
first of all, I’m afraid that you are expecting a bit too much of
the partial derivatives implemented in FeynCalc. One of the main
(original) reasons for introducing them was to have some functionality
for deriving Feynman rules from certain types of Lagrangians or
operators.
Unfortunately, it never really evolved to something more than
what Rolf, Frederik and myself eventually encountered in our research.
Moreover, the derivation of Feynman rules can be nowadays conveniently
done
in FeynRules, so there is not much popular demand to improve on what
is
already
in FeynCalc.
Now regarding your questions.
1)
You can explicitly specify the commutator and anticommutators of
arbitrary
noncommutative objects that would be taken into account by
DotSimplify.
However,
while doing this example I realized that the corresponding
functionality
was not
working for patterns. This should be now fixed. Please reinstall
FeynCalc the same
way you installed it and try
(*original behavior*)
DotSimplify[
ExpandPartialD[QuantumField[A].QuantumField[A].LeftPartialD[nu]]]
(*after we specify that A-fields and their derivatives commute *)
Commutator[QuantumField[FCPartialD[LorentzIndex[xxx_]],
A],
QuantumField[A]] = 0;
DotSimplify[
ExpandPartialD[QuantumField[A].QuantumField[A].LeftPartialD[nu]]]
Another thing I realized, is that after having set the
(anti)commutator,
there is no convenient way to unset it, unless one filters the
DownValues of Commutator and AntiCommutator by hand. So I added
UnDeclareCommutator and UnDeclareAntiCommutator to the development
version.
Unfortunately, this will not go into the stable version, since it by
definition
may receive only bugfixes but not new features.
2)
FeynCalc does not natively support working with expressions that
contain
explicit
matrices. There are just too many ambiguities that one can run into
and
I’m not
particularly enthusiastic about adding extra layers of complexity to
account for that.
For example, if you have something like
A.{{a, b}, {c, d}}.B
then the code must explicitly know whether A and B are scalars
(possibly
noncommuting ones) or just shortcuts for other 2x2 matrices. Matrices
can also live in different spaces (like color and Dirac) which is
important to determine whether they commute or not. This is why users
who want to use explicit matrices usually cook up some extra code to
account for that. Something like
ex = Map[DOT[RightPartialD[mu], #] &,
{{QuantumField[A1]^2,
QuantumField[A2]^2}, {QuantumField[A3]^2,
QuantumField[A4]^2}}, {2}]
ExpandPartialD[ex]
3)
FCPartialD is not an end-user function. It is an internal marker that
appears inside
QuantumFields to denote that they are differentiated w.r.t something.
Instead of
ExpandPartialD[FCPartialD[\[Nu]].(QuantumField[A].QuantumField[A])]
you should write
ExpandPartialD[RightPartialD[\[Nu]].(QuantumField[A].QuantumField[A])]
Cheers,
Vladyslav
Am 30.01.19 um 11:29 schrieb TheDude:
> I have encountered several problems regarding the application of
formal derivative operators in FeynCalc, using the built-in function
FCPartialD, Left/RightPartialD.
>
> I have difficulties in displaying the Tex on this forum, so I am
linking the question I posted on mathematica stack exchange:
>
>
https://mathematica.stackexchange.com/questions/190481/abstract-derivatives-in-feyncalc
>