Esempio n. 1
0
    def __init__(self, operands=None):
        Expr.__init__(self)

        # If operands is None, the type sets this itself. This is to
        # get around some tricky too-fancy __new__/__init__ design in
        # algebra.py, for now.  It would be nicer to make the classes
        # in algebra.py pass operands here.
        if operands is not None:
            self.ufl_operands = operands
Esempio n. 2
0
    def __init__(self, operands=None):
        Expr.__init__(self)

        # If operands is None, the type sets this itself. This is to
        # get around some tricky too-fancy __new__/__init__ design in
        # algebra.py, for now.  It would be nicer to make the classes
        # in algebra.py pass operands here.
        if operands is not None:
            self.ufl_operands = operands
Esempio n. 3
0
    def __getitem__(self, key):
        origkey = key

        if isinstance(key, MultiIndex):
            key = key.indices()
        if not isinstance(key, tuple):
            key = (key, )
        k = key[0]
        if isinstance(k, (int, FixedIndex)):
            sub = self.ufl_operands[int(k)]
            return sub if len(key) == 1 else sub[key[1:]]

        return Expr.__getitem__(self, origkey)
Esempio n. 4
0
    def __getitem__(self, key):
        origkey = key

        if isinstance(key, MultiIndex):
            key = key.indices()
        if not isinstance(key, tuple):
            key = (key,)
        k = key[0]
        if isinstance(k, (int, FixedIndex)):
            sub = self.ufl_operands[int(k)]
            return sub if len(key) == 1 else sub[key[1:]]

        return Expr.__getitem__(self, origkey)
Esempio n. 5
0
 def __init__(self):
     Expr.__init__(self)
Esempio n. 6
0
 def __getitem__(self, key):
     if len(key) != self._dim:
         error("Size mismatch for PermutationSymbol.")
     if all(isinstance(k, (int, FixedIndex)) for k in key):
         return self.__eps(key)
     return Expr.__getitem__(self, key)
Esempio n. 7
0
 def __getitem__(self, key):
     if len(key) != 2:
         error("Size mismatch for Identity.")
     if all(isinstance(k, (int, FixedIndex)) for k in key):
         return IntValue(1) if (int(key[0]) == int(key[1])) else Zero()
     return Expr.__getitem__(self, key)
Esempio n. 8
0
 def __init__(self):
     Expr.__init__(self)
Esempio n. 9
0
 def __getitem__(self, key):
     if len(key) != self._dim:
         error("Size mismatch for PermutationSymbol.")
     if all(isinstance(k, (int, FixedIndex)) for k in key):
         return self.__eps(key)
     return Expr.__getitem__(self, key)
Esempio n. 10
0
 def __getitem__(self, key):
     if len(key) != 2:
         error("Size mismatch for Identity.")
     if all(isinstance(k, (int, FixedIndex)) for k in key):
         return IntValue(1) if (int(key[0]) == int(key[1])) else Zero()
     return Expr.__getitem__(self, key)