Changeset 2845
- Timestamp:
- May 11, 2006, 3:10:59 PM (19 years ago)
- Location:
- inundation/pymetis
- Files:
-
- 1 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
inundation/pymetis/pymetis/metis.c
r2842 r2845 42 42 */ 43 43 static PyObject * metis_partMeshNodal(PyObject * self, PyObject * args){ 44 int i; 44 45 int ne; 45 46 int nn; … … 56 57 57 58 /* These are all of the metis idxtype */ 59 idxtype * elem_c_arr; 58 60 idxtype * epart; 59 61 idxtype * npart; … … 61 63 return NULL; 62 64 63 elem_arr = (PyArrayObject *) PyArray_ContiguousFromObject(elements, PyArray_ INT, 1, 1);65 elem_arr = (PyArrayObject *) PyArray_ContiguousFromObject(elements, PyArray_NOTYPE, 1, 1); 64 66 65 67 if(!elem_arr) 66 68 return NULL; 69 70 /* x86_64 will create arrays of longs and they need to be 71 * converted to arrays of idxtype for metis to work on them. 72 */ 73 if(elem_arr->descr->type_num == PyArray_LONG){ 74 elem_c_arr = (idxtype *)malloc(*(elem_arr->dimensions) * sizeof(idxtype)); 75 if(!elem_c_arr) 76 return NULL; 77 for(i = 0 ; i < *(elem_arr->dimensions) ; i++){ 78 elem_c_arr[i] = (idxtype)(((long *)elem_arr->data)[i]); 79 if(elem_c_arr[i] != ((long *)elem_arr->data)[i]) /* i.e. downcast failed */ 80 return null; 81 } 82 }else 83 elem_c_arr = (idxtype *)elem_arr->data; 67 84 68 85 epart = (idxtype *)malloc(ne * sizeof(idxtype)); … … 77 94 return NULL; 78 95 } 79 bridge_partMeshNodal(&ne, &nn, (idxtype *)elem_arr->data, &etype, &numflag, &nparts, &edgecut, epart, npart);96 bridge_partMeshNodal(&ne, &nn, elem_c_arr, &etype, &numflag, &nparts, &edgecut, epart, npart); 80 97 81 98 dims[0] = ne; -
inundation/pymetis/test_metis.py
r2842 r2845 1 #!/usr/bin/env python 1 2 from os import sep 2 3 from sys import path
Note: See TracChangeset
for help on using the changeset viewer.