[vtkusers] Exodus issue
    John Vines (CISD/HPCD) 
    jvines at arl.army.mil
       
    Fri Jan 30 15:03:44 EST 2009
    
    
  
We believe we have found a 32 vs 64 bit bug in the Exodus support  We 
have made some alterations which seems to have addressed the problem. 
Here is the diff information for your review and comment:
Thanks for your time,
John
*vtkExodusModel.h* :
--- Hybrid/vtkExodusModel.h.orig    2006-09-10 00:16:31.000000000 -0400
+++ Hybrid/vtkExodusModel.h    2008-10-31 15:21:59.943483000 -0400
@@ -198,11 +198,13 @@
  static void CopyDoubleToFloat(float *f, double *d, int len);
  int SetLocalBlockInformation(
-          int fid, int use_floats, int *blockIds , int *cellIds, int 
ncells);
+      int fid, int use_floats, int *blockIds , vtkIdType *cellIds, int 
ncells);
  int SetLocalNodeSetInformation(
-                       int fid, int use_floats, int *pointIds, int 
npoints);
+                       int fid, int use_floats, vtkIdType *pointIds,
+               int npoints);
  int SetLocalSideSetInformation(
-                        int fid, int use_floats, int *cellIds, int 
ncells);
+                        int fid, int use_floats, vtkIdType *cellIds,
+            int ncells);
  void RemoveBeginningAndTrailingSpaces(char **names, int len);
*vtkExodusModel.cxx* :
--- Hybrid/vtkExodusModel.cxx.orig    2008-04-24 10:29:00.000000000 -0400
+++ Hybrid/vtkExodusModel.cxx    2008-10-31 15:21:52.994057000 -0400
@@ -22,6 +22,7 @@
#include "vtkUnstructuredGrid.h"
#include "vtkObjectFactory.h"
#include "vtkDataArray.h"
+#include "vtkIdTypeArray.h"
#include "vtkIntArray.h"
#include "vtkFloatArray.h"
#include "vtkCellData.h"
@@ -564,8 +565,8 @@
  // Check input
  int *blockIds = NULL;
-  int *cellIds = NULL;
-  int *pointIds = NULL;
+  vtkIdType *cellIds = NULL;
+  vtkIdType *pointIds = NULL;
  vtkDataArray *da = ugrid->GetCellData()->GetArray("BlockId");
  if (da)
@@ -580,7 +581,7 @@
  da = ugrid->GetCellData()->GetArray("GlobalElementId");
  if (da)
    {
-    vtkIntArray *ia = vtkIntArray::SafeDownCast(da);
+    vtkIdTypeArray *ia = vtkIdTypeArray::SafeDownCast(da);
    if (ia)
      {
      cellIds = ia->GetPointer(0);
@@ -590,7 +591,7 @@
  da = ugrid->GetPointData()->GetArray("GlobalNodeId");
  if (da)
    {
-    vtkIntArray *ia = vtkIntArray::SafeDownCast(da);
+    vtkIdTypeArray *ia = vtkIdTypeArray::SafeDownCast(da);
    if (ia)
      {
      pointIds = ia->GetPointer(0);
@@ -632,7 +633,7 @@
  return 0;
}
int vtkExodusModel::SetLocalBlockInformation(
-                int fid, int use_floats, int *blockIds , int *cellIds, 
int ncells)
+       int fid, int use_floats, int *blockIds , vtkIdType *cellIds, int 
ncells)
{
  int i;
@@ -762,7 +763,7 @@
  return 0;
}
int vtkExodusModel::SetLocalNodeSetInformation(
-        int fid, int use_floats, int *pointIds, int npoints)
+        int fid, int use_floats, vtkIdType *pointIds, int npoints)
{
  int i, j;
  float dummyFloat;
@@ -914,7 +915,7 @@
  return 0;
}
int vtkExodusModel::SetLocalSideSetInformation(
-        int fid, int use_floats, int *cellIds, int ncells)
+        int fid, int use_floats, vtkIdType *cellIds, int ncells)
{
  // TODO - go over this and check it
    
    
More information about the vtkusers
mailing list