Cadabra
a field theory motivated approach to computer algebra

PartialDerivative

Makes an object a partial derivative.
Makes an object a partial derivative, i.e. a derivative which commutes. The object on which it acts has to be a non-sub/superscript child, while all the sub- or superscript child nodes are interpreted to be the variables with respect to which the derivative is taken.
\partial{#}::PartialDerivative. A_{\mu}::Depends(\partial). ex:= \partial_{\nu}{A_{\mu} B_{\rho}};
\(\displaystyle{}\partial_{\nu}(A_{\mu} B_{\rho})\)
product_rule(_);
\(\displaystyle{}\partial_{\nu}(A_{\mu}) B_{\rho}+A_{\mu} \partial_{\nu}(B_{\rho})\)
unwrap(_);
\(\displaystyle{}\partial_{\nu}(A_{\mu}) B_{\rho}\)
Note that derivative objects do not necessarily need to have a sub- or superscript child, they can be abstract derivatives as in
D{#}::PartialDerivative. ex:= D(c d e);
\(\displaystyle{}D(c d e)\)
product_rule(_);
\(\displaystyle{}D(c) d e+c D(d) e+c d D(e)\)
If you want to write a derivative with respect to a coordinate (instead of with respect to an index, as in the first example above), refer to the Coordinate property.
Copyright © 2001-2017 Kasper Peeters
Questions? info@cadabra.science