[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