[Paraview] CoProcessing

pat marion pat.marion at kitware.com
Mon Aug 16 11:12:42 EDT 2010


If you can't upgrade your paraview version you could try hand applying the
patch to /users/boreas01/jacques/
>
>
> PARAVIEW/ParaView-bin/Utilities/VTKPythonWrapping/site-packages/paraview/servermanager.py


The patch:

http://paraview.org/gitweb?p=ParaView.git;a=commitdiff;h=23027770320168c3f7877c6e4150d5ca834f3b9b

Pat

On Mon, Aug 16, 2010 at 11:01 AM, Jacques Papper
<jacques.papper at gmail.com>wrote:

> Hi,
>
> I'm sorry I was just rerunning to reproduce the error, and did not realize
> I missed changing my input back to input.foam instead of toto.foam ....
>
> Here is the actual error message :
>
> Traceback (most recent call last):
>   File "<string>", line 2, in <module>
>   File "/users/boreas01/jacques/TESTING/A6_saloon_50k/pvCopro.py", line
> 138, in DoCoProcessing
>     DataRepresentation1.SelectOrientationVectors = [None, '']
>   File
> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/Utilities/VTKPythonWrapping/site-packages/paraview/servermanager.py",
> line 207, in __setattr__
>     setter(self, value)
>   File
> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/Utilities/VTKPythonWrapping/site-packages/paraview/servermanager.py",
> line 2367, in setProperty
>     return self.SetPropertyWithName(propName, value)
>   File
> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/Utilities/VTKPythonWrapping/site-packages/paraview/servermanager.py",
> line 256, in SetPropertyWithName
>     prop.SetData(arg)
>   File
> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/Utilities/VTKPythonWrapping/site-packages/paraview/servermanager.py",
> line 799, in SetData
>     self.SMProperty.SetElement(3,  str(val))
> UnboundLocalError: local variable 'val' referenced before assignment
>
>
> Jacques
>
> 2010/8/16 Andy Bauer <andy.bauer at kitware.com>
>
> The other thing is that there was a problem when outputting images from
>> coprocessing.  Try updating to commit 2302777 to see if that's it.
>>
>> Andy
>>
>>
>> On Mon, Aug 16, 2010 at 9:07 AM, pat marion <pat.marion at kitware.com>wrote:
>>
>>> Hi Jacques,
>>>
>>> That error message seems to be unrelated to the lines containing 'None'
>>> that you copied in a previous email.  It looks to me like your code that
>>> calls the coprocessor is not inserting the vtk data set under the name
>>> 'test.foam'.  In the calling code you need something like:
>>>
>>> dataDesc->AddInput("test.foam")
>>> dataDesc->GetInputDescriptionByName("test.foam")->SetGrid(dataObject);
>>>
>>> Pat
>>>
>>>
>>> On Mon, Aug 16, 2010 at 8:35 AM, Jacques Papper <
>>> jacques.papper at gmail.com> wrote:
>>>
>>>> Hi Pat,
>>>>
>>>> This is what shows up for me :
>>>>
>>>>     datadescription.GetInputDescriptionByName(input_name).AllFieldsOff()
>>>> AttributeError: 'NoneType' object has no attribute 'AllFieldsOff'
>>>>
>>>>
>>>> Inside the Python script :
>>>>
>>>> def RequestDataDescription(datadescription):
>>>>     "Callback to populate the request for current timestep"
>>>>     timestep = datadescription.GetTimeStep()
>>>>
>>>>
>>>>     input_name = 'test.foam'
>>>>     if (timestep % 0.0004 == 0) :
>>>>
>>>> datadescription.GetInputDescriptionByName(input_name).AllFieldsOn()
>>>>
>>>> datadescription.GetInputDescriptionByName(input_name).GenerateMeshOn()
>>>>     else:
>>>>
>>>> datadescription.GetInputDescriptionByName(input_name).AllFieldsOff()
>>>>
>>>> datadescription.GetInputDescriptionByName(input_name).GenerateMeshOff()
>>>>
>>>>
>>>> Best,
>>>>
>>>>
>>>> Jacques
>>>>
>>>>
>>>> 2010/8/13 pat marion <pat.marion at kitware.com>
>>>>
>>>> Hi Jacques,
>>>>>
>>>>> My python trace files have similar lines, and I am able to run them
>>>>> without error.  I've only just tested with latest git master, not 3.8.  Can
>>>>> you copy the specific error message you're getting so I can take a look?
>>>>>
>>>>> Pat
>>>>>
>>>>>
>>>>> On Fri, Aug 13, 2010 at 6:20 PM, Jacques Papper <
>>>>> jacques.papper at gmail.com> wrote:
>>>>>
>>>>>>    Sorry I meant None... not Null :
>>>>>>
>>>>>> For example :
>>>>>>
>>>>>>
>>>>>>     DataRepresentation1.SelectOrientationVectors = [None, '']
>>>>>>     DataRepresentation1.SelectedMapperIndex = 'Projected tetra'
>>>>>>     DataRepresentation1.CubeAxesTickLocation = 'Inside'
>>>>>>     DataRepresentation1.CubeAxesXAxisMinorTickVisibility = 1
>>>>>>     DataRepresentation1.CubeAxesYAxisVisibility = 1
>>>>>>     DataRepresentation1.SelectionPointLabelFontFamily = 'Arial'
>>>>>>     DataRepresentation1.Source.ShaftResolution = 6
>>>>>>     DataRepresentation1.CubeAxesFlyMode = 'Closest Triad'
>>>>>>     DataRepresentation1.SelectScaleArray = [None, '']
>>>>>>
>>>>>>
>>>>>> 2010/8/13 Andy Bauer <andy.bauer at kitware.com>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> On Fri, Aug 13, 2010 at 3:39 AM, Jacques Papper <
>>>>>>> jacques.papper at gmail.com> wrote:
>>>>>>>
>>>>>>>> I found the problem... I was inserting PointData instead of CellData
>>>>>>>> :) ,,,
>>>>>>>> Anyway it seems to be starting to work now.. 2 things though :
>>>>>>>>
>>>>>>>> -> Whenever I try to run directly a python script exported from
>>>>>>>> paraview (Through the Coprocessing export state) it won't run until I remove
>>>>>>>> all references to LIC and all lines containing Null...
>>>>>>>>
>>>>>>>> Now that you mention it, I didn't put in anything special for
>>>>>>> plugins.  Setting the plugins to auto-load may work but my guess is that it
>>>>>>> won't.  I'll look into the plugin thing and the best way to do it in the
>>>>>>> script generator.
>>>>>>>
>>>>>>> What do you mean by Null?  I don't know what that is so you'll have
>>>>>>> to explain it to me.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> For the LIC, is it because the python script doesn't automatically
>>>>>>>> load the LIC plugin ?
>>>>>>>> For the Null, do you have this problem as well ?
>>>>>>>>
>>>>>>>> -> Is the Live Source Data code already available in git ? I'd love
>>>>>>>> to test it out even if it is not robust yet.
>>>>>>>>
>>>>>>>
>>>>>>> We don't yet have permission to release the Live Source Data code yet
>>>>>>> but I think it should be available in the next couple of months.
>>>>>>>
>>>>>>>>
>>>>>>>> Best,
>>>>>>>> Jacques
>>>>>>>>
>>>>>>>>
>>>>>>>> 2010/8/12 Andy Bauer <andy.bauer at kitware.com>
>>>>>>>>
>>>>>>>>> You probably want to add the field data to the specific grids in
>>>>>>>>> the multiblock data set and not just the block itself.  As an example:
>>>>>>>>>
>>>>>>>>> create multiblock
>>>>>>>>> for each grid:
>>>>>>>>>   create grid points and cells
>>>>>>>>>   add point and cell data to grid
>>>>>>>>>   add grid to block
>>>>>>>>>
>>>>>>>>> Note that in parallel for coprocessing that the block must have the
>>>>>>>>> same structure on each process but whether a leaf node is empty or not can
>>>>>>>>> change.  For example:
>>>>>>>>>
>>>>>>>>> proc 0 mutliblock:
>>>>>>>>>   block 0 -> unstructured grid
>>>>>>>>>   block 1 -> uniform grid
>>>>>>>>>   block 2 -> NULL
>>>>>>>>> proc 1 multiblock:
>>>>>>>>>   block 0 -> NULL
>>>>>>>>>   block 1 -> NULL
>>>>>>>>>   block 2 -> unstructured grid
>>>>>>>>>
>>>>>>>>> I'm not sure of all of the details but what I do is that I set a
>>>>>>>>> block to only be non-NULL on a single process.
>>>>>>>>>
>>>>>>>>> Hope this helps,
>>>>>>>>> Andy
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, Aug 12, 2010 at 2:38 PM, Jacques Papper <
>>>>>>>>> jacques.papper at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi All,
>>>>>>>>>>
>>>>>>>>>> I am making some more progress on this. Everything was working
>>>>>>>>>> until I tried adding field data... I now get an explosion :
>>>>>>>>>>
>>>>>>>>>> #2  ?? in "/lib64/libc.so.6"
>>>>>>>>>> #3  vtkDataArrayTemplate<double>::ComputeScalarRange(int) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkCommon.so.pv3.9"
>>>>>>>>>> #4  vtkDataArray::ComputeRange(int) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkCommon.so.pv3.9"
>>>>>>>>>> #5  vtkPVArrayInformation::CopyFromObject(vtkObject*) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
>>>>>>>>>> #6
>>>>>>>>>> vtkPVDataSetAttributesInformation::CopyFromDataSetAttributes(vtkDataSetAttributes*)
>>>>>>>>>> in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
>>>>>>>>>> #7  vtkPVDataInformation::CopyFromDataSet(vtkDataSet*) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
>>>>>>>>>> #8  vtkPVDataInformation::CopyFromObject(vtkObject*) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
>>>>>>>>>> #9  vtkPVCompositeDataInformation::CopyFromObject(vtkObject*) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
>>>>>>>>>> #10
>>>>>>>>>> vtkPVDataInformation::CopyFromCompositeDataSet(vtkCompositeDataSet*) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
>>>>>>>>>> #11  vtkPVDataInformation::CopyFromObject(vtkObject*) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
>>>>>>>>>> #12  vtkSelfConnection::GatherInformation(unsigned int,
>>>>>>>>>> vtkPVInformation*, vtkClientServerID) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
>>>>>>>>>> #13  vtkSynchronousMPISelfConnection::GatherInformation(unsigned
>>>>>>>>>> int, vtkPVInformation*, vtkClientServerID) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
>>>>>>>>>> #14  vtkSMOutputPort::GatherDataInformation() in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerManager.so"
>>>>>>>>>> #15  vtkSMOutputPort::GetDataInformation() in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerManager.so"
>>>>>>>>>> #16  vtkSMDataTypeDomain::IsInDomain(vtkSMSourceProxy*, int) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerManager.so"
>>>>>>>>>> #17  vtkSMDataTypeDomain::IsInDomain(vtkSMProperty*) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerManager.so"
>>>>>>>>>> #18  vtkSMProperty::IsInDomains() in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerManager.so"
>>>>>>>>>> #19
>>>>>>>>>> vtkSMRenderViewProxy::CreateDefaultRepresentation(vtkSMProxy*, int) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerManager.so"
>>>>>>>>>> #20  ?? at vtkSMRenderViewProxyPython.cxx:0
>>>>>>>>>> #21  PyEval_EvalFrameEx in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #22  PyEval_EvalCodeEx in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #23  PyEval_EvalFrameEx in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #24  PyEval_EvalCodeEx in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #25  PyEval_EvalFrameEx in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #26  PyEval_EvalCodeEx in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #27  PyEval_EvalFrameEx in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #28  PyEval_EvalCodeEx in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #29  PyEval_EvalFrameEx in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #30  PyEval_EvalFrameEx in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #31  PyEval_EvalCodeEx in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #32  PyEval_EvalCode in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #33  ?? in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #34  PyRun_StringFlags in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #35  PyRun_SimpleStringFlags in "/usr/lib64/libpython2.6.so.1.0"
>>>>>>>>>> #36  vtkPVPythonInterpretor::RunSimpleString(char const*) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVPythonInterpretor.so"
>>>>>>>>>> #37  vtkCPPythonScriptPipeline::CoProcess(vtkCPDataDescription*)
>>>>>>>>>> in "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkCoProcessor.so"
>>>>>>>>>> #38  vtkCPProcessor::CoProcess(vtkCPDataDescription*) in
>>>>>>>>>> "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkCoProcessor.so"
>>>>>>>>>>
>>>>>>>>>> Any ideas where this can be coming from ?
>>>>>>>>>> When I do not add the field data it just complains about missing
>>>>>>>>>> fields so I know that the code is not completely wrong...
>>>>>>>>>> I am adding the data to the first block of my multiblockdataset...
>>>>>>>>>> Is that a problem ?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks !
>>>>>>>>>> Jacques
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2010/8/12 Jacques Papper <jacques.papper at gmail.com>
>>>>>>>>>>
>>>>>>>>>> Hi Andy, Pat,
>>>>>>>>>>>
>>>>>>>>>>> I have the skeleton of the coprocessing working (for the moment I
>>>>>>>>>>> just tried by populating the point field - no cells, no data).
>>>>>>>>>>> I am trying to figure out the most efficient way of transferring
>>>>>>>>>>> my data structure to VTK with minimal copying and looping...
>>>>>>>>>>> I would like to use the vtkUnstructuredGrid::SetCells() method,
>>>>>>>>>>> which means I probably need to use the vtkCellArray::SetCells() method, and
>>>>>>>>>>> therefore the vtkIdType::SetArray() method...
>>>>>>>>>>> The problem is I am not sure what the format of the array should
>>>>>>>>>>> be ?
>>>>>>>>>>> I am dealing with unstructured polyhedra cells (most of which are
>>>>>>>>>>> known types like hex prism etc..).
>>>>>>>>>>>
>>>>>>>>>>> Of course, I could also use the InsertNextCell() methods, but I
>>>>>>>>>>> was wondering if there wasn't a more efficient way...
>>>>>>>>>>>
>>>>>>>>>>> Best,
>>>>>>>>>>> Jacques
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2010/8/9 Andy Bauer <andy.bauer at kitware.com>
>>>>>>>>>>>
>>>>>>>>>>> Hi Jacques,
>>>>>>>>>>>>
>>>>>>>>>>>> I put an example on the wiki based on Pat's example for running
>>>>>>>>>>>> a coprocessing.  It's at:
>>>>>>>>>>>> http://paraview.org/Wiki/Coprocessing_example#Python_Scripts
>>>>>>>>>>>> Let me know if you have any problems with it so that I can fix
>>>>>>>>>>>> any errors that I have.
>>>>>>>>>>>>
>>>>>>>>>>>> Also, I just made changes so that the coprocessing library gets
>>>>>>>>>>>> installed properly.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Andy
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Aug 4, 2010 at 7:21 PM, Jacques Papper <
>>>>>>>>>>>> jacques.papper at gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks Pat,
>>>>>>>>>>>>>
>>>>>>>>>>>>> I am trying to compile my first attempt.
>>>>>>>>>>>>> Although I do find the headers I need, I am having some trouble
>>>>>>>>>>>>> identifying which libraries I need to link to.
>>>>>>>>>>>>> For example, I assume that I should be linking to
>>>>>>>>>>>>> libvtkCoProcessor.so ... Although I find this library in the compilation
>>>>>>>>>>>>> folder (under bin), I do not find it in the make installed version under
>>>>>>>>>>>>> lib...
>>>>>>>>>>>>> Is this normal ?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Best,
>>>>>>>>>>>>> Jacques
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2010/8/4 pat marion <pat.marion at kitware.com>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Below is a simple cxx program I have used for testing.  It
>>>>>>>>>>>>>> creates one sphere per process, positions the sphere as a function of the
>>>>>>>>>>>>>> process id, and the spheres grow/shrink over time.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Pat
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> #include "vtkCPProcessor.h"
>>>>>>>>>>>>>> #include "vtkCPPythonScriptPipeline.h"
>>>>>>>>>>>>>> #include "vtkMultiProcessController.h"
>>>>>>>>>>>>>> #include "vtkXMLUnstructuredGridReader.h"
>>>>>>>>>>>>>> #include "vtkUnstructuredGrid.h"
>>>>>>>>>>>>>> #include "vtkCPDataDescription.h"
>>>>>>>>>>>>>> #include "vtkCPInputDataDescription.h"
>>>>>>>>>>>>>> #include "vtkSmartPointer.h"
>>>>>>>>>>>>>> #include "vtkPolyData.h"
>>>>>>>>>>>>>> #include "vtkSphereSource.h"
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> #include <stdio.h>
>>>>>>>>>>>>>> #include <string>
>>>>>>>>>>>>>> #include <sstream>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> static unsigned int procId;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> void myprint(const std::string& str)
>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>   printf("driver (%u): %s\n", procId, str.c_str());
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> class DataGenerator {
>>>>>>>>>>>>>> public:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   DataGenerator()
>>>>>>>>>>>>>>     {
>>>>>>>>>>>>>>     this->Sphere = vtkSmartPointer<vtkSphereSource>::New();
>>>>>>>>>>>>>>     this->Sphere->SetThetaResolution(30);
>>>>>>>>>>>>>>     this->Sphere->SetPhiResolution(30);
>>>>>>>>>>>>>>     this->Sphere->SetCenter(procId*4.0, 0, 0);
>>>>>>>>>>>>>>     this->Index = 0;
>>>>>>>>>>>>>>     }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   vtkSmartPointer<vtkPolyData> GetNext()
>>>>>>>>>>>>>>     {
>>>>>>>>>>>>>>     double radius = fabs(sin(0.1 * this->Index));
>>>>>>>>>>>>>>     this->Index++;
>>>>>>>>>>>>>>     this->Sphere->SetRadius(1.0 + radius);
>>>>>>>>>>>>>>     this->Sphere->Update();
>>>>>>>>>>>>>>     vtkSmartPointer<vtkPolyData> ret =
>>>>>>>>>>>>>> vtkSmartPointer<vtkPolyData>::New();
>>>>>>>>>>>>>>     ret->DeepCopy(this->Sphere->GetOutput());
>>>>>>>>>>>>>>     return ret;
>>>>>>>>>>>>>>     }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> protected:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   int Index;
>>>>>>>>>>>>>>   vtkSmartPointer<vtkSphereSource> Sphere;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> };
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> int main(int argc, char* argv[])
>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>   if (argc < 3)
>>>>>>>>>>>>>>     {
>>>>>>>>>>>>>>     printf("Usage: %s <cp python file> <number of steps>\n",
>>>>>>>>>>>>>> argv[0]);
>>>>>>>>>>>>>>     return 1;
>>>>>>>>>>>>>>     }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   std::string cpPythonFile = argv[1];
>>>>>>>>>>>>>>   int nSteps = atoi(argv[2]);
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   myprint("starting coprocessor");
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   vtkCPProcessor* processor = vtkCPProcessor::New();
>>>>>>>>>>>>>>   processor->Initialize();
>>>>>>>>>>>>>>   vtkCPPythonScriptPipeline* pipeline =
>>>>>>>>>>>>>> vtkCPPythonScriptPipeline::New();
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   // mpi was initialized when we called
>>>>>>>>>>>>>> vtkCPPythonScriptPipeline::New()
>>>>>>>>>>>>>>   procId =
>>>>>>>>>>>>>> vtkMultiProcessController::GetGlobalController()->GetLocalProcessId();
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   // read the coprocessing python file
>>>>>>>>>>>>>>   myprint("loading pipeline python file: " + cpPythonFile);
>>>>>>>>>>>>>>   int success = pipeline->Initialize(cpPythonFile.c_str());
>>>>>>>>>>>>>>   if (!success)
>>>>>>>>>>>>>>     {
>>>>>>>>>>>>>>     myprint("aborting");
>>>>>>>>>>>>>>     return 1;
>>>>>>>>>>>>>>     }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   processor->AddPipeline(pipeline);
>>>>>>>>>>>>>>   pipeline->Delete();
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   if (nSteps == 0)
>>>>>>>>>>>>>>     {
>>>>>>>>>>>>>>     return 0;
>>>>>>>>>>>>>>     }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   // create a data source
>>>>>>>>>>>>>>   DataGenerator generator;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   // do coprocessing
>>>>>>>>>>>>>>   double tStart = 0.0;
>>>>>>>>>>>>>>   double tEnd = 1.0;
>>>>>>>>>>>>>>   double stepSize = (tEnd - tStart)/nSteps;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   vtkCPDataDescription* dataDesc =
>>>>>>>>>>>>>> vtkCPDataDescription::New();
>>>>>>>>>>>>>>   dataDesc->AddInput("input");
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   for (int i = 0; i < nSteps; ++i)
>>>>>>>>>>>>>>     {
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>     double currentTime = tStart + stepSize*i;
>>>>>>>>>>>>>>     std::stringstream timeStr;
>>>>>>>>>>>>>>     timeStr << "time(" << i << ", " << currentTime << ")";
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>     dataDesc->SetTimeData(currentTime, i);
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>     myprint("call RequestDataDescription, " + timeStr.str());
>>>>>>>>>>>>>>     int do_coprocessing =
>>>>>>>>>>>>>> processor->RequestDataDescription(dataDesc);
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>     if (do_coprocessing)
>>>>>>>>>>>>>>       {
>>>>>>>>>>>>>>       myprint("calling CoProcess, " + timeStr.str());
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>       vtkSmartPointer<vtkDataObject> dataObject =
>>>>>>>>>>>>>>         generator.GetNext();
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> dataDesc->GetInputDescriptionByName("input")->SetGrid(dataObject);
>>>>>>>>>>>>>>       processor->CoProcess(dataDesc);
>>>>>>>>>>>>>>       }
>>>>>>>>>>>>>>     }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   myprint("finalizing");
>>>>>>>>>>>>>>   dataDesc->Delete();
>>>>>>>>>>>>>>   processor->Finalize();
>>>>>>>>>>>>>>   processor->Delete();
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   return 0;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Wed, Aug 4, 2010 at 12:14 PM, Andy Bauer <
>>>>>>>>>>>>>> andy.bauer at kitware.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Jacques,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> There is a polyhedra cell type in VTK now --
>>>>>>>>>>>>>>> http://www.vtk.org/doc/nightly/html/classvtkPolyhedron.html
>>>>>>>>>>>>>>> As far as I know it works with all of the proper filters but
>>>>>>>>>>>>>>> since I haven't tried it yet I won't promise that.  The good news is that
>>>>>>>>>>>>>>> Will Schroeder had a high interest in it and probably worked on some of it
>>>>>>>>>>>>>>> so I'd assume that it's working quite well right now.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> As for Phasta, it does run in parallel (as props to their
>>>>>>>>>>>>>>> developers it was a finalist for the 2009 Gordon Bell prize).  The grid is
>>>>>>>>>>>>>>> already partitioned and each process runs the adaptor and creates an
>>>>>>>>>>>>>>> unstructured grid from its portion of the partitioned mesh.  Thus, there
>>>>>>>>>>>>>>> isn't any need for mpi calls in the adaptor code.  If you had ghost cell
>>>>>>>>>>>>>>> information in your partitioned mesh and wanted to get fancy you should be
>>>>>>>>>>>>>>> able to add that to your partitioned grid to make some of the filters faster
>>>>>>>>>>>>>>> but I haven't tried that.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Andy
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Wed, Aug 4, 2010 at 11:58 AM, Jacques Papper <
>>>>>>>>>>>>>>> jacques.papper at gmail.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thanks a lot Andy, Takuya,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I'm using the PhastaAdaptor, and the FortranAdaptorAPI as a
>>>>>>>>>>>>>>>> guide for the moment.
>>>>>>>>>>>>>>>> I know there were talks of getting POLYHEDRAL cell support
>>>>>>>>>>>>>>>> in VTK. Do you know if this is there yet?
>>>>>>>>>>>>>>>> My dataset is multiregion unstructured polyhedral mesh
>>>>>>>>>>>>>>>> domain decomposed amongst each processor.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Is the Phasta code parallelized ? If so, I do not see any
>>>>>>>>>>>>>>>> MPI statements in the adaptor code ?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Jacques
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> 2010/8/4 Andy Bauer <andy.bauer at kitware.com>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi Jacques,
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> What type of data set do you have?  Even though the PHASTA
>>>>>>>>>>>>>>>>> adaptor ( ParaView/CoProcessing/Adaptors/FortranAdaptors/PhastaAdaptor) is
>>>>>>>>>>>>>>>>> for fortran code it may give you an idea.  Also stepping through the example
>>>>>>>>>>>>>>>>> in
>>>>>>>>>>>>>>>>> ParaView/CoProcessing/CoProcessor/Testing/Cxx/PythonScriptCoProcessingExample.cxx
>>>>>>>>>>>>>>>>> may help as well.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I'll spend some time this week putting up a skeleton of a
>>>>>>>>>>>>>>>>> simulation code on the coprocessing wiki that should hopefully be easier to
>>>>>>>>>>>>>>>>> follow.  I'll let you know when it's done.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Andy
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Wed, Aug 4, 2010 at 8:02 AM, Jacques Papper <
>>>>>>>>>>>>>>>>> jacques.papper at gmail.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>  Hi All,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Sorry for my last post, I figured out that I had wrongly
>>>>>>>>>>>>>>>>>> set my PYTHONPATH..
>>>>>>>>>>>>>>>>>> All the tests work ok now. Still interested in
>>>>>>>>>>>>>>>>>> CoProcessing adaptors examples though :)
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>>>>>> Jacques
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 2010/8/4 Jacques Papper <jacques.papper at gmail.com>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Hi All,
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I'm starting to look into the ParaView CoProcessing
>>>>>>>>>>>>>>>>>>> libraries.
>>>>>>>>>>>>>>>>>>> I just pulled from git today, and compiled it all up
>>>>>>>>>>>>>>>>>>> following the guidelines in :
>>>>>>>>>>>>>>>>>>> http://www.paraview.org/Wiki/CoProcessing
>>>>>>>>>>>>>>>>>>> I didn't find :
>>>>>>>>>>>>>>>>>>> *BUILD_PYTHON_COPROCESSING_ADAPTOR
>>>>>>>>>>>>>>>>>>> *but instead :
>>>>>>>>>>>>>>>>>>> PARAVIEW_BUILD_PLUGIN_CoProcessingScriptGenerator
>>>>>>>>>>>>>>>>>>> anyway the compilation went through without any issues.
>>>>>>>>>>>>>>>>>>> I then tried :
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> ctest -R CoProcessing
>>>>>>>>>>>>>>>>>>> Test project
>>>>>>>>>>>>>>>>>>> /users/boreas01/jacques/PARAVIEW/ParaView-bin
>>>>>>>>>>>>>>>>>>>     Start 491: CoProcessingTestPythonScript
>>>>>>>>>>>>>>>>>>> 1/3 Test #491: CoProcessingTestPythonScript ...........
>>>>>>>>>>>>>>>>>>> Passed    0.45 sec
>>>>>>>>>>>>>>>>>>>     Start 492: CoProcessingPythonScriptGridPlot
>>>>>>>>>>>>>>>>>>> 2/3 Test #492: CoProcessingPythonScriptGridPlot
>>>>>>>>>>>>>>>>>>> .......***Failed    0.09 sec
>>>>>>>>>>>>>>>>>>>     Start 493: CoProcessingPythonScriptPressurePlot
>>>>>>>>>>>>>>>>>>> 3/3 Test #493: CoProcessingPythonScriptPressurePlot
>>>>>>>>>>>>>>>>>>> ...***Failed    0.09 sec
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> 33% tests passed, 2 tests failed out of 3
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Total Test time (real) =   0.68 sec
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> The following tests FAILED:
>>>>>>>>>>>>>>>>>>>         492 - CoProcessingPythonScriptGridPlot (Failed)
>>>>>>>>>>>>>>>>>>>         493 - CoProcessingPythonScriptPressurePlot
>>>>>>>>>>>>>>>>>>> (Failed)
>>>>>>>>>>>>>>>>>>> Errors while running CTest
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Is this a problem in my current installation or on the
>>>>>>>>>>>>>>>>>>> master branch ?
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Finally, I would like to start writing an adaptor to a
>>>>>>>>>>>>>>>>>>> C++ parallelised code. Can you tell me what is the closest code I can
>>>>>>>>>>>>>>>>>>> inspire myself from ?
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Thank you,
>>>>>>>>>>>>>>>>>>> Jacques
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> PS sorry mixed up the subjects..
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>> 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
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20100816/3f10913a/attachment-0001.htm>


More information about the ParaView mailing list