[vtkusers] vtk.vtkDistributedDataFilter() not works
Magician
f_magician at mac.com
Sat Dec 10 10:35:57 EST 2016
Hi Cory,
Sorry for my late reply.
I modified my code for splitting the points, but the filter doesn’t work.
import vtk
src = vtk.vtkPointSource()
src.SetCenter((0.0, 0.0, 0.0))
src.SetNumberOfPoints(1000)
src.SetRadius(1.0)
src.Update()
dst = vtk.vtkPolyData()
pts = vtk.vtkPoints()
pts.SetData(src.GetOutput().GetPoints().GetData())
dst.SetPoints(pts)
cells = vtk.vtkCellArray()
for i in range(src.GetOutput().GetNumberOfPoints()):
ptIds = vtk.vtkIdList()
ptIds.InsertNextId(i)
cells.InsertNextCell(ptIds)
dst.SetVerts(cells)
d3 = vtk.vtkDistributedDataFilter()
d3.UseMinimalMemoryOff()
d3.SetInputData(dst)
d3.SetBoundaryMode(0)
d3.SetBoundaryModeToSplitBoundaryCells()
d3.Update()
writer = vtk.vtkXMLPUnstructuredGridWriter()
writer.SetInputData(d3.GetOutput())
writer.SetFileName(’test.pvtu’)
writer.SetNumberOfPieces(2)
writer.WriteSummaryFileOn()
writer.SetStartPiece(0)
writer.SetEndPiece(1)
writer.Write()
Magician
> On Dec 6, 2016, at 01:33, Cory Quammen <cory.quammen at kitware.com> wrote:
>
> I'm not 100% sure of this, but the vtkPointSource produces an output
> with only 1 cell. That may not be partitionable by the
> vtkDistributeDataFilter. You shouldn't get duplicate output in each
> piece, but let's not worry about that for now.
>
> Try swapping out the vtkPointSource with a vtkSphereSource and see if
> the data is partitioned.
>
> HTH,
> Cory
>
> On Sat, Dec 3, 2016 at 8:57 PM, Magician <f_magician at mac.com> wrote:
>> Hi Cory,
>>
>>
>> Thanks for your advice.
>>
>> Hmmm...I already run the script with MPI.
>> The attached script is a minimal sample.
>>
>>
>> If I execute it, pvtu file is exported.
>> But the all piece sources are exactly same, and not partitioned.
>>
>>
>>
>> Magician
>>
>>
>>> On Nov 28, 2016, at 06:19, Cory Quammen <cory.quammen at kitware.com> wrote:
>>>
>>> I think you need to run your script in parallel with MPI for the
>>> partitioning to work. See [1] for an example of how to use this
>>> filter.
>>>
>>> Hope that helps,
>>> Cory
>>>
>>> [1] http://www.vtk.org/gitweb?p=VTK.git;a=blob;f=Filters/Parallel/Testing/Cxx/DistributedData.cxx
>>>
>>> On Sun, Nov 27, 2016 at 10:39 AM, Magician <f_magician at mac.com> wrote:
>>>> Does anyone use the vtkDistributedDataFilter?
>>>>
>>>>
>>>> On Nov 19, 2016, at 18:16, Magician <f_magician at mac.com> wrote:
>>>>
>>>> Hi all,
>>>>
>>>>
>>>> I posted the message about partitioning datasets.
>>>> <http://public.kitware.com/pipermail/vtkusers/2016-November/097123.html>
>>>>
>>>> I still trying vtk.vtkDistributedDataFilter(), but the exported data aren’t
>>>> partitioned.
>>>> My VTK version is 7.1.0 (pvpython with ParaView 5.2.0 RC3) and executing on
>>>> 2 CPUs.
>>>>
>>>> Here is the sample code:
>>>>
>>>> import vtk
>>>>
>>>> source = vtk.vtkPointSource()
>>>> source.SetCenter((0.0, 0.0, 0.0))
>>>> source.SetNumberOfPoints(1000000)
>>>> source.SetRadius(1.0)
>>>> source.Update()
>>>>
>>>> d3 = vtk.vtkDistributedDataFilter()
>>>> d3.SetInputData(source.GetOutput())
>>>> d3.SetBoundaryMode(0)
>>>> d3.Update()
>>>>
>>>> writer = vtk.vtkXMLPUnstructuredGridWriter()
>>>> writer.SetInputData(d3.GetOutput())
>>>> writer.SetFileName(’test.pvtu’)
>>>> writer.SetNumberOfPieces(2)
>>>> writer.WriteSummaryFileOn()
>>>> writer.SetStartPiece(0)
>>>> writer.SetEndPiece(1)
>>>> writer.Write()
>>>>
>>>> How to partition data?
>>>>
>>>>
>>>> Magician
More information about the vtkusers
mailing list