Changeset 7305


Ignore:
Timestamp:
02/03/11 16:16:45 (14 years ago)
Author:
Eric.Larour
Message:

worked on orientation of fronts

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/mex/InternalFront/InternalFront.cpp

    r7217 r7305  
    1616        int     N,M;
    1717        int     numberofsegments;
    18         int     id,node1,node2;
     18        int     id,node1,node2,temp_node;
    1919        int     i,j,ii,jj;
     20        int     i0,i1;
    2021
    2122        /*Boot module: */
     
    6061                                                if(node1==0){
    6162                                                        node1=elements[(id-1)*3+ii];
     63                                                        i0=jj;
    6264                                                }
    6365                                                else{
    64                                                         node2=elements[(id-1)*3+ii]; break;
     66                                                        node2=elements[(id-1)*3+ii];
     67                                                        i1=jj;
     68
     69                                                        /*Now, we have node1 and node2. Make sure they are in the trigonometric
     70                                                         * orientation, so that the normals points to the right direction: */
     71                                                        if (!((i0==0 && i1==2) ||  (i0==1 && i1==0) || (i0==2 && i1==1))){
     72                                                                /*swap: */
     73                                                                temp_node=node2;
     74                                                                node2=node1;
     75                                                                node1=temp_node;
     76                                                        }
     77                                                        break;
    6578                                                }
    6679                                        }
     
    7790
    7891        /*Now that we know how many segments there is we can allocate the final matrix*/
    79         front2=(double*)xmalloc(4*numberofsegments*sizeof(double));
    80         for(i=0;i<4*numberofsegments;i++) front2[i]=(double)front[i];
     92        if(numberofsegments){
     93                front2=(double*)xmalloc(4*numberofsegments*sizeof(double));
     94                for(i=0;i<4*numberofsegments;i++) front2[i]=(double)front[i];
     95        }
    8196        xfree((void**)&front);
    8297
Note: See TracChangeset for help on using the changeset viewer.