Changeset 16328


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

CHG: added support for mesh 2d vertical partitioning

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/MeshPartitionx/MeshPartitionx.h

    r16291 r16328  
    3333        switch(meshtype){
    3434                case Mesh2DhorizontalEnum:
     35                        epart=xNew<int>(numberofelements);
     36                        npart=xNew<int>(numberofnodes);
     37                        index=xNew<int>(elements_width*numberofelements);
     38                        for (i=0;i<numberofelements;i++){
     39                                for (j=0;j<elements_width;j++){
     40                                        *(index+elements_width*i+j)=(*(elements+elements_width*i+j))-1; //-1 for C indexing in Metis
     41                                }
     42                        }
     43
     44                        /*Partition using Metis:*/
     45                        if (num_procs>1){
     46#ifdef _HAVE_METIS_
     47                                METIS_PartMeshNodalPatch(&numberofelements,&numberofnodes, index, &etype, &numflag, &num_procs, &edgecut, epart, npart);
     48#else
     49                                _error_("metis has not beed installed. Cannot run with more than 1 cpu");
     50#endif
     51                        }
     52                        else if (num_procs==1){
     53                                /*METIS does not know how to deal with one cpu only!*/
     54                                for (i=0;i<numberofelements;i++) epart[i]=0;
     55                                for (i=0;i<numberofnodes;i++)    npart[i]=0;
     56                        }
     57                        else _error_("At least one processor is required");
     58                        break;
     59                case Mesh2DverticalEnum:
    3560                        epart=xNew<int>(numberofelements);
    3661                        npart=xNew<int>(numberofnodes);
Note: See TracChangeset for help on using the changeset viewer.