Changeset 16329
- Timestamp:
- 10/08/13 09:04:09 (11 years ago)
- Location:
- issm/trunk-jpl/src/wrappers/MeshPartition
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/wrappers/MeshPartition/MeshPartition.cpp
r15428 r16329 19 19 20 20 /* required input: */ 21 int dim;22 int 23 int 24 int 25 int 21 int meshtype; 22 int numberofelements; 23 int numberofvertices; 24 int *elements = NULL; 25 int elements_width; 26 26 27 27 int numberofelements2d; … … 45 45 46 46 /*Fetch data: */ 47 FetchData(&dim,mxGetAssignedField(MODEL,0,"dimension")); 48 FetchData(&numberofelements,mxGetAssignedField(MODEL,0,"numberofelements")); 49 FetchData(&numberofvertices,mxGetAssignedField(MODEL,0,"numberofvertices")); 50 FetchData(&elements,NULL,&elements_width,mxGetAssignedField(MODEL,0,"elements")); 47 FetchData(&numberofelements,mxGetAssignedField(MESH,0,"numberofelements")); 48 FetchData(&numberofvertices,mxGetAssignedField(MESH,0,"numberofvertices")); 49 FetchData(&elements,NULL,&elements_width,mxGetAssignedField(MESH,0,"elements")); 51 50 52 if (dim==3){ 53 FetchData(&numberofelements2d,mxGetAssignedField(MODEL,0,"numberofelements2d")); 54 FetchData(&numberofvertices2d,mxGetAssignedField(MODEL,0,"numberofvertices2d")); 55 FetchData(&elements2d,NULL,NULL,mxGetAssignedField(MODEL,0,"elements2d")); 51 if(strcmp(mxGetClassName(MESH),"mesh3d")==0){ 52 meshtype = Mesh3DEnum; 53 FetchData(&numberofelements2d,mxGetAssignedField(MESH,0,"numberofelements2d")); 54 FetchData(&numberofvertices2d,mxGetAssignedField(MESH,0,"numberofvertices2d")); 55 FetchData(&elements2d,NULL,NULL,mxGetAssignedField(MESH,0,"elements2d")); 56 FetchData(&numberoflayers,mxGetAssignedField(MESH,0,"numberoflayers")); 56 57 } 57 FetchData(&numberoflayers,mxGetAssignedField(MODEL,0,"numberoflayers")); 58 else if(strcmp(mxGetClassName(MESH),"mesh2dhorizontal")==0){ 59 meshtype = Mesh2DhorizontalEnum; 60 numberoflayers=1; 61 } 62 else if(strcmp(mxGetClassName(MESH),"mesh2dvertical")==0){ 63 meshtype = Mesh2DverticalEnum; 64 numberoflayers=1; 65 } 66 else{ 67 _error_("Mesh type "<<mxGetClassName(MESH)<<" not supported yet"); 68 } 58 69 FetchData(&numareas,NUMAREAS); 59 70 60 71 /*Run partitioning algorithm based on a "clever" use of the Metis partitioner: */ 61 72 MeshPartitionx(&int_element_partitioning,&int_node_partitioning,numberofelements,numberofvertices,elements, 62 numberofelements2d,numberofvertices2d,elements2d,numberoflayers,elements_width, dim,numareas);73 numberofelements2d,numberofvertices2d,elements2d,numberoflayers,elements_width,meshtype,numareas); 63 74 64 75 /*Post process node_partitioning and element_partitioning to be in double format. Metis needed them in int* format: */ -
issm/trunk-jpl/src/wrappers/MeshPartition/MeshPartition.h
r15106 r16329 27 27 #ifdef _HAVE_MATLAB_MODULES_ 28 28 /* serial input macros: */ 29 #define M ODELprhs[0]29 #define MESH prhs[0] 30 30 #define NUMAREAS prhs[1] 31 31 /* serial output macros: */ … … 36 36 #ifdef _HAVE_PYTHON_MODULES_ 37 37 /* serial input macros: */ 38 #define M ODELPyTuple_GetItem(args,0)38 #define MESH PyTuple_GetItem(args,0) 39 39 #define NUMAREAS PyTuple_GetItem(args,1) 40 40 /* serial output macros: */
Note:
See TracChangeset
for help on using the changeset viewer.