Changeset 23559


Ignore:
Timestamp:
12/17/18 21:06:05 (6 years ago)
Author:
Mathieu Morlighem
Message:

NEW: added pids to nodes, for communication purposes

Location:
issm/trunk-jpl/src/c
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r23532 r23559  
    558558                                        approximation=IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]));
    559559                                        if(approximation==FSApproximationEnum)  approximation=FSvelocityEnum;
    560                                         nodes->AddObject(new Node(i+1,i,lid++,i,iomodel,StressbalanceAnalysisEnum,approximation));
     560                                        nodes->AddObject(new Node(i+1,i,lid++,0,i,iomodel,StressbalanceAnalysisEnum,approximation));
    561561                                }
    562562                        }
    563563                        for(int i=0;i<iomodel->numberofelements;i++){
    564564                                if(iomodel->my_elements[i]){
    565                                         node = new Node(iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,StressbalanceAnalysisEnum,FSvelocityEnum);
     565                                        node = new Node(iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,StressbalanceAnalysisEnum,FSvelocityEnum);
    566566                                        node->Deactivate();
    567567                                        nodes->AddObject(node);
     
    572572                                if(iomodel->my_vertices[i]){
    573573                                        approximation=IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]));
    574                                         node = new Node(iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,StressbalanceAnalysisEnum,FSpressureEnum);
     574                                        node = new Node(iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,0,i,iomodel,StressbalanceAnalysisEnum,FSpressureEnum);
    575575                                        if(approximation==HOApproximationEnum || approximation==SSAApproximationEnum){
    576576                                                node->Deactivate();
     
    583583                        for(int i=0;i<iomodel->numberofvertices;i++){
    584584                                if(iomodel->my_vertices[i]){
    585                                         nodes->AddObject(new Node(i+1,i,lid++,i,iomodel,StressbalanceAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]))));
     585                                        nodes->AddObject(new Node(i+1,i,lid++,0,i,iomodel,StressbalanceAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]))));
    586586                                }
    587587                        }
  • issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp

    r23532 r23559  
    9999
    100100                        /*Create new node if is in this processor's partition*/
    101                         node = new Node(i+1,i,lid++,i,iomodel,StressbalanceSIAAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i])));
     101                        node = new Node(i+1,i,lid++,0,i,iomodel,StressbalanceSIAAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i])));
    102102
    103103                        /*Deactivate node if not SIA*/
  • issm/trunk-jpl/src/c/classes/Node.cpp

    r23066 r23559  
    2121}
    2222/*}}}*/
    23 Node::Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int in_approximation){/*{{{*/
     23Node::Node(int node_id,int node_sid,int node_lid,int node_pid,int io_index, IoModel* iomodel,int analysis_enum,int in_approximation){/*{{{*/
    2424
    2525        /*Intermediary*/
     
    3131        this->sid           = node_sid;
    3232        this->lid           = node_lid;
     33        this->pid           = node_pid;
    3334        this->analysis_enum = analysis_enum;
    3435
     
    137138        output->sid = this->sid;
    138139        output->lid = this->lid;
     140        output->pid = this->pid;
    139141        output->analysis_enum = this->analysis_enum;
    140142        output->approximation = this->approximation;
     
    156158        MARSHALLING(sid);
    157159        MARSHALLING(lid);
     160        MARSHALLING(pid);
    158161        MARSHALLING(indexingupdate);
    159162        indexing.Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
     
    182185        _printf_("   id : " << id << "\n");
    183186        _printf_("   sid: " << sid << "\n");
     187        _printf_("   lid: " << lid << "\n");
     188        _printf_("   pid: " << pid << "\n");
    184189        _printf_("   analysis_enum: " << EnumToStringx(analysis_enum) << "\n");
    185190        _printf_("   approximation: " << EnumToStringx(approximation) << "\n");
  • issm/trunk-jpl/src/c/classes/Node.h

    r23524 r23559  
    3232                int sid;   // "serial" id (rank of this node if the dataset was serial on 1 cpu)
    3333                int lid;   // "local"  id (rank of this node in current partition)
     34                int pid;   // parallel id (specific to this partition)
    3435
    3536                int          analysis_enum;
     
    4041                /*Node constructors, destructors*/
    4142                Node();
    42                 Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int approximation_in);
     43                Node(int node_id,int node_sid,int node_lid,int node_pid,int io_index, IoModel* iomodel,int analysis_enum,int approximation_in);
    4344                ~Node();
    4445
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp

    r23532 r23559  
    268268        for(int i=0;i<MAXCONNECTIVITY*iomodel->numberofvertices;i++) vertices_ranks[i] = -1;
    269269
    270         /*For all vertices, cound how many cpus hold vertex i (initialize with 0)*/
     270        /*For all vertices, count how many cpus hold vertex i (initialize with 0)*/
    271271        int* vertices_proc_count = xNewZeroInit<int>(iomodel->numberofvertices);
    272272
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp

    r23533 r23559  
    2222                        for(i=0;i<iomodel->numberofvertices;i++){
    2323                                if(iomodel->my_vertices[i]){
    24                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
     24                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
    2525                                }
    2626                        }
     
    3232                                for(j=0;j<3;j++){
    3333                                        if(my_nodes[3*i+j]){
    34                                                 nodes->AddObject(new Node(id0+3*i+j+1,id0+3*i+j,lid++,iomodel->elements[3*i+j]-1,iomodel,analysis,approximation));
     34                                                nodes->AddObject(new Node(id0+3*i+j+1,id0+3*i+j,lid++,0,iomodel->elements[3*i+j]-1,iomodel,analysis,approximation));
    3535
    3636                                        }
     
    4242                        for(i=0;i<iomodel->numberofvertices;i++){
    4343                                if(iomodel->my_vertices[i]){
    44                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
    45                                 }
    46                         }
    47                         for(i=0;i<iomodel->numberofelements;i++){
    48                                 if(iomodel->my_elements[i]){
    49                                         nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation));
     44                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
     45                                }
     46                        }
     47                        for(i=0;i<iomodel->numberofelements;i++){
     48                                if(iomodel->my_elements[i]){
     49                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation));
    5050                                }
    5151                        }
     
    5555                        for(i=0;i<iomodel->numberofvertices;i++){
    5656                                if(iomodel->my_vertices[i]){
    57                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
    58                                 }
    59                         }
    60                         for(i=0;i<iomodel->numberofelements;i++){
    61                                 if(iomodel->my_elements[i]){
    62                                         node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation);
     57                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
     58                                }
     59                        }
     60                        for(i=0;i<iomodel->numberofelements;i++){
     61                                if(iomodel->my_elements[i]){
     62                                        node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation);
    6363                                        node->HardDeactivate();
    6464                                        nodes->AddObject(node);
     
    7171                        for(i=0;i<iomodel->numberofvertices;i++){
    7272                                if(iomodel->my_vertices[i]){
    73                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
     73                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
    7474                                }
    7575                        }
     
    7979                                if(iomodel->edges[i*3+2]==2){
    8080                                        if(iomodel->my_edges[i]){
    81                                                 node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,iomodel,analysis,approximation);
     81                                                node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
    8282                                                nodes->AddObject(node);
    8383                                        }
     
    9191                        for(i=0;i<iomodel->numberofvertices;i++){
    9292                                if(iomodel->my_vertices[i]){
    93                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
     93                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
    9494                                }
    9595                        }
     
    9999                                if(iomodel->edges[i*3+2]==2){
    100100                                        if(iomodel->my_edges[i]){
    101                                                 node = new Node(id0+iomodel->numberofvertices+2*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
    102                                                 nodes->AddObject(node);
    103                                                 node = new Node(id0+iomodel->numberofvertices+2*i+2,counter+2,lid++,0,iomodel,analysis,approximation);
     101                                                node = new Node(id0+iomodel->numberofvertices+2*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
     102                                                nodes->AddObject(node);
     103                                                node = new Node(id0+iomodel->numberofvertices+2*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation);
    104104                                                nodes->AddObject(node);
    105105                                        }
     
    112112                        for(i=0;i<iomodel->numberofvertices;i++){
    113113                                if(iomodel->my_vertices[i]){
    114                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
     114                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
    115115                                }
    116116                        }
     
    119119                                if(iomodel->edges[i*3+2]==2){/*Vertical edges*/
    120120                                        if(iomodel->my_edges[i]){
    121                                                 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
    122                                                 nodes->AddObject(node);
    123                                                 node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,iomodel,analysis,approximation);
    124                                                 nodes->AddObject(node);
    125                                                 node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,iomodel,analysis,approximation);
     121                                                node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
     122                                                nodes->AddObject(node);
     123                                                node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation);
     124                                                nodes->AddObject(node);
     125                                                node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,0,iomodel,analysis,approximation);
    126126                                                nodes->AddObject(node);
    127127                                        }
     
    135135                        for(i=0;i<iomodel->numberofvertices;i++){
    136136                                if(iomodel->my_vertices[i]){
    137                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
     137                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
    138138                                }
    139139                        }
     
    143143                                if(iomodel->edges[i*3+2]!=2){
    144144                                        if(iomodel->my_edges[i]){
    145                                                 node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,iomodel,analysis,approximation);
     145                                                node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
    146146                                                nodes->AddObject(node);
    147147                                        }
     
    155155                        for(i=0;i<iomodel->numberofvertices;i++){
    156156                                if(iomodel->my_vertices[i]){
    157                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
     157                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
    158158                                }
    159159                        }
    160160                        for(i=0;i<iomodel->numberofedges;i++){
    161161                                if(iomodel->my_edges[i]){
    162                                         nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation));
     162                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation));
    163163                                }
    164164                        }
     
    169169                                        if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    170170                                                if(iomodel->my_faces[i]){
    171                                                         node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,approximation);
     171                                                        node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,approximation);
    172172                                                        nodes->AddObject(node);
    173173                                                }
     
    186186                        for(i=0;i<iomodel->numberofvertices;i++){
    187187                                if(iomodel->my_vertices[i]){
    188                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
     188                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
    189189                                }
    190190                        }
    191191                        for(i=0;i<iomodel->numberofedges;i++){
    192192                                if(iomodel->my_edges[i]){
    193                                         nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation));
     193                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation));
    194194                                }
    195195                        }
     
    200200                                        if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    201201                                                if(iomodel->my_faces[i]){
    202                                                         node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,approximation);
     202                                                        node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,approximation);
    203203                                                        nodes->AddObject(node);
    204204                                                }
     
    215215                        for(i=0;i<iomodel->numberofelements;i++){
    216216                                if(iomodel->my_elements[i]){
    217                                         nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,iomodel,analysis,approximation));
     217                                        nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,0,iomodel,analysis,approximation));
    218218                                }
    219219                        }
     
    224224                        for(i=0;i<iomodel->numberofvertices;i++){
    225225                                if(iomodel->my_vertices[i]){
    226                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
     226                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
    227227                                }
    228228                        }
     
    231231                                if(iomodel->edges[i*3+2]==2){/*Vertical edges*/
    232232                                        if(iomodel->my_edges[i]){
    233                                                 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
    234                                                 nodes->AddObject(node);
    235                                                 node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,iomodel,analysis,approximation);
    236                                                 nodes->AddObject(node);
    237                                                 node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,iomodel,analysis,approximation);
     233                                                node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
     234                                                nodes->AddObject(node);
     235                                                node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation);
     236                                                nodes->AddObject(node);
     237                                                node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,0,iomodel,analysis,approximation);
    238238                                                nodes->AddObject(node);
    239239                                        }
     
    242242                                else if(iomodel->edges[i*3+2]==1){/*Horizontal edges*/
    243243                                        if(iomodel->my_edges[i]){
    244                                                 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
     244                                                node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
    245245                                                nodes->AddObject(node);
    246246                                        }
     
    255255                                if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    256256                                        if(iomodel->my_faces[i]){
    257                                                 node = new Node(id0+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
    258                                                 nodes->AddObject(node);
    259                                                 node = new Node(id0+3*i+2,counter+2,lid++,0,iomodel,analysis,approximation);
    260                                                 nodes->AddObject(node);
    261                                                 node = new Node(id0+3*i+3,counter+3,lid++,0,iomodel,analysis,approximation);
     257                                                node = new Node(id0+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
     258                                                nodes->AddObject(node);
     259                                                node = new Node(id0+3*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation);
     260                                                nodes->AddObject(node);
     261                                                node = new Node(id0+3*i+3,counter+3,lid++,0,0,iomodel,analysis,approximation);
    262262                                                nodes->AddObject(node);
    263263                                        }
     
    279279                        for(i=0;i<iomodel->numberofvertices;i++){
    280280                                if(iomodel->my_vertices[i]){
    281                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
     281                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
    282282                                }
    283283                        }
     
    286286                        for(i=0;i<iomodel->numberofvertices;i++){
    287287                                if(iomodel->my_vertices[i]){
    288                                         nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,i,iomodel,analysis,FSpressureEnum));
     288                                        nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,0,i,iomodel,analysis,FSpressureEnum));
    289289                                }
    290290                        }
     
    295295                        for(i=0;i<iomodel->numberofvertices;i++){
    296296                                if(iomodel->my_vertices[i]){
    297                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
     297                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
    298298                                }
    299299                        }
     
    302302                        for(i=0;i<iomodel->numberofvertices;i++){
    303303                                if(iomodel->my_vertices[i]){
    304                                         nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,i,iomodel,analysis,FSpressureEnum));
     304                                        nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,0,i,iomodel,analysis,FSpressureEnum));
    305305                                }
    306306                        }
     
    311311                        for(i=0;i<iomodel->numberofvertices;i++){
    312312                                if(iomodel->my_vertices[i]){
    313                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
    314                                 }
    315                         }
    316                         for(i=0;i<iomodel->numberofelements;i++){
    317                                 if(iomodel->my_elements[i]){
    318                                         node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum);
     313                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
     314                                }
     315                        }
     316                        for(i=0;i<iomodel->numberofelements;i++){
     317                                if(iomodel->my_elements[i]){
     318                                        node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum);
    319319                                        node->HardDeactivate();
    320320                                        nodes->AddObject(node);
     
    325325                        for(i=0;i<iomodel->numberofvertices;i++){
    326326                                if(iomodel->my_vertices[i]){
    327                                         nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,analysis,FSpressureEnum));
     327                                        nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,0,i,iomodel,analysis,FSpressureEnum));
    328328                                }
    329329                        }
     
    334334                        for(i=0;i<iomodel->numberofvertices;i++){
    335335                                if(iomodel->my_vertices[i]){
    336                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
    337                                 }
    338                         }
    339                         for(i=0;i<iomodel->numberofelements;i++){
    340                                 if(iomodel->my_elements[i]){
    341                                         nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
     336                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
     337                                }
     338                        }
     339                        for(i=0;i<iomodel->numberofelements;i++){
     340                                if(iomodel->my_elements[i]){
     341                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
    342342                                }
    343343                        }
     
    346346                        for(i=0;i<iomodel->numberofvertices;i++){
    347347                                if(iomodel->my_vertices[i]){
    348                                         nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,analysis,FSpressureEnum));
     348                                        nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,0,i,iomodel,analysis,FSpressureEnum));
    349349                                }
    350350                        }
     
    357357                        for(i=0;i<iomodel->numberofvertices;i++){
    358358                                if(iomodel->my_vertices[i]){
    359                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
     359                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
    360360                                }
    361361                        }
    362362                        for(i=0;i<iomodel->numberofedges;i++){
    363363                                if(iomodel->my_edges[i]){
    364                                         nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
     364                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
    365365                                }
    366366                        }
     
    371371                                        if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    372372                                                if(iomodel->my_faces[i]){
    373                                                         node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum);
     373                                                        node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum);
    374374                                                        nodes->AddObject(node);
    375375                                                }
     
    394394                        for(i=0;i<iomodel->numberofvertices;i++){
    395395                                if(iomodel->my_vertices[i]){
    396                                         nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofedges+numberoffaces+i,lid++,i,iomodel,analysis,FSpressureEnum));
     396                                        nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofedges+numberoffaces+i,lid++,0,i,iomodel,analysis,FSpressureEnum));
    397397                                }
    398398                        }
     
    404404                        for(i=0;i<iomodel->numberofvertices;i++){
    405405                                if(iomodel->my_vertices[i]){
    406                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
     406                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
    407407                                }
    408408                        }
    409409                        for(i=0;i<iomodel->numberofedges;i++){
    410410                                if(iomodel->my_edges[i]){
    411                                         nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
     411                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
    412412                                }
    413413                        }
     
    418418                                        if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    419419                                                if(iomodel->my_faces[i]){
    420                                                         node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum);
     420                                                        node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum);
    421421                                                        nodes->AddObject(node);
    422422                                                }
     
    440440                        for(i=0;i<iomodel->numberofvertices;i++){
    441441                                if(iomodel->my_vertices[i]){
    442                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
     442                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
    443443                                }
    444444                        }
     
    447447                                if(iomodel->edges[i*3+2]==2){/*Vertical edges*/
    448448                                        if(iomodel->my_edges[i]){
    449                                                 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum);
    450                                                 nodes->AddObject(node);
    451                                                 node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,iomodel,analysis,FSvelocityEnum);
    452                                                 nodes->AddObject(node);
    453                                                 node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,iomodel,analysis,FSvelocityEnum);
     449                                                node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,FSvelocityEnum);
     450                                                nodes->AddObject(node);
     451                                                node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,0,iomodel,analysis,FSvelocityEnum);
     452                                                nodes->AddObject(node);
     453                                                node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,0,iomodel,analysis,FSvelocityEnum);
    454454                                                nodes->AddObject(node);
    455455                                        }
     
    458458                                else if(iomodel->edges[i*3+2]==1){/*Horizontal edges*/
    459459                                        if(iomodel->my_edges[i]){
    460                                                 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum);
     460                                                node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,FSvelocityEnum);
    461461                                                nodes->AddObject(node);
    462462                                        }
     
    471471                                if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    472472                                        if(iomodel->my_faces[i]){
    473                                                 node = new Node(id0+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum);
    474                                                 nodes->AddObject(node);
    475                                                 node = new Node(id0+3*i+2,counter+2,lid++,0,iomodel,analysis,FSvelocityEnum);
    476                                                 nodes->AddObject(node);
    477                                                 node = new Node(id0+3*i+3,counter+3,lid++,0,iomodel,analysis,FSvelocityEnum);
     473                                                node = new Node(id0+3*i+1,counter+1,lid++,0,0,iomodel,analysis,FSvelocityEnum);
     474                                                nodes->AddObject(node);
     475                                                node = new Node(id0+3*i+2,counter+2,lid++,0,0,iomodel,analysis,FSvelocityEnum);
     476                                                nodes->AddObject(node);
     477                                                node = new Node(id0+3*i+3,counter+3,lid++,0,0,iomodel,analysis,FSvelocityEnum);
    478478                                                nodes->AddObject(node);
    479479                                        }
     
    492492                        for(i=0;i<iomodel->numberofvertices;i++){
    493493                                if(iomodel->my_vertices[i]){
    494                                         nodes->AddObject(new Node(vnodes+i+1,counter+1,lid++,i,iomodel,analysis,FSpressureEnum));
     494                                        nodes->AddObject(new Node(vnodes+i+1,counter+1,lid++,0,i,iomodel,analysis,FSpressureEnum));
    495495                                }
    496496                                counter++;
     
    503503                        for(i=0;i<iomodel->numberofvertices;i++){
    504504                                if(iomodel->my_vertices[i]){
    505                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
     505                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
    506506                                }
    507507                        }
    508508                        for(i=0;i<iomodel->numberofedges;i++){
    509509                                if(iomodel->my_edges[i]){
    510                                         nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
     510                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
    511511                                }
    512512                        }
     
    517517                                        if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    518518                                                if(iomodel->my_faces[i]){
    519                                                         node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum);
     519                                                        node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum);
    520520                                                        nodes->AddObject(node);
    521521                                                }
     
    532532                        for(i=0;i<iomodel->numberofelements;i++){
    533533                                if(iomodel->my_elements[i]){
    534                                         nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,iomodel,analysis,FSvelocityEnum));
     534                                        nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
    535535                                }
    536536                        }
     
    547547                                if(iomodel->my_elements[i]){
    548548                                        for(j=0;j<elementnbv;j++){
    549                                                 nodes->AddObject(new Node(vnodes+elementnbv*i+j+1,vnodes+elementnbv*i+j,lid++,iomodel->elements[+elementnbv*i+j]-1,iomodel,analysis,FSpressureEnum));
     549                                                nodes->AddObject(new Node(vnodes+elementnbv*i+j+1,vnodes+elementnbv*i+j,lid++,0,iomodel->elements[+elementnbv*i+j]-1,iomodel,analysis,FSpressureEnum));
    550550
    551551                                        }
     
    559559                        for(i=0;i<iomodel->numberofvertices;i++){
    560560                                if(iomodel->my_vertices[i]){
    561                                         nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
     561                                        nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
    562562                                }
    563563                        }
    564564                        for(i=0;i<iomodel->numberofedges;i++){
    565565                                if(iomodel->my_edges[i]){
    566                                         nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
     566                                        nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
    567567                                }
    568568                        }
     
    573573                                        if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
    574574                                                if(iomodel->my_faces[i]){
    575                                                         node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum);
     575                                                        node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum);
    576576                                                        nodes->AddObject(node);
    577577                                                }
     
    588588                        for(i=0;i<iomodel->numberofelements;i++){
    589589                                if(iomodel->my_elements[i]){
    590                                         nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,iomodel,analysis,FSvelocityEnum));
     590                                        nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
    591591                                }
    592592                        }
Note: See TracChangeset for help on using the changeset viewer.