Pratik Mallya wrote:
Well, that is why i chose the subject title to be so :).
In particular, I since I am using numpy (and h5py) to calculate the tensor, I am storing the result (a 256X256X9 ndarray named Q) into h5 file by using a command of the form:
g.create_dataset("Q", data=Q)
Does the problem lie here? Am i supposed to use a different format/function of h5py, or something? Because I can see the .h5 file using hdfview, and it seems perfectly all right.


Even after using the low-level h5py functions to create the hdf5 file i am still unable to read the tensor data. My question really is: how should i write my xdmf file so that it can read a 9 component tensor? I have a 256X256 2dsmesh grid, and the tensor in the h5 file is a dataset of dimension 256X256X9. Is this ok? Any suggestions are welcome. I have been trying quite hard for a long time :-/:
the python code for creating the tensor data is here:

import numpy as np
import h5py
#L and N=vectors, S and T =scalars; all are of dimension 256X256(X3)



elem=range(4)
f= h5py.File("test.h5","r")# contains the data for calculating tensor
j=0
for i in f:
   elem[j]=(f.get(i)).value # gets the data
   j+=1
f.close()

L=elem[0]
N=elem[1]
S=elem[2]
T=elem[3]

dim=256
delta=np.eye(3)
dimen=(dim,dim,9)
x=np.zeros(dim*dim,np.float64)
y=np.zeros(dim*dim,np.float64)
Q=np.zeros((dim,dim,9),np.float64)
ndx=0
for j in range(0, dim):
   yt= j /255.
   for i in range(0,dim):
temp=(3./2.)*S[i][j]*(np.outer(N[i][j],N[i][j])-(delta/3)) + (1./2.)* T[i][j] * (np.outer(L[i][j],L[i][j])-np.outer ( np.cross(N[i][j],L[i][j]) , np.cross(N[i][j],L[i][j]) ) )
       xt= i/255.
       x[ndx]=xt
       y[ndx]=yt
       temp.shape=(1,9)
       Q[i][j]=temp[0]
       ndx+=1
#Q= (3/2)*np.outer(N,N) + (1/2)*(np.outer(L,L)-np.outer(np.cross(N,L),np.cross(N,L)))

x.shape=(dim,dim)
y.shape=(dim,dim)

g=h5py.File("Q.h5","w")
g.create_dataset("X", data=x)
g.create_dataset("Y", data=y)
g.close()
file_id=h5py.h5f.open("Q.h5")
dataspace_id=h5py.h5s.create_simple(dimen,dimen)
dataset_id =h5py.h5d.create(file_id,"Q",h5py.h5t.NATIVE_FLOAT, dataspace_id)
dataset_id.write(dataspace_id,h5py.h5s.ALL,Q)

file_id.close()



--
*Pratik Mallya*
http://en.wikipedia.org/wiki/User:Pratik.mallya
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to