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 <[email protected]> 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 > > 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
