Hi Everyone.
I am trying to use Cadabra2 with weighted tensor densities. Specifically I'd need to introduce a "non-standard" differential operator, i.e. an operator that does not satisfy the usual Leibniz product rule, but picks up a correction term in addition to the usual product rule.
Is there a way to introduce such a "differentiation" operator in Cadabra?
I tried to just declare dependency with
::Depends(D{#});
for the tensors, and then define the differentiation rules case-by-case, but cadabra seems to misunderstand index positions. For example
:= D^{A}{Y{A} V} = D^{A}{Y{A}} V + Y{A} D^{A}{V} + N X^{A} D^{B}{Y{A}} D{B}{V} ;
produces a "free indices do not match" error message, but if I truncate off the last two terms,
:= D^{A}{Y{A} V} = D^{A}{Y_{A}} V ;
the error message disappears. Also, the error message disappears if I run D_#::Derivative; first.
Many Thanks!