source: issm/oecreview/Archive/12081-12100/ISSM-12085-12086.diff@ 12325

Last change on this file since 12325 was 12325, checked in by Eric.Larour, 13 years ago

11990 to 12321 oec compliance

File size: 7.0 KB
  • proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/shared/TriMesh/SplitMeshForRifts.cpp

     
    4646        segments=*psegments;
    4747        segmentmarkerlist=*psegmentmarkerlist;
    4848
    49 
    5049        /*Establish list of segments that belong to a rift: */
    51         RiftSegmentsFromSegments(&nriftsegs,&riftsegments,nel,index,nsegs,segments); /*riftsegments of size nriftsegsx4 (4 for first element on segment,second element,
    52                                                                                                                                                                    first node and second snode)*/
     50        /*riftsegments of size nriftsegsx4 (4 for first element on segment,second element,first node and second snode)*/
     51        RiftSegmentsFromSegments(&nriftsegs,&riftsegments,nel,index,nsegs,segments);
    5352
    5453        /*Go through all nodes of the rift segments, and start splitting the mesh: */
    5554        flags=(int*)xcalloc(nods,sizeof(int)); //to make sure we don't split the same nodes twice!
     
    6968                       
    7069                                DetermineGridElementListOnOneSideOfRift(&NumGridElementListOnOneSideOfRift,&GridElementListOnOneSideOfRift,i,nriftsegs,riftsegments,node,index,nel);
    7170                       
    72                                 /*Summary: we have for node, a list of elements (GridElementListOnOneSideOfRift, of size NumGridElementListOnOneSideOfRift) that all contain node
    73                                  *and that are on the same side of the rift. For all these elements, we clone node into another node, and we swap all instances of node in the triangulation
    74                                  *for those elements, to the new node.*/
     71                                /*Summary: we have for node, a list of elements
     72                                 * (GridElementListOnOneSideOfRift, of size
     73                                 * NumGridElementListOnOneSideOfRift) that all contain node
     74                                 *and that are on the same side of the rift. For all these
     75                                 elements, we clone node into another node, and we swap all
     76                                 instances of node in the triangulation *for those elements, to the
     77                                 new node.*/
    7578                               
    7679                                //augment number of nodes
    7780                                nods=nods+1;
  • proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/shared/TriMesh/TriMeshUtils.cpp

     
    277277                                 *we can only rely on the position (x,y) of the rift nodes to create a segment:*/
    278278                                for (k=0;k<3;k++){
    279279                                        if ((x[(int)*(index+el1*3+k)-1]==x[(int)*(segments+3*j+0)-1]) && (y[(int)*(index+el1*3+k)-1]==y[(int)*(segments+3*j+0)-1])){
    280                                                 *(segments+3*j+0)=*(index+el1*3+k); _assert_(segments[3*j+0]<nods);
     280                                                *(segments+3*j+0)=*(index+el1*3+k); _assert_(segments[3*j+0]<nods+1);
    281281                                                break;
    282282                                        }
    283283                                }
    284284                                for (k=0;k<3;k++){
    285285                                        if ((x[(int)*(index+el1*3+k)-1]==x[(int)*(segments+3*j+1)-1])  && (y[(int)*(index+el1*3+k)-1]==y[(int)*(segments+3*j+1)-1])){
    286                                                 *(segments+3*j+1)=*(index+el1*3+k); _assert_(segments[3*j+1]<nods);
     286                                                *(segments+3*j+1)=*(index+el1*3+k); _assert_(segments[3*j+1]<nods+1);
    287287                                                break;
    288288                                        }
    289289                                }
     
    292292                                *(segmentmarkerlist+(nsegs+i))=*(segmentmarkerlist+j);
    293293                                for (k=0;k<3;k++){
    294294                                        if ((x[(int)*(index+el2*3+k)-1]==x[(int)*(segments+3*j+0)-1]) && (y[(int)*(index+el2*3+k)-1]==y[(int)*(segments+3*j+0)-1])){
    295                                                 *(segments+3*(nsegs+i)+0)=*(index+el2*3+k); _assert_(segments[3*(nsegs+i)+0]<nods);
     295                                                *(segments+3*(nsegs+i)+0)=*(index+el2*3+k); _assert_(segments[3*(nsegs+i)+0]<nods+1);
    296296                                                break;
    297297                                        }
    298298                                }
    299299                                for (k=0;k<3;k++){
    300300                                        if ((x[(int)*(index+el2*3+k)-1]==x[(int)*(segments+3*j+1)-1]) && (y[(int)*(index+el2*3+k)-1]==y[(int)*(segments+3*j+1)-1])){
    301                                                 *(segments+3*(nsegs+i)+1)=*(index+el2*3+k); _assert_(segments[3*(nsegs+i)+1]<nods);
     301                                                *(segments+3*(nsegs+i)+1)=*(index+el2*3+k); _assert_(segments[3*(nsegs+i)+1]<nods+1);
    302302                                                break;
    303303                                        }
    304304                                }
     
    308308                                /*Let's update segments[j][:] using  element el2 and the corresponding rift segment: */
    309309                                for (k=0;k<3;k++){
    310310                                        if ((x[(int)*(index+el2*3+k)-1]==x[(int)*(segments+3*j+0)-1]) && (y[(int)*(index+el2*3+k)-1]==y[(int)*(segments+3*j+0)-1])){
    311                                                 *(segments+3*j+0)=*(index+el2*3+k); _assert_(segments[3*j+0]<nods);
     311                                                *(segments+3*j+0)=*(index+el2*3+k); _assert_(segments[3*j+0]<nods+1);
    312312                                                break;
    313313                                        }
    314314                                }
    315315                                for (k=0;k<3;k++){
    316316                                        if ((x[(int)*(index+el2*3+k)-1]==x[(int)*(segments+3*j+1)-1]) && (y[(int)*(index+el2*3+k)-1]==y[(int)*(segments+3*j+1)-1])){
    317                                                 *(segments+3*j+1)=*(index+el2*3+k);_assert_(segments[3*j+1]<nods);
     317                                                *(segments+3*j+1)=*(index+el2*3+k);_assert_(segments[3*j+1]<nods+1);
    318318                                                break;
    319319                                        }
    320320                                }
     
    323323                                *(segmentmarkerlist+(nsegs+i))=*(segmentmarkerlist+j);
    324324                                for (k=0;k<3;k++){
    325325                                        if ((x[(int)*(index+el1*3+k)-1]==x[(int)*(segments+3*j+0)-1]) && (y[(int)*(index+el1*3+k)-1]==y[(int)*(segments+3*j+0)-1])){
    326                                                 *(segments+3*(nsegs+i)+0)=*(index+el1*3+k);_assert_(segments[3*(nsegs+i)+0]<nods);
     326                                                *(segments+3*(nsegs+i)+0)=*(index+el1*3+k);_assert_(segments[3*(nsegs+i)+0]<nods+1);
    327327                                                break;
    328328                                        }
    329329                                }
    330330                                for (k=0;k<3;k++){
    331331                                        if ((x[(int)*(index+el1*3+k)-1]==x[(int)*(segments+3*j+1)-1]) && (y[(int)*(index+el1*3+k)-1]==y[(int)*(segments+3*j+1)-1])){
    332                                                 *(segments+3*(nsegs+i)+1)=*(index+el1*3+k);_assert_(segments[3*(nsegs+i)+1]<nods);
     332                                                *(segments+3*(nsegs+i)+1)=*(index+el1*3+k);_assert_(segments[3*(nsegs+i)+1]<nods+1);
    333333                                                break;
    334334                                        }
    335335                                }
     
    435435                counter=0;
    436436                for (j=0;j<numsegs;j++){
    437437                        if (segmentmarkerlist[j]==(2+i)){
    438                                 riftsegment[3*counter+0]=segments[3*j+0];_assert_(riftsegment[3*counter+0]<nods);
    439                                 riftsegment[3*counter+1]=segments[3*j+1];_assert_(riftsegment[3*counter+1]<nods);
    440                                 riftsegment[3*counter+2]=segments[3*j+2];_assert_(riftsegment[3*counter+2]<nel);
     438                                riftsegment[3*counter+0]=segments[3*j+0];_assert_(riftsegment[3*counter+0]<nods+1);
     439                                riftsegment[3*counter+1]=segments[3*j+1];_assert_(riftsegment[3*counter+1]<nods+1);
     440                                riftsegment[3*counter+2]=segments[3*j+2];_assert_(riftsegment[3*counter+2]<nel+1);
    441441                                counter++;
    442442                        }
    443443                }
     
    742742        /*output: */
    743743        double* riftstips=NULL;
    744744
    745 
    746745        /*Allocate byproduct of this routine, riftstips: */
    747746        riftstips=(double*)xmalloc(numrifts*2*sizeof(double));
    748747
     
    752751                riftpairs=riftspairs[i];
    753752                numsegs=riftsnumsegments[i];
    754753       
    755                        
    756754                /*Allocate copy of riftsegments and riftpairs,
    757755                 *as well as ordering vector: */
    758756                riftsegments_copy=(double*)xmalloc(numsegs*3*sizeof(double));
     
    777775                                }
    778776                        }
    779777                        /* Make sure node3 faces node1 and node4 faces node2: */
    780                         _assert_(node1<nods && node4<nods);
    781                         if ((x[node1]==x[node4]) && (y[node1]==y[node4])){
     778                        _assert_(node1<nods+1 && node4<nods+1);
     779                        _assert_(node1>0 && node4>0);
     780                        if ((x[node1-1]==x[node4-1]) && (y[node1-1]==y[node4-1])){
    782781                                /*Swap node3 and node4:*/
    783782                                temp_node=node3;
    784783                                node3=node4;
Note: See TracBrowser for help on using the repository browser.