Processing math: 100%
Cadabra
a field-theory motivated approach to computer algebra

Tensor monomials and multi-term symmetries

Cadabra contains powerful algorithms to bring any tensorial expression into a canonical form. For multi-term symmetries, cadabra relies on Young tableau methods to generate a canonical form for tensor monomials. As an example, consider the following identity, WpqrsWptruWtvqwWuvswWpqrsWpqtuWrvtwWsvuw=WmnabWnpbcWmscdWspda14WmnabWpsbaWmpcdWnsdc, in which Wmnpq is a Weyl tensor (all contracted indices have been written as subscripts for easier readability). Proving this identity requires multiple uses of the Ricci cyclic identity Wm[npq]=0. With Cadabra's Young tableau methods the proof is simple. We first declare our objects and input the identity which we want to prove,
{m,n,p,q,r,s,t,u,v,w,a,b,c,d,e,f}::Indices(vector). W_{m n p q}::WeylTensor.
ex:= W_{p q r s} W_{p t r u} W_{t v q w} W_{u v s w} - W_{p q r s} W_{p q t u} W_{r v t w} W_{s v u w} - W_{m n a b} W_{n p b c} W_{m s c d} W_{s p d a} + (1/4) W_{m n a b} W_{p s b a} W_{m p c d} W_{n s d c};
WpqrsWptruWtvqwWuvswWpqrsWpqtuWrvtwWsvuwWmnabWnpbcWmscdWspda+14WmnabWpsbaWmpcdWnsdc
Using a Young projector to project all Weyl tensors onto a form which shows the Ricci symmetry in manifest form is done with
young_project_tensor(_, modulo_monoterm=True);
(23Wpqrs13Wpsqr+13Wprqs)(23Wptru+13Wpurt+13Wprtu)(23Wqwtv+13Wqvtw13Wqtvw)(23Wswuv+13Wsvuw13Wsuvw)(23Wpqrs13Wpsqr+13Wprqs)(23Wpqtu13Wpuqt+13Wptqu)(23Wrvtw+13Wrwtv+13Wrtvw)(23Wsvuw+13Wswuv+13Wsuvw)(23Wabmn13Wanbm+13Wambn)(23Wbcnp13Wbpcn+13Wbncp)(23Wcdms13Wcsdm+13Wcmds)(23Wadps13Wasdp+13Wapds)+14(23Wabmn13Wanbm+13Wambn)(23Wabps13Wapbs+13Wasbp)(23Wcdmp13Wcpdm+13Wcmdp)(23Wcdns13Wcnds+13Wcsdn)
This algorithm knows that the Weyl tensor sits in the '2×2 box' representation of the rotation group SO(d), and effectively leads to a replacement Wmnpq23Wmnpq13Wmqnp+13Wmpnq. We then expand the products of sums and canonicalise once more using mono-term symmetries,
distribute(_) canonicalise(_) rename_dummies(_);
0
Copyright © 2001-2024 Kasper Peeters
Questions? info@cadabra.science