[Paraview] CoProcessing

Adriano Gagliardi agagliardi at ara.co.uk
Tue Aug 17 10:19:32 EDT 2010


Jacques,
 
Utkarsh had a patch for preventing the opengl window popping up when
producing screenshots from a while ago. Not sure if this was implemented in
the latest releases of ParaView (I'm talking PV v3.6.2).
 
Cheers,
 
Adriano

===================================

Adriano Gagliardi MEng PhD
Business Sector Leader
Computational Aerodynamics
Aircraft Research Association Ltd.
Manton Lane
Bedford

Tel: 01234 32 4644
E-mail: agagliardi at ara.co.uk
Url: www.ara.co.uk 

 

  _____  

From: paraview-bounces at paraview.org [mailto:paraview-bounces at paraview.org]
On Behalf Of Jacques Papper
Sent: 17 August 2010 15:07
To: pat marion
Cc: ParaView
Subject: [Paraview] CoProcessing


Hi All, 

Although I've got the coprocessing to work somehow, I still have a couple of
problems :

-> I have pulled from git yesterday.

1. None inside the python scripts generated by the plugin throws up some
issues :

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/s
ite-packages/paraview/servermanager.py", line 207, in __setattr__
    setter(self, value)
  File
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/Utilities/VTKPythonWrapping/s
ite-packages/paraview/servermanager.py", line 2367, in setProperty
    return self.GetPropertyValue(propName)
  File
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/Utilities/VTKPythonWrapping/s
ite-packages/paraview/servermanager.py", line 256, in SetPropertyWithName
    def SetPropertyWithName(self, pname, arg):
  File
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/Utilities/VTKPythonWrapping/s
ite-packages/paraview/servermanager.py", line 799, in SetData
    if len(values) == 1:
UnboundLocalError: local variable 'val' referenced before assignment


2. When Compiling with MESA, and switching offscreen rendering ON I get
problems at runtime when coprocessing (I have no problems saving screenshots
directly from within paraview) :


--- Some of my CMAKE settings :
//Path to a file.
OPENGL_INCLUDE_DIR:PATH=/usr/include

//Path to a library.
OPENGL_gl_LIBRARY:FILEPATH=/usr/lib64/libGL.so

//Path to a library.
OPENGL_glu_LIBRARY:FILEPATH=/usr/lib64/libGLU.so

//Path to a file.
OPENGL_xmesa_INCLUDE_DIR:PATH=/usr/include

//Path to a file.
OSMESA_INCLUDE_DIR:PATH=/usr/include

//Path to a library.
OSMESA_LIBRARY:FILEPATH=/usr/lib64/libOSMesa.so

----- RunTime error message ---- 


#0  Foam::error::printStack(Foam::Ostream&) in
"/users/boreas01/jacques/FOAMpro-1.6-dev/FOAM-dev/lib/linux64GccDPOpt/libFOA
M.so"
#1  Foam::sigSegv::sigSegvHandler(int) in
"/users/boreas01/jacques/FOAMpro-1.6-dev/FOAM-dev/lib/linux64GccDPOpt/libFOA
M.so"
#2  ?? in "/lib64/libc.so.6"
#3  __rawmemchr in "/lib64/libc.so.6"
#4  ?? in "/lib64/libc.so.6"
#5  vsscanf in "/lib64/libc.so.6"
#6  _IO_sscanf in "/lib64/libc.so.6"
#7  vtkOpenGLExtensionManager::ReadOpenGLExtensions() in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkRendering.so.pv3.9"
#8  vtkOpenGLExtensionManager::Update() in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkRendering.so.pv3.9"
#9  vtkOpenGLExtensionManager::ExtensionSupported(char const*) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkRendering.so.pv3.9"
#10  vtkOpenGLRenderWindow::OpenGLInit() in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkRendering.so.pv3.9"
#11  vtkXOpenGLRenderWindow::Start() in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkRendering.so.pv3.9"
#12  vtkRenderWindow::DoStereoRender() in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkRendering.so.pv3.9"
#13  vtkRenderWindow::DoFDRender() in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkRendering.so.pv3.9"
#14  vtkRenderWindow::DoAARender() in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkRendering.so.pv3.9"
#15  vtkRenderWindow::Render() in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkRendering.so.pv3.9"
#16  vtkXOpenGLRenderWindow::Render() in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkRendering.so.pv3.9"
#17  vtkXOpenGLRenderWindowCommand(vtkClientServerInterpreter*,
vtkObjectBase*, char const*, vtkClientServerStream const&,
vtkClientServerStream&) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkRenderingCS.so"
#18  vtkClientServerInterpreter::ProcessCommandInvoke(vtkClientServerStream
const&, int) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkClientServer.so"
#19  vtkClientServerInterpreter::ProcessOneMessage(vtkClientServerStream
const&, int) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkClientServer.so"
#20  vtkClientServerInterpreter::ProcessStream(vtkClientServerStream const&)
in "/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkClientServer.so"
#21  vtkSelfConnection::ProcessStreamLocally(vtkClientServerStream&) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
#22
vtkMPISelfConnection::SendStreamToDataServerRoot(vtkClientServerStream&) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
#23  vtkProcessModuleConnection::SendStream(unsigned int,
vtkClientServerStream&) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
#24  vtkProcessModuleConnectionManager::SendStream(long long, unsigned int,
vtkClientServerStream&, int) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
#25  vtkProcessModule::SendStream(long long, unsigned int,
vtkClientServerStream&, int) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerCommon.so"
#26  vtkSMRenderViewProxy::PerformRender() in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerManager.so"
#27  vtkSMViewProxy::StillRender() in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerManager.so"
#28  vtkSMRenderViewProxy::CaptureWindow(int) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerManager.so"
#29  vtkSMRenderViewProxy::WriteImage(char const*, char const*, int) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVServerManager.so"
#30  ?? at vtkSMRenderViewProxyPython.cxx:0
#31  vtkPythonUtil::CallOverloadedMethod(PyMethodDef*, _object*, _object*)
in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPythonCore.so.pv3.9
"
#32  PyObject_Call in "/usr/lib64/libpython2.6.so.1.0"
#33  PyEval_EvalFrameEx in "/usr/lib64/libpython2.6.so.1.0"
#34  PyEval_EvalCodeEx in "/usr/lib64/libpython2.6.so.1.0"
#35  PyEval_EvalFrameEx in "/usr/lib64/libpython2.6.so.1.0"
#36  PyEval_EvalCodeEx in "/usr/lib64/libpython2.6.so.1.0"
#37  PyEval_EvalFrameEx in "/usr/lib64/libpython2.6.so.1.0"
#38  PyEval_EvalFrameEx in "/usr/lib64/libpython2.6.so.1.0"
#39  PyEval_EvalCodeEx in "/usr/lib64/libpython2.6.so.1.0"
#40  PyEval_EvalCode in "/usr/lib64/libpython2.6.so.1.0"
#41  ?? in "/usr/lib64/libpython2.6.so.1.0"
#42  PyRun_StringFlags in "/usr/lib64/libpython2.6.so.1.0"
#43  PyRun_SimpleStringFlags in "/usr/lib64/libpython2.6.so.1.0"
#44  vtkPVPythonInterpretor::RunSimpleString(char const*) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkPVPythonInterpretor
.so"
#45  vtkCPPythonScriptPipeline::CoProcess(vtkCPDataDescription*) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkCoProcessor.so"
#46  vtkCPProcessor::CoProcess(vtkCPDataDescription*) in
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/bin/libvtkCoProcessor.so"


When compiling without MESA and OFFSCREEN then it works fine but I get an
annoying window that pops up all the time...

3. I am able to use the Parallel Multi Block Data Set Writer, on a very
simple hex mesh. But when I use it on a more complex mesh (including
POLYHEDRA cells) I get the following error :

When opening the file in paraview :



ERROR: In /users/boreas01/jacques/PARAVIEW/ParaView/VTK/IO/vtkXMLParser.cxx,
line 483

vtkXMLDataParser (0x18aa700): Error parsing XML in stream at line 1, column
7, byte index 7: not well-formed (invalid token)

ERROR: In /users/boreas01/jacques/PARAVIEW/ParaView/VTK/IO/vtkXMLReader.cxx,
line 362

vtkXMLUnstructuredGridReader (0x18cbbc0): Error parsing input file.
ReadXMLInformation aborting.

ERROR: In
/users/boreas01/jacques/PARAVIEW/ParaView/VTK/Filtering/vtkExecutive.cxx,
line 756

vtkStreamingDemandDrivenPipeline (0xdadf60): Algorithm
vtkXMLUnstructuredGridReader(0x18cbbc0) returned failure for request:
vtkInformation (0x127b170)

Debug: Off

Modified Time: 80976

Reference Count: 1

Registered Events: (none)

Request: REQUEST_INFORMATION

ALGORITHM_AFTER_FORWARD: 1

FORWARD_DIRECTION: 0



When running the coprocessor  I do not get any error message. And I am still
able to ouput png screenshots (when not using OFFSCREEN)... Is there an
incompatibility between the writers and the polyhedra cell type ? Or is it
possible that somewhere I am not filling in the cells / points properly ? 

Best, 
Jacques






2010/8/16 pat marion <pat.marion at kitware.com>


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/ser
vermanager.py


The patch:

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


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/s
ite-packages/paraview/servermanager.py", line 207, in __setattr__
    setter(self, value)
  File
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/Utilities/VTKPythonWrapping/s
ite-packages/paraview/servermanager.py", line 2367, in setProperty
    return self.SetPropertyWithName(propName, value)
  File
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/Utilities/VTKPythonWrapping/s
ite-packages/paraview/servermanager.py", line 256, in SetPropertyWithName
    prop.SetData(arg)
  File
"/users/boreas01/jacques/PARAVIEW/ParaView-bin/Utilities/VTKPythonWrapping/s
ite-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(vtkDataSetAttri
butes*) 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/PythonScriptCoProcessingExampl
e.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






















_______________________________________________
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





**********************************************************************
This email contains information that is private and confidential and is intended only for the addressee.
If you are not the intended recipient please delete it and notify us immediately by e-mailing the sender.
Note: All email sent to or from this address may be accessed by someone other than the recipient, for
system management and security reasons.
Aircraft Research Association Ltd.  Registered in England, Registration No 503668 Registered Office:
Manton Lane, Bedford MK41 7PF England VAT No GB 196351245

**********************************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20100817/8c022cc9/attachment-0001.htm>


More information about the ParaView mailing list