changed ASCIItable reading from _asArray (deprecated) to _readArray.
observe physical box size. added compatibility to VTK > version 5.
This commit is contained in:
parent
65f1f55a87
commit
f81c6f6890
|
@ -88,14 +88,6 @@ for file in files:
|
||||||
theTable = damask.ASCIItable(file['input'],file['output'])
|
theTable = damask.ASCIItable(file['input'],file['output'])
|
||||||
theTable.head_read()
|
theTable.head_read()
|
||||||
|
|
||||||
coords = theTable.data_asArray(['x','y','z'])
|
|
||||||
if theTable.labels_index('microstructure') != -1:
|
|
||||||
grain = theTable.data_asArray(['microstructure'])
|
|
||||||
grainIDs = numpy.unique(grain).astype('i')
|
|
||||||
else:
|
|
||||||
grain = 1+numpy.arange(len(coords))
|
|
||||||
grainIDs = grain
|
|
||||||
|
|
||||||
#--- interpret header ----------------------------------------------------------------------------
|
#--- interpret header ----------------------------------------------------------------------------
|
||||||
info = {
|
info = {
|
||||||
'grid': numpy.zeros(3,'i'),
|
'grid': numpy.zeros(3,'i'),
|
||||||
|
@ -122,7 +114,7 @@ for file in files:
|
||||||
info['grid'] = numpy.array(options.grid)
|
info['grid'] = numpy.array(options.grid)
|
||||||
if numpy.any(info['grid'] < 1):
|
if numpy.any(info['grid'] < 1):
|
||||||
file['croak'].write('invalid grid a b c.\n')
|
file['croak'].write('invalid grid a b c.\n')
|
||||||
continue
|
# continue
|
||||||
|
|
||||||
for i in xrange(3):
|
for i in xrange(3):
|
||||||
if info['size'][i] <= 0.0: # any invalid size?
|
if info['size'][i] <= 0.0: # any invalid size?
|
||||||
|
@ -130,6 +122,10 @@ for file in files:
|
||||||
file['croak'].write('rescaling size %s...\n'%{0:'x',1:'y',2:'z'}[i])
|
file['croak'].write('rescaling size %s...\n'%{0:'x',1:'y',2:'z'}[i])
|
||||||
|
|
||||||
|
|
||||||
|
#--- read data --------------------------------------------------------------------------------
|
||||||
|
theTable.data_readArray(['x','y','z','microstructure'])
|
||||||
|
theTable.data[:,0:3] *= info['size']
|
||||||
|
|
||||||
#--- generate grid --------------------------------------------------------------------------------
|
#--- generate grid --------------------------------------------------------------------------------
|
||||||
grid = vtk.vtkUnstructuredGrid()
|
grid = vtk.vtkUnstructuredGrid()
|
||||||
pts = vtk.vtkPoints()
|
pts = vtk.vtkPoints()
|
||||||
|
@ -139,31 +135,37 @@ for file in files:
|
||||||
IDs.SetNumberOfComponents(1)
|
IDs.SetNumberOfComponents(1)
|
||||||
IDs.SetName("GrainID")
|
IDs.SetName("GrainID")
|
||||||
|
|
||||||
for coord,ID in zip(coords,grainIDs):
|
for item in theTable.data:
|
||||||
pid = pts.InsertNextPoint(coord)
|
pid = pts.InsertNextPoint(item[0:3])
|
||||||
pointIds = vtk.vtkIdList()
|
pointIds = vtk.vtkIdList()
|
||||||
pointIds.InsertId(0, pid)
|
pointIds.InsertId(0, pid)
|
||||||
grid.InsertNextCell(1, pointIds)
|
grid.InsertNextCell(1, pointIds)
|
||||||
IDs.InsertNextValue(ID)
|
IDs.InsertNextValue(int(item[3]))
|
||||||
|
|
||||||
grid.SetPoints(pts)
|
grid.SetPoints(pts)
|
||||||
grid.GetCellData().AddArray(IDs)
|
grid.GetCellData().AddArray(IDs)
|
||||||
|
|
||||||
#--- write data -----------------------------------------------------------------------------------
|
#--- write data -----------------------------------------------------------------------------------
|
||||||
if file['name'] == 'STDIN':
|
if file['name'] == 'STDIN':
|
||||||
outWriter = vtk.vtkUnstructuredGridWriter()
|
writer = vtk.vtkUnstructuredGridWriter()
|
||||||
outWriter.WriteToOutputStringOn()
|
writer.WriteToOutputStringOn()
|
||||||
outWriter.SetFileTypeToASCII()
|
writer.SetFileTypeToASCII()
|
||||||
outWriter.SetHeader('# powered by '+scriptID)
|
writer.SetHeader('# powered by '+scriptID)
|
||||||
outWriter.SetInputData(grid)
|
if vtk.VTK_MAJOR_VERSION <= 5:
|
||||||
outWriter.Write()
|
writer.SetInput(grid)
|
||||||
sys.stdout.write(outWriter.GetOutputString()[0:outWriter.GetOutputStringLength()])
|
else:
|
||||||
|
writer.SetInputData(grid)
|
||||||
|
writer.Write()
|
||||||
|
sys.stdout.write(writer.GetOutputString()[0:writer.GetOutputStringLength()])
|
||||||
else:
|
else:
|
||||||
(head,tail) = os.path.split(file['name'])
|
(head,tail) = os.path.split(file['name'])
|
||||||
outWriter = vtk.vtkXMLUnstructuredGridWriter()
|
writer = vtk.vtkXMLUnstructuredGridWriter()
|
||||||
outWriter.SetDataModeToBinary()
|
writer.SetDataModeToBinary()
|
||||||
outWriter.SetCompressorTypeToZLib()
|
writer.SetCompressorTypeToZLib()
|
||||||
outWriter.SetFileName(os.path.join(head,'seeds_'+os.path.splitext(tail)[0]
|
writer.SetFileName(os.path.join(head,'seeds_'+os.path.splitext(tail)[0]
|
||||||
+'.'+outWriter.GetDefaultFileExtension()))
|
+'.'+writer.GetDefaultFileExtension()))
|
||||||
outWriter.SetInputData(grid)
|
if vtk.VTK_MAJOR_VERSION <= 5:
|
||||||
outWriter.Write()
|
writer.SetInput(grid)
|
||||||
|
else:
|
||||||
|
writer.SetInputData(grid)
|
||||||
|
writer.Write()
|
||||||
|
|
Loading…
Reference in New Issue