def __init__(self, *args): if len(args) == 1: if Geometry.isTensor(args[0]): self.tensor = args[0] else: self.tensor = Geometry.Tensor(args[0]) assert self.tensor.rank == 2 elif len(args) == 3 and Geometry.isVector(args[0]) \ and Geometry.isVector(args[1]) and Geometry.isVector(args[2]): self.tensor = Geometry.Tensor( [args[0].array, args[1].array, args[2].array]).transpose()
def __init__(self, *args): if len(args) == 1: if Geometry.isTensor(args[0]): self.tensor = args[0] else: self.tensor = Geometry.Tensor(args[0]) assert self.tensor.rank == 2 elif len(args) == 3 and Geometry.isVector(args[0]) \ and Geometry.isVector(args[1]) and Geometry.isVector(args[2]): self.tensor = Geometry.Tensor([args[0].array, args[1].array, args[2].array]).transpose()
def __mul__(self, other): from Scientific import Geometry if isTensor(other): a = self.array[self.rank * (slice(None), ) + (N.NewAxis, )] b = other.array[other.rank * (slice(None), ) + (N.NewAxis, )] return Tensor(N.innerproduct(a, b), 1) elif Geometry.isVector(other): return other.__rmul__(self) else: return Tensor(self.array * other, 1)
def __mul__(self, other): from Scientific import Geometry if isTensor(other): a = self.array[self.rank*(slice(None),)+(N.NewAxis,)] b = other.array[other.rank*(slice(None),)+(N.NewAxis,)] return Tensor(N.innerproduct(a, b), 1) elif Geometry.isVector(other): return other.__rmul__(self) else: return Tensor(self.array*other, 1)