[Paraview] CoProcessing with Fortran and ParaView 3.98
Andy Bauer
andy.bauer at kitware.com
Thu Mar 21 13:49:52 EDT 2013
I think the problem is that:
Clip1 = Clip( guiName="Clip1", InsideOut=0, Scalars=['POINTS', ''],
Value=95.0, UseValueAsOffset=0, Crinkleclip=0, ClipType="Scalar" )
Should probably have the name of the point data field set in it. Do this
with (assuming psi01 is the name of the field you want to clip with respect
to:
Scalars=['POINTS', 'psi01']
My guess is that the scalar field isn't getting set properly. Try adding in:
w = XMLPImageDataWriter(Input=psi01_, FileName = 'fullgrid.pvti')
w.UpdatePipeline()
right after the CreateProducer() method to see what's in your grid.
By the way, does adding in the "//char(0)" work for converting Fortran
strings to C/C++ strings (e.g. in "call addfield(psi,"psi01"//char(0))") ?
If it does, will it also work for Fortran77? That's a neat little trick!
Andy
On Wed, Mar 20, 2013 at 5:29 PM, Pettey . Lucas <LPettey at drc.com> wrote:
> I have solved the C++ to Fortran array issues, but I am still not getting
> a meaningful visualization. I have attached the latest files, including a
> screenshot of the exported state and the resulting image that is produced
> by the coprocessor.
>
> The coprocessor is generating an error:
>
> ERROR: In
> /Users/lucaspettey/ParaView-git/ParaView/VTK/Filters/General/vtkTableBasedClipDataSet.cxx,
> line 1956
> vtkPVClipDataSet (0x7feaa4998550): no input scalars.
>
> This error is not appearing at the time=0 co-process, but it is appearing
> each time step the co-processor is being asked to write an image. All of
> the images are the same blank axes as in the attached image0.png.
>
> I'm not sure what to try next so any help is appreciated.
>
> Thanks,
> Lucas
>
> ________________________________________
> From: paraview-bounces at paraview.org [paraview-bounces at paraview.org] on
> behalf of Pettey . Lucas [LPettey at drc.com]
> Sent: Wednesday, March 20, 2013 11:45 AM
> To: Andy Bauer
> Cc: paraview [paraview at paraview.org]
> Subject: Re: [Paraview] CoProcessing with Fortran and ParaView 3.98
>
> So after some troubleshooting it seems that C++ doesn't like the complex
> data type the way Fortran is sending it.
>
> The code runs when I just send a real value. Images appear, but of course
> they are meaningless since it isn't the correct data. I may try passing the
> real and imaginary separate. I may also look into row/column order issues
> although this grid is 100x100x100 so it shouldn't affect anything.
>
> Lucas
> ________________________________________
> From: paraview-bounces at paraview.org [paraview-bounces at paraview.org] on
> behalf of Pettey . Lucas [LPettey at drc.com]
> Sent: Wednesday, March 20, 2013 11:12 AM
> To: Andy Bauer
> Cc: paraview [paraview at paraview.org]
> Subject: Re: [Paraview] CoProcessing with Fortran and ParaView 3.98
>
> Hi Andy and Berk,
>
> Here is the error that I am receiving.
>
> I know that it is initializing ok and failing at the first call to the
> co-processor. I have attached my python script output as well as my test
> code and adaptors.
>
> CoProcessingExample(19247,0x7fff77470180) malloc: ***
> mmap(size=3739605888335872) failed (error code=12)
> *** error: can't allocate region
> *** set a breakpoint in malloc_error_break to debug
> Operating system error: Cannot allocate memory
> Memory allocation failed
>
> Thanks for the help,
> Lucas
>
> From: Andy Bauer [andy.bauer at kitware.com]
> Sent: Wednesday, March 20, 2013 9:08 AM
> To: Pettey . Lucas
> Cc: Berk Geveci; paraview [paraview at paraview.org]
> Subject: Re: [Paraview] CoProcessing with Fortran and ParaView 3.98
>
> Hi Lucas,
>
> Can you share your co-processing script and any run output? There may be
> warnings in the output or info in the script that will help figure that out.
>
> Thanks,
> Andy
>
> On Wed, Mar 20, 2013 at 10:04 AM, Pettey . Lucas <LPettey at drc.com<mailto:
> LPettey at drc.com>> wrote:
> Hi Berk,
>
> Thanks for the help.
>
> I found that this example is written based on an earlier version of VTK so
> some of the function calls have changed. Based on your advice and some of
> the examples contained in the ParaView wiki, I have gotten it to compile
> and run.
>
> Now I just have to figure out why it isn't generating any VTK objects....
>
> Probably something wrong with my python co-processing script.
>
> Thanks
> Lucas
> ________________________________
> From: Berk Geveci [berk.geveci at kitware.com<mailto:berk.geveci at kitware.com
> >]
> Sent: Tuesday, March 19, 2013 6:48 PM
> To: Pettey . Lucas
> Cc: paraview [paraview at paraview.org<mailto:paraview at paraview.org>]
> Subject: Re: [Paraview] CoProcessing with Fortran and ParaView 3.98
>
> You can simply delete this line:
>
> Grid->SetNumberOfScalarComponents(2);
>
> It is redundant given the following later:
>
> field->SetNumberOfComponents(2);
>
> You also need to #include <vtkSmartPointer.h>.
>
> Best,
> -berk
>
>
>
> On Tue, Mar 19, 2013 at 2:31 PM, Pettey . Lucas <LPettey at drc.com<mailto:
> LPettey at drc.com><mailto:LPettey at drc.com<mailto:LPettey at drc.com>>> wrote:
> Hello everyone,
>
> I am trying to run a simple Fortran coprocessing example with a complex
> data type. I am following the example here:
>
>
> http://en.wikibooks.org/wiki/Parallel_Spectral_Numerical_Methods/Visualization_with_ParaView_CoProcessing#ParaView_CoProcessing_Resources
>
> I have written a basic Fortran code that outputs the data in binary,
> opened that in ParaView, output the coprocessing script and then written
> the adaptor following the example in the above link. My adaptor looks like:
>
> extern "C" void createcpimagedata_(int* nx, int* ny, int* nz)
> {
> if (!ParaViewCoProcessing::GetCoProcessorData()) {
> vtkGenericWarningMacro("Unable to access CoProcessorData.");
> return;
> }
>
> // The simulation grid is a 2-dimensional topologically and geometrically
> // regular grid. In VTK/ParaView, this is considered an image data set.
> vtkImageData* Grid = vtkImageData::New();
>
> // assuming dimZ == 1 for now
> Grid->SetDimensions(*nx, *ny, *nz);
> Grid->SetNumberOfScalarComponents(2);
>
> // Setting the Origin and Spacing are also options.
>
> // Name should be consistent between here, Fortran and Python client
> script.
>
> ParaViewCoProcessing::GetCoProcessorData()->GetInputDescriptionByName("input")->SetGrid(Grid);
> }
>
> // Add field(s) to the data container.
> // Separate from above because this will be dynamic, grid is static.
> // Might be an issue, VTK probably assumes row major, but
> // omeg probably passed column major...
> // by hand name mangling for fortran
> extern "C" void addfield_(double* scalars, char* name)
> {
> vtkCPInputDataDescription *idd =
> ParaViewCoProcessing::GetCoProcessorData()->GetInputDescriptionByName("input");
>
> vtkImageData* Image = vtkImageData::SafeDownCast(idd->GetGrid());
>
> if (!Image) {
> vtkGenericWarningMacro("No adaptor grid to attach field data to.");
> return;
> }
>
>
> // field name must match that in the fortran code.
> if (idd->IsFieldNeeded(name)) {
> vtkSmartPointer<vtkDoubleArray> field =
> vtkSmartPointer<vtkDoubleArray>::New();
> field->SetNumberOfComponents(2);
> field->SetName(name);
> field->SetArray(scalars, 2* Image->GetNumberOfPoints(), 1);
> Image->GetPointData()->AddArray(field);
>
> }
> }
>
> I am getting some errors from the Makefile generated by Cmake:
>
> /Users/lucaspettey/codes/BEC/coprocVTK.cxx:40:38: error: too few arguments
> to function call, expected 2, have 1
> Grid->SetNumberOfScalarComponents(2);
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
> /Users/lucaspettey/ParaView-git/ParaView/VTK/Common/DataModel/vtkImageData.h:298:3:
> note: 'SetNumberOfScalarComponents' declared here
> static void SetNumberOfScalarComponents( int n, vtkInformation*
> meta_data);
> ^
> /Users/lucaspettey/codes/BEC/coprocVTK.cxx:67:5: error: unknown type name
> 'vtkSmartPointer'; did you mean 'vtkSmartPointerBase'?
> vtkSmartPointer<vtkDoubleArray> field =
> vtkSmartPointer<vtkDoubleArray>::New();
> ^~~~~~~~~~~~~~~
> vtkSmartPointerBase
> /Users/lucaspettey/ParaView-git/ParaView/VTK/Common/Core/vtkOStreamWrapper.h:36:7:
> note: 'vtkSmartPointerBase' declared here
> class vtkSmartPointerBase;
> ^
> /Users/lucaspettey/codes/BEC/coprocVTK.cxx:67:20: error: expected
> unqualified-id
> vtkSmartPointer<vtkDoubleArray> field =
> vtkSmartPointer<vtkDoubleArray>::New();
> ^
> /Users/lucaspettey/codes/BEC/coprocVTK.cxx:68:5: error: use of undeclared
> identifier 'field'
> field->SetNumberOfComponents(2);
> ^
> /Users/lucaspettey/codes/BEC/coprocVTK.cxx:69:5: error: use of undeclared
> identifier 'field'
> field->SetName(name);
> ^
> /Users/lucaspettey/codes/BEC/coprocVTK.cxx:70:5: error: use of undeclared
> identifier 'field'
> field->SetArray(scalars, 2* Image->GetNumberOfPoints(), 1);
> ^
> /Users/lucaspettey/codes/BEC/coprocVTK.cxx:71:37: error: use of undeclared
> identifier 'field'
> Image->GetPointData()->AddArray(field);
> ^
>
> Any help is appreciated.
>
> Thanks,
> Lucas
>
> ________________________________
> This electronic message transmission and any attachments that accompany it
> contain information from DRC® (Dynamics Research Corporation) or its
> subsidiaries, or the intended recipient, which is privileged, proprietary,
> business confidential, or otherwise protected from disclosure and is the
> exclusive property of DRC and/or the intended recipient. The information in
> this email is solely intended for the use of the individual or entity that
> is the intended recipient. If you are not the intended recipient, any use,
> dissemination, distribution, retention, or copying of this communication,
> attachments, or substance is prohibited. If you have received this
> electronic transmission in error, please immediately reply to the author
> via email that you received the message by mistake and also promptly and
> permanently delete this message and all copies of this email and any
> attachments. We thank you for your assistance and apologize for any
> inconvenience.
> _______________________________________________
> Powered by www.kitware.com<http://www.kitware.com><http://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<http://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/20130321/fa215af8/attachment.htm>
More information about the ParaView
mailing list