Hi,
I am trying to understand some apparently old code written by Ondrej
trying to implement what I think are indicial tensor expressions. I
list below the class definitions and then try to give an example. The
example results in an error. I believe I recall that Ondrej says that
these definitions don't work, but I am trying to understand them and
want to try to create some appropriate classes which can contain
indicial tensors.
Here is what he has:
type(g)
<class 'certekten.Indexed'>
from sympy import exp, Symbol, sin, Rational, Derivative, dsolve
from sympy.core import Basic, Function
from sympy.matrices import Matrix
class Indexed(Basic):
def __init__(self, A, idxlist):
self._args = [A, idxlist]
def __str__(self):
r = str(self[0])
for idx in self[1]:
r+=str(idx)
return r
class Idx(Symbol):
def __init__(self, name, dim = 4, up = True):
Symbol.__init__(self, name)
#self._args.extend([dim,up])
self._name = name
self._dim = dim
self._up = up
def __str__(self):
if self._up:
r = "^"
else:
r = "_"
return r+self._name
@property
def up(self):
return Idx(self._name, self._dim, True)
@property
def dn(self):
return Idx(self._name, self._dim, False)
def values(self):
return range(self._dim)
mu = Symbol("mu")
nu = Symbol("nu")
g =Indexed(Symbol("A"),[mu,nu])
g
Among lots of output, the following stands out:
'Indexed' object is unsubscriptable
What I want is to see g_{\mu,\nu} to give a latex version.
So I don't understand what is wrong with the syntax/class def which
he gave.
I would appreciate some help in both learning more about how sympy
works and on this particular task.
Thanks a bunch.
Comer
And here is a try:
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sympy?hl=en.