Ignore:
Timestamp:
08/28/18 09:45:51 (7 years ago)
Author:
Mathieu Morlighem
Message:

merged trunk-jpl and trunk for revision 23187

Location:
issm/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk

  • issm/trunk/src

  • issm/trunk/src/c/modules/ModelProcessorx/CreateNodes.cpp

    r22758 r23189  
    1515        int   numberoffaces,elementnbv;
    1616        int   id0 = iomodel->nodecounter;
    17         bool *my_faces = NULL;
    18         bool *my_edges = NULL;
    1917        bool *my_nodes = NULL;
    2018        Node *node     = NULL;
     
    7068
    7169                case P1xP2Enum:
    72                         EdgesPartitioning(&my_edges,iomodel);
     70                        EdgesPartitioning(iomodel);
    7371                        for(i=0;i<iomodel->numberofvertices;i++){
    7472                                if(iomodel->my_vertices[i]){
     
    8078                        for(i=0;i<iomodel->numberofedges;i++){
    8179                                if(iomodel->edges[i*3+2]==2){
    82                                         if(my_edges[i]){
     80                                        if(iomodel->my_edges[i]){
    8381                                                node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,iomodel,analysis,approximation);
    8482                                                nodes->AddObject(node);
     
    9088
    9189                case P1xP3Enum:
    92                         EdgesPartitioning(&my_edges,iomodel);
     90                        EdgesPartitioning(iomodel);
    9391                        for(i=0;i<iomodel->numberofvertices;i++){
    9492                                if(iomodel->my_vertices[i]){
     
    10098                        for(i=0;i<iomodel->numberofedges;i++){
    10199                                if(iomodel->edges[i*3+2]==2){
    102                                         if(my_edges[i]){
     100                                        if(iomodel->my_edges[i]){
    103101                                                node = new Node(id0+iomodel->numberofvertices+2*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
    104102                                                nodes->AddObject(node);
     
    111109                        break;
    112110                case P1xP4Enum:
    113                         EdgesPartitioning(&my_edges,iomodel);
     111                        EdgesPartitioning(iomodel);
    114112                        for(i=0;i<iomodel->numberofvertices;i++){
    115113                                if(iomodel->my_vertices[i]){
     
    120118                        for(i=0;i<iomodel->numberofedges;i++){
    121119                                if(iomodel->edges[i*3+2]==2){/*Vertical edges*/
    122                                         if(my_edges[i]){
     120                                        if(iomodel->my_edges[i]){
    123121                                                node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
    124122                                                nodes->AddObject(node);
     
    134132
    135133                case P2xP1Enum:
    136                         EdgesPartitioning(&my_edges,iomodel);
     134                        EdgesPartitioning(iomodel);
    137135                        for(i=0;i<iomodel->numberofvertices;i++){
    138136                                if(iomodel->my_vertices[i]){
     
    144142                        for(i=0;i<iomodel->numberofedges;i++){
    145143                                if(iomodel->edges[i*3+2]!=2){
    146                                         if(my_edges[i]){
     144                                        if(iomodel->my_edges[i]){
    147145                                                node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,iomodel,analysis,approximation);
    148146                                                nodes->AddObject(node);
     
    154152
    155153                case P2Enum:
    156                         EdgesPartitioning(&my_edges,iomodel);
    157                         for(i=0;i<iomodel->numberofvertices;i++){
    158                                 if(iomodel->my_vertices[i]){
    159                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
    160                                 }
    161                         }
    162                         for(i=0;i<iomodel->numberofedges;i++){
    163                                 if(my_edges[i]){
     154                        EdgesPartitioning(iomodel);
     155                        for(i=0;i<iomodel->numberofvertices;i++){
     156                                if(iomodel->my_vertices[i]){
     157                                        nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
     158                                }
     159                        }
     160                        for(i=0;i<iomodel->numberofedges;i++){
     161                                if(iomodel->my_edges[i]){
    164162                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation));
    165163                                }
     
    167165                        id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
    168166              if(iomodel->meshelementtype==PentaEnum){
    169                                 FacesPartitioning(&my_faces,iomodel);
     167                                FacesPartitioning(iomodel);
    170168                                for(i=0;i<iomodel->numberoffaces;i++){
    171169                                        if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    172                                                 if(my_faces[i]){
     170                                                if(iomodel->my_faces[i]){
    173171                                                        node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,approximation);
    174172                                                        nodes->AddObject(node);
     
    185183                        break;
    186184                case P2bubbleEnum:
    187                         EdgesPartitioning(&my_edges,iomodel);
    188                         for(i=0;i<iomodel->numberofvertices;i++){
    189                                 if(iomodel->my_vertices[i]){
    190                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
    191                                 }
    192                         }
    193                         for(i=0;i<iomodel->numberofedges;i++){
    194                                 if(my_edges[i]){
     185                        EdgesPartitioning(iomodel);
     186                        for(i=0;i<iomodel->numberofvertices;i++){
     187                                if(iomodel->my_vertices[i]){
     188                                        nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
     189                                }
     190                        }
     191                        for(i=0;i<iomodel->numberofedges;i++){
     192                                if(iomodel->my_edges[i]){
    195193                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation));
    196194                                }
     
    198196                        id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
    199197                        if(iomodel->meshelementtype==PentaEnum){
    200                                 FacesPartitioning(&my_faces,iomodel);
     198                                FacesPartitioning(iomodel);
    201199                                for(i=0;i<iomodel->numberoffaces;i++){
    202200                                        if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    203                                                 if(my_faces[i]){
     201                                                if(iomodel->my_faces[i]){
    204202                                                        node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,approximation);
    205203                                                        nodes->AddObject(node);
     
    222220                        break;
    223221                case P2xP4Enum:
    224                         EdgesPartitioning(&my_edges,iomodel);
    225                         FacesPartitioning(&my_faces,iomodel);
     222                        EdgesPartitioning(iomodel);
     223                        FacesPartitioning(iomodel);
    226224                        for(i=0;i<iomodel->numberofvertices;i++){
    227225                                if(iomodel->my_vertices[i]){
     
    232230                        for(i=0;i<iomodel->numberofedges;i++){
    233231                                if(iomodel->edges[i*3+2]==2){/*Vertical edges*/
    234                                         if(my_edges[i]){
     232                                        if(iomodel->my_edges[i]){
    235233                                                node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
    236234                                                nodes->AddObject(node);
     
    243241                                }
    244242                                else if(iomodel->edges[i*3+2]==1){/*Horizontal edges*/
    245                                         if(my_edges[i]){
     243                                        if(iomodel->my_edges[i]){
    246244                                                node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
    247245                                                nodes->AddObject(node);
     
    256254                        for(i=0;i<iomodel->numberoffaces;i++){
    257255                                if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    258                                         if(my_faces[i]){
     256                                        if(iomodel->my_faces[i]){
    259257                                                node = new Node(id0+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
    260258                                                nodes->AddObject(node);
     
    356354                        _assert_(approximation==FSApproximationEnum);
    357355                        /*P2 velocity*/
    358                         EdgesPartitioning(&my_edges,iomodel);
    359                         for(i=0;i<iomodel->numberofvertices;i++){
    360                                 if(iomodel->my_vertices[i]){
    361                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
    362                                 }
    363                         }
    364                         for(i=0;i<iomodel->numberofedges;i++){
    365                                 if(my_edges[i]){
     356                        EdgesPartitioning(iomodel);
     357                        for(i=0;i<iomodel->numberofvertices;i++){
     358                                if(iomodel->my_vertices[i]){
     359                                        nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
     360                                }
     361                        }
     362                        for(i=0;i<iomodel->numberofedges;i++){
     363                                if(iomodel->my_edges[i]){
    366364                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
    367365                                }
     
    369367                        id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
    370368              if(iomodel->meshelementtype==PentaEnum){
    371                                 FacesPartitioning(&my_faces,iomodel);
     369                                FacesPartitioning(iomodel);
    372370                                for(i=0;i<iomodel->numberoffaces;i++){
    373371                                        if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    374                                                 if(my_faces[i]){
     372                                                if(iomodel->my_faces[i]){
    375373                                                        node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum);
    376374                                                        nodes->AddObject(node);
     
    403401                        _assert_(approximation==FSApproximationEnum);
    404402                        /*P2 velocity*/
    405                         EdgesPartitioning(&my_edges,iomodel);
    406                         for(i=0;i<iomodel->numberofvertices;i++){
    407                                 if(iomodel->my_vertices[i]){
    408                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
    409                                 }
    410                         }
    411                         for(i=0;i<iomodel->numberofedges;i++){
    412                                 if(my_edges[i]){
     403                        EdgesPartitioning(iomodel);
     404                        for(i=0;i<iomodel->numberofvertices;i++){
     405                                if(iomodel->my_vertices[i]){
     406                                        nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
     407                                }
     408                        }
     409                        for(i=0;i<iomodel->numberofedges;i++){
     410                                if(iomodel->my_edges[i]){
    413411                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
    414412                                }
     
    416414                        id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
    417415              if(iomodel->meshelementtype==PentaEnum){
    418                                 FacesPartitioning(&my_faces,iomodel);
     416                                FacesPartitioning(iomodel);
    419417                                for(i=0;i<iomodel->numberoffaces;i++){
    420418                                        if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    421                                                 if(my_faces[i]){
     419                                                if(iomodel->my_faces[i]){
    422420                                                        node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum);
    423421                                                        nodes->AddObject(node);
     
    437435                case OneLayerP4zEnum:
    438436                        _assert_(approximation==FSApproximationEnum);
    439                         EdgesPartitioning(&my_edges,iomodel);
    440                         FacesPartitioning(&my_faces,iomodel);
     437                        EdgesPartitioning(iomodel);
     438                        FacesPartitioning(iomodel);
    441439                        /*P2xP4 velocity*/
    442440                        for(i=0;i<iomodel->numberofvertices;i++){
     
    448446                        for(i=0;i<iomodel->numberofedges;i++){
    449447                                if(iomodel->edges[i*3+2]==2){/*Vertical edges*/
    450                                         if(my_edges[i]){
     448                                        if(iomodel->my_edges[i]){
    451449                                                node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum);
    452450                                                nodes->AddObject(node);
     
    459457                                }
    460458                                else if(iomodel->edges[i*3+2]==1){/*Horizontal edges*/
    461                                         if(my_edges[i]){
     459                                        if(iomodel->my_edges[i]){
    462460                                                node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum);
    463461                                                nodes->AddObject(node);
     
    472470                        for(i=0;i<iomodel->numberoffaces;i++){
    473471                                if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    474                                         if(my_faces[i]){
     472                                        if(iomodel->my_faces[i]){
    475473                                                node = new Node(id0+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum);
    476474                                                nodes->AddObject(node);
     
    502500                        _assert_(approximation==FSApproximationEnum);
    503501                        /*P2b velocity*/
    504                         EdgesPartitioning(&my_edges,iomodel);
    505                         for(i=0;i<iomodel->numberofvertices;i++){
    506                                 if(iomodel->my_vertices[i]){
    507                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
    508                                 }
    509                         }
    510                         for(i=0;i<iomodel->numberofedges;i++){
    511                                 if(my_edges[i]){
     502                        EdgesPartitioning(iomodel);
     503                        for(i=0;i<iomodel->numberofvertices;i++){
     504                                if(iomodel->my_vertices[i]){
     505                                        nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
     506                                }
     507                        }
     508                        for(i=0;i<iomodel->numberofedges;i++){
     509                                if(iomodel->my_edges[i]){
    512510                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
    513511                                }
     
    515513                        id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
    516514                        if(iomodel->meshelementtype==PentaEnum){
    517                                 FacesPartitioning(&my_faces,iomodel);
     515                                FacesPartitioning(iomodel);
    518516                                for(i=0;i<iomodel->numberoffaces;i++){
    519517                                        if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    520                                                 if(my_faces[i]){
     518                                                if(iomodel->my_faces[i]){
    521519                                                        node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum);
    522520                                                        nodes->AddObject(node);
     
    558556                        _assert_(approximation==FSApproximationEnum);
    559557                        /*P2b velocity*/
    560                         EdgesPartitioning(&my_edges,iomodel);
    561                         for(i=0;i<iomodel->numberofvertices;i++){
    562                                 if(iomodel->my_vertices[i]){
    563                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
    564                                 }
    565                         }
    566                         for(i=0;i<iomodel->numberofedges;i++){
    567                                 if(my_edges[i]){
     558                        EdgesPartitioning(iomodel);
     559                        for(i=0;i<iomodel->numberofvertices;i++){
     560                                if(iomodel->my_vertices[i]){
     561                                        nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
     562                                }
     563                        }
     564                        for(i=0;i<iomodel->numberofedges;i++){
     565                                if(iomodel->my_edges[i]){
    568566                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
    569567                                }
     
    571569                        id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
    572570                        if(iomodel->meshelementtype==PentaEnum){
    573                                 FacesPartitioning(&my_faces,iomodel);
     571                                FacesPartitioning(iomodel);
    574572                                for(i=0;i<iomodel->numberoffaces;i++){
    575573                                        if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    576                                                 if(my_faces[i]){
     574                                                if(iomodel->my_faces[i]){
    577575                                                        node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum);
    578576                                                        nodes->AddObject(node);
     
    602600
    603601        /*Clean up*/
    604         xDelete<bool>(my_faces);
    605         xDelete<bool>(my_edges);
    606602        xDelete<bool>(my_nodes);
    607603}
Note: See TracChangeset for help on using the changeset viewer.