Changeset 12574


Ignore:
Timestamp:
06/27/12 15:27:39 (13 years ago)
Author:
Mathieu Morlighem
Message:

edges now do not hold NaN anymore but -1, no more cast from double to int in edges

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

Legend:

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

    r12571 r12574  
    6969        bool*   my_nodes=NULL;
    7070
    71         int     i1,i2;
    72         int     cols;
    73         IssmDouble  e1,e2;
    74         int     pos;
    75         int     numberofedges;
    76         IssmDouble* edges=NULL;
    77         IssmDouble* elements=NULL;
     71        int  i1,i2;
     72        int  cols;
     73        int  e1,e2;
     74        int  pos;
     75        int  numberofedges;
     76        int *edges         = NULL;
     77        int *elements      = NULL;
    7878
    7979        /*Fetch parameters: */
     
    125125                 * we must clone the nodes on this partition so that the loads (Numericalflux)
    126126                 * will have access to their properties (dofs,...)*/
    127                 if(my_elements[reCast<int>(e1)] && !xIsNan<IssmDouble>(e2) && !my_elements[reCast<int>(e2)]){
     127                if(my_elements[e1] && e2!=-2 && !my_elements[e2]){
    128128
    129129                        /*1: Get vertices ids*/
    130                         i1=reCast<int>(edges[4*i+0]);
    131                         i2=reCast<int>(edges[4*i+1]);
     130                        i1=edges[4*i+0];
     131                        i2=edges[4*i+1];
    132132
    133133                        /*2: Get the column where these ids are located in the index*/
    134134                        pos=UNDEF;
    135135                        for(j=0;j<3;j++){
    136                                 if (reCast<int>(elements[3*(reCast<int>(e2))+j])==i1) pos=j;
     136                                if (elements[3*e2+j]==i1) pos=j;
    137137                        }
    138138
     
    140140                         * we can now create the corresponding nodes:*/
    141141                        if (pos==0){
    142                                 my_nodes[reCast<int>(e2)*3+0]=true;
    143                                 my_nodes[reCast<int>(e2)*3+2]=true;
     142                                my_nodes[e2*3+0]=true;
     143                                my_nodes[e2*3+2]=true;
    144144                        }
    145145                        else if(pos==1){
    146                                 my_nodes[reCast<int>(e2)*3+1]=true;
    147                                 my_nodes[reCast<int>(e2)*3+0]=true;
     146                                my_nodes[e2*3+1]=true;
     147                                my_nodes[e2*3+0]=true;
    148148                        }
    149149                        else if (pos==2){
    150                                 my_nodes[reCast<int>(e2)*3+2]=true;
    151                                 my_nodes[reCast<int>(e2)*3+1]=true;
     150                                my_nodes[e2*3+2]=true;
     151                                my_nodes[e2*3+1]=true;
    152152                        }
    153153                        else{
     
    158158
    159159        /*Free data: */
    160         xDelete<IssmDouble>(elements);
    161         xDelete<IssmDouble>(edges);
     160        xDelete<int>(elements);
     161        xDelete<int>(edges);
    162162
    163163        /*Assign output pointers:*/
  • TabularUnified issm/trunk-jpl/src/c/objects/Bamg/Mesh.cpp

    r12520 r12574  
    618618                double* elemedge=NULL;
    619619                elemedge=xNew<double>(3*nbt);
    620                 for (i=0;i<3*nbt;i++) elemedge[i]=NAN;
     620                for (i=0;i<3*nbt;i++) elemedge[i]=-2.;//will become -1
    621621                k=0;
    622622                for (i=0;i<nbt;i++){
  • TabularUnified issm/trunk-jpl/src/c/objects/IoModel.cpp

    r12552 r12574  
    474474        extern int my_rank;
    475475        extern int num_procs;
    476        
    477476
    478477        /*output: */
     
    496495        /*Assign output pointers: */
    497496        *pinteger=integer;
    498 
    499497}
    500498/*}}}*/
  • TabularUnified issm/trunk-jpl/src/c/objects/Loads/Numericalflux.cpp

    r12557 r12574  
    5959        numericalflux_mparid=numberofelements+1; //matlab indexing
    6060
    61         /*First, see wether this is an internal or boundary edge (if e2=NaN)*/
    62         if (xIsNan<IssmDouble>((IssmDouble)iomodel->Data(MeshEdgesEnum)[4*i+3])){ //edges are [node1 node2 elem1 elem2]
     61        /*First, see wether this is an internal or boundary edge (if e2=-1)*/
     62        if (iomodel->Data(MeshEdgesEnum)[4*i+3]==-1.){ //edges are [node1 node2 elem1 elem2]
    6363                /* Boundary edge, only one element */
    6464                e1=reCast<int>(iomodel->Data(MeshEdgesEnum)[4*i+2]);
     
    6767                num_nodes=2;
    6868                numericalflux_type=BoundaryEnum;
    69                 numericalflux_elem_ids[0]=reCast<int>(e1);
     69                numericalflux_elem_ids[0]=e1;
    7070        }
    7171        else{
     
    7676                num_nodes=4;
    7777                numericalflux_type=InternalEnum;
    78                 numericalflux_elem_ids[0]=reCast<int>(e1);
    79                 numericalflux_elem_ids[1]=reCast<int>(e2);
     78                numericalflux_elem_ids[0]=e1;
     79                numericalflux_elem_ids[1]=e2;
    8080        }
    8181
Note: See TracChangeset for help on using the changeset viewer.