kill(all)$

maxima :appendix 'problems with itensor',version 1.0
peter.vlasschaert@gmail.com,30/10/2020

reason : check out  this to display  chemical reaction in a nicer way ?,new def
ref       :Tensor Manipulation in GPL Maxima
article : https://arxiv.org/pdf/cs/0503073.pdf

load(itensor)$

imetric(g)$

→old tensor notation

ishow(U([a,b],[]))$
ishow(U([-a,b],[]))$
ishow(U([a,-b],[]))$
ishow(U([-a,-b],[]))$

ishow(T([],[a,b])*g([b,c],[]))$

→ contraction of two tensors

ishow(contract(%))$

→ bad : result

ishow(contract(g([],[d,c])*%))$

with use : new def  " itensor definition .'decsym' "

decsym(g,2,0,[sym(all)],[])$

ishow(T([],[a,b])*g([b,c],[]))$

good :result

ishow(contract(g([],[d,c])*%))$

→new  tensor notation :W ,decsym

ishow(W([-a,-b],[]))$

ishow(W([a,b],[]))$

ishow(W([-a,b],[]))$

ishow(W([a,-b],[]))$

ishow(W([-a,-b],[]))$

ishow(W([-a,-b],[])*g([b,c],[]))$

ishow(contract(%))$

good:result

ishow(contract(g([-d,-c],[])*%))$

rem : 

ishow(g([-d,-c],[]))$

rem : to display chemical reaction : replace * → .
------------------------------------------------------------------------------------------------------------
itensor : "contract" two tensors doesn't work ,see below,with the replace,above

ishow(U([-a,-b],[]).g([b,c],[]))$

ishow(contract(%))$