Changeset 17487


Ignore:
Timestamp:
03/19/14 20:29:19 (11 years ago)
Author:
Mathieu Morlighem
Message:

BUG: make ElementsAndVerticesPartitioning work for any type of mesh

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp

    r17472 r17487  
    1717void  ElementsAndVerticesPartitioning(bool** pmy_elements, int** pmy_vertices, IoModel* iomodel){
    1818
    19         int i;
     19        int i,j;
    2020
    2121        const int RIFTINFOSIZE = 12;
     
    102102
    103103        /*Start figuring out, out of the partition, which elements belong to this cpu: */
    104         for (i=0;i<iomodel->numberofelements;i++){
     104        for(i=0;i<iomodel->numberofelements;i++){
    105105
    106106                /*!All elements have been partitioned above, only deal with elements for this cpu: */
    107107                if(my_rank==epart[i]){
    108 
    109108                        my_elements[i]=true;
    110 
    111109                        /*Now that we are here, we can also start building the list of vertices belonging to this cpu partition: we use
    112110                         *the  element index to do this. For each element n, we know index[n][0:2] holds the indices (matlab indexing)
    113111                         into the vertices coordinates. If we start plugging 1 into my_vertices for each index[n][i] (i=0:2), then my_vertices
    114112                         will hold which vertices belong to this partition*/
    115                         my_vertices[iomodel->elements[elements_width*i+0]-1]=1;
    116                         my_vertices[iomodel->elements[elements_width*i+1]-1]=1;
    117                         my_vertices[iomodel->elements[elements_width*i+2]-1]=1;
    118 
    119                         if(elements_width==6){
    120                                 my_vertices[iomodel->elements[elements_width*i+3]-1]=1;
    121                                 my_vertices[iomodel->elements[elements_width*i+4]-1]=1;
    122                                 my_vertices[iomodel->elements[elements_width*i+5]-1]=1;
     113                        for(j=0;j<elements_width;j++){
     114                                my_vertices[iomodel->elements[elements_width*i+j]-1]=1;
    123115                        }
    124116                }
Note: See TracChangeset for help on using the changeset viewer.