[vtkusers] vtk.vtkDistributedDataFilter() not works

Magician f_magician at mac.com
Mon Dec 19 16:54:04 EST 2016


Hi Cory,


Sorry again. (My mailer has some trouble...)

I tried Sphere Source too, but the results are same.

> src = vtk.vtkSphereSource()
> src.SetCenter(0.0, 0.0, 0.0)
> src.SetRadius(1.0)
> src.SetThetaResolution(8)
> src.SetPhiResolution(5)
> src.Update()

If the code runs on native VTK environments, maybe my ParaView’s VTK has some trouble.


Magician


> On Dec 13, 2016, at 12:03, Cory Quammen <cory.quammen at kitware.com> wrote:
> 
> Hmm, I'm not sure. Could you try setting the input to d3 to the output
> of a vtkSphereSource and see if you get the expected results there?
> You should get half the sphere in one piece and the other half sphere
> in the other piece.
> 
> Thanks,
> Cory
> 
> On Sat, Dec 10, 2016 at 10:35 AM, Magician <f_magician at mac.com> wrote:
>> 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