Hello, Given a matrix of expressions A and vectors q,v,w, I'm trying to evaluate a tensor expression of the type diff(A_ij, q_k) * v_k * w_j . With i,j,k of type idx, and A,q of type Matrix, It would be nice to get a 3 index tensor from indexed( diff(A(i,j),q(k)), i,j,k) or by diff(indexed(A,i,j),indexed(q,k)) but these don't work. After looking at the definition of epsilon_tensor the simplest option seems to be to write a class indexed_from_function3 able to return a 3-index tensor from an arbitrary function of three indices: for example ex f(int i, int j, int k){ return( diff(A(i,j),q(k)) ); } ex tensexp0=indexed_from_function3(f, i,j,k) * indexed(v, k) * indexed(w, j) Is there already a way to construct an arbitrary 3-index tensor that I've not found yet? Thanks in advance, Gregg Stiesberg
participants (1)
-
Gregory Stiesberg