On Tue, Jun 19, 2012 at 7:24 AM, Gertjan van Zwieten <[email protected]> wrote: > Hi Hal, thanks for your quick reply and the example code. That's very > helpful. I do have these remaining questions that perhaps you could help me > with: > > In your experience, is a programmable source a suitable place to call a > potentially long running finite element code?
ParaView is single threaded so the GUI will be non-responsive while the simulation runs unless you get very creative. > Is it possible to update the data structure while it is already being > displayed, that is, before the script finishes? There is no support in ParaView for this. The primary reasons being its single threaded nature and pull pipeline architecture. It can and has been done before (with open source all things are possible given time) but it took significant effort and was never done robustly enough to make it into the official code repository. Search the mailing list for livedata and coprocessing for discussions on this topic. > And is it possible to have a programmable source output multiple data sets > if necessary? Hal is right, the right thing to do is produce vtkMultiblockData. > > Thanks again! > Gertjan > You should also investigate ParaView's coprocessing library as an option. http://paraview.org/Wiki/CoProcessing > > On Tue, Jun 19, 2012 at 12:44 PM, Hal Canary <[email protected]> wrote: >> >> On 06/19/2012 06:10 AM, Gertjan van Zwieten wrote: >>> >>> [...] >>> >>> So my question is simply if it is possible to inject objects from python >>> into an already running or separately spawned paraview instance? If so, >>> any pointers in that direction (an example script?) would of course be >>> enormously helpful. >> >> >> I use a programmable source. Here's a macro to create an image: >> >> ##################### >> script=""" >> image = self.GetImageDataOutput() >> image.SetSpacing(0.01,0.01,0.01) >> image.SetOrigin(0,0,0) >> image.SetDimensions(101,101,101) >> array = numpy.zeros((101,101,101,), dtype=numpy.float32) >> space = numpy.linspace(0,1,101) >> for i,x in enumerate(space): >> for j,y in enumerate(space): >> for k,z in enumerate(space): >> array[i,j,k] = (math.sin(4*x) >> + math.sin(4*y) + math.sin(4*z)) >> image.GetPointData().AddArray( >> paraview.vtk.dataset_adapter.numpyTovtkDataArray( >> array.reshape(101*101*101), name="myarray")) >> """ >> script_request_information = """ >> from paraview import util >> util.SetOutputWholeExtent(self, [0, 100, 0, 100, 0, 100]) >> """ >> ps = ProgrammableSource( >> guiName="My Source", >> Script=script, >> ScriptRequestInformation=script_request_information, >> OutputDataSetType='vtkImageData' ) >> Show(ps) >> ################################### >> _______________________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Please keep messages on-topic and check the ParaView Wiki at: >> http://paraview.org/Wiki/ParaView >> >> Follow this link to subscribe/unsubscribe: >> http://www.paraview.org/mailman/listinfo/paraview > > > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the ParaView Wiki at: > http://paraview.org/Wiki/ParaView > > Follow this link to subscribe/unsubscribe: > http://www.paraview.org/mailman/listinfo/paraview > _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
