Hi Peter,
The CalculateFieldData module can do what you've described. Pass in the gradient field into its Field port and the conductivity tensors (as an Nx6 NRRD) into its NRRD port. Then set the function textentry string on the CalculateFieldData UI to be:
RESULT = Vector(x(DATA)*xx(A)+y(DATA)*xy(A)+z(DATA)*xz(A), x(DATA)*xy(A)+y(DATA)*yy(A)+z(DATA)*yz(A), x(DATA)*xz(A)+y(DATA)*yz(A)+z(DATA)*zz(A));
I created two synthetic vectors and two synthetic tensors, stored as ASCII text files, to demonstrate this for you. Just place the attached .txt files in a folder alongside the attached current.srn network, and then run "scirun e current.srn" from the commandline.
Let me know if you have any questions about this or problems running it.
Cheers, Dave
On Apr 17, 2011, at 9:57 PM, Peter Johnston wrote:
Hi All,
I am seeking some advice regarding matrix multiplication in
scirun. I have
performed some external simulations of electric fields and am
using scirun
for visualisation. So, what I have is an array of points and the
accompanying
hex definition file to define the mesh, the solution at the node
points and the
anisotropic conductivity at the node points. I have found that I
can read in the
solution and subsequently obtain the gradient of the solution at
the node points.
My question is, can I read in the conductivity matrix and
multiply this by the
array of gradients to obtain the current? The conductivity
matrix is Nx6 (one row
for each of the N node points) and, since the conductivity
matrix is symmetric,
has rows of the form
a11 a12 a13 a22 a23 a33
Hence the current vector at any node should be the matrixvector
product of this
matrix (expanded to 3x3) at this node and the gradient vector
calculated at the node.
Is such a manipulation possible in scirun?
Thanks for your help,
Peter Johnston.


Assoc. Prof. Peter Johnston
Associate Professor in Applied Mathematics Phone (07) 3735 7748
School of Biomolecular and Physical Science Fax (07) 3735 7773
Griffith University
Nathan
Queensland 4111
AUSTRALIA
