itensor



Valerij,

Thanks for all the help.

How would one go about writing some macros to simplify input in itensor
form?  While I have figured out what it takes to input each of the base
operators, an additional layer of abstraction could greatly reduce the
opportunity for errors.

I'm envisioning shortcuts for dot & cross product, gradient, curl,
divergence,  etc.

For example, a divergence routine would identify the first free index (via
INDICES) of an expression, and return that expression differentiated with
respect to that index.  (in this way, hopefully it would work on a dyad as
well as a vector.)

If these functions exsited, would it be possible to take the next step, and
have maxima identify common forms, and display them as such.

exp : u([],[i],i)$
show(exp)$
would print (div u) or (del dot u)?


Somewhat unrelated, what are the pros & cons between using your lch & the
built-in lc?

>From what I can tell, your lch is just a dummy constant entity with 3
indices.  As such, it survives differentiation, without causing extra terms
through the chain rule.  Otherwise, it has no functionality.  Thats why (v
cross v) using your lch is not recognized as being zero.

The built in lc seems to set appropriate values of -1, 0, & 1, but probably
operates at a lower level of abstraction than what I am interested in.  How
is it used?  I can't find any examples in the documentation.  I beleive I
should continue using your lch.

Thanks again,

             Rob