Getting Started¶
First we must import the library
import readparse as parse
To download a single element from the PARSE dataset (say, corresponding to SHARP 7821), use the readparse.pullPARSE() function. By default, this downloads it to a local directory.
parse.pullPARSE(7821,1)
Read the data with the readparse.readPARSE() function, which takes a tuple of the same arguments pullPARSE got.
data = parse.readPARSE((7821,1))
Now data is a readparse.PARSE object, containing the full scattered data, which can be worked with as-is. Suppose we wish to visualize this element. It is easiest to do this if we first interpolate onto a regular grid, so let us do so.
data.compile_grid()
Now we’ll trace some fieldlines for plotting.
import numpy as np
xseed,yseed = np.meshgrid(np.linspace(0,max(data.nodes[:,0]),20),np.linspace(0,max(data.nodes[:,1]),20))
seedpoints = np.vstack((xseed.ravel(),yseed.ravel(),np.zeros(20**2))).transpose()
fieldlines = data.fieldlines(seedpoints)
Finally, we plot the fieldlines and lower boundary in vtk.
import pyvista as pv
pl = pv.Plotter()
Zmesh = pv.ImageData()
Zmesh.dimensions = np.array([len(data.Bgrid.xcoords),
len(data.Bgrid.ycoords),
len(data.Bgrid.zcoords)])+1
Zmesh.spacing = data.Bgrid.grid_spacing
Zmesh.cell_data["values"] = data.Bgrid.vectors[:,:,:,2].ravel("F")
pl.add_mesh(Zmesh.slice(normal=[0,0,1],origin=[1e-2,1e-2,1e-2]))
for stream in fieldlines:
pl.add_lines(stream,color='black',width=1,connected = True)
pl.show()