[Paraview] Fwd: CoProcessing

pat marion pat.marion at kitware.com
Mon Aug 16 13:56:46 EDT 2010


cc'ing the list.

Pat

---------- Forwarded message ----------
From: Jacques Papper <jacques.papper at gmail.com>
Date: Mon, Aug 16, 2010 at 1:55 PM
Subject: Re: [Paraview] CoProcessing
To: pat marion <pat.marion at kitware.com>


Once again... My mistake .. I'm not used to submodules !

2010/8/16 Jacques Papper <jacques.papper at gmail.com>

Hi, I just pulled my git..
>
> CMake Error in Utilities/VTKClientServer/Wrapping/CMakeLists.txt:
>   Cannot find source file "vtkParsePreprocess.c".  Tried extensions .c .C
>   .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx
>
> I tried to configure and generate cmake but I get the same error when
> generating...
>
> Should I start from a clean cmake cache ?
>
> Jacques
>
> 2010/8/16 pat marion <pat.marion at kitware.com>
>
> 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/fbe72438/attachment-0001.htm>


More information about the ParaView mailing list