Changeset 16329


Ignore:
Timestamp:
10/08/13 09:04:09 (11 years ago)
Author:
Mathieu Morlighem
Message:

CHG: fixing MeshPartition with different meshes

Location:
issm/trunk-jpl/src/wrappers/MeshPartition
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/wrappers/MeshPartition/MeshPartition.cpp

    r15428 r16329  
    1919
    2020        /* required input: */
    21         int     dim;
    22         int     numberofelements;
    23         int     numberofvertices;
    24         int    *elements         = NULL;
    25         int     elements_width;
     21        int  meshtype;
     22        int  numberofelements;
     23        int  numberofvertices;
     24        int *elements         = NULL;
     25        int  elements_width;
    2626
    2727        int numberofelements2d;
     
    4545
    4646        /*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"));
    5150
    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"));
    5657        }
    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        }
    5869        FetchData(&numareas,NUMAREAS);
    5970
    6071        /*Run partitioning algorithm based on a "clever" use of the Metis partitioner: */
    6172        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);
    6374
    6475        /*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  
    2727#ifdef _HAVE_MATLAB_MODULES_
    2828/* serial input macros: */
    29 #define MODEL    prhs[0]
     29#define MESH    prhs[0]
    3030#define NUMAREAS prhs[1]
    3131/* serial output macros: */
     
    3636#ifdef _HAVE_PYTHON_MODULES_
    3737/* serial input macros: */
    38 #define MODEL    PyTuple_GetItem(args,0)
     38#define MESH     PyTuple_GetItem(args,0)
    3939#define NUMAREAS PyTuple_GetItem(args,1)
    4040/* serial output macros: */
Note: See TracChangeset for help on using the changeset viewer.