Changeset 5583


Ignore:
Timestamp:
08/26/10 08:15:19 (15 years ago)
Author:
Mathieu Morlighem
Message:

As usual renaming

Location:
issm/trunk/src/c/objects/Bamg
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Bamg/Mesh.cpp

    r5582 r5583  
    237237                if (triangles)            delete [] triangles;
    238238                if (quadtree)             delete    quadtree;
    239                 //if (ordre)                delete [] ordre;
     239                //if (orderedvertices)                delete [] orderedvertices;
    240240                if (subdomains)           delete []  subdomains;
    241241                if (VerticesOnGeomEdge)   delete [] VerticesOnGeomEdge;
     
    273273                if (verbose) printf("Reading vertices (%i)\n",nbv);
    274274                vertices=(BamgVertex*)xmalloc(nbv*sizeof(BamgVertex));
    275                 ordre=(BamgVertex**)xmalloc(nbv*sizeof(BamgVertex*));
     275                orderedvertices=(BamgVertex**)xmalloc(nbv*sizeof(BamgVertex*));
    276276                for (i=0;i<nbv;i++){
    277277                        vertices[i].r.x=x[i];
     
    324324
    325325                        vertices=(BamgVertex*)xmalloc(nbv*sizeof(BamgVertex));
    326                         ordre=(BamgVertex**)xmalloc(nbv*sizeof(BamgVertex*));
     326                        orderedvertices=(BamgVertex**)xmalloc(nbv*sizeof(BamgVertex*));
    327327
    328328                        for (i=0;i<nbv;i++){
     
    27072707                        vertices=new BamgVertex[maxnbv];
    27082708                        ISSMASSERT(vertices);
    2709                         ordre=new (BamgVertex* [maxnbv]);
    2710                         ISSMASSERT(ordre);
     2709                        orderedvertices=new (BamgVertex* [maxnbv]);
     2710                        ISSMASSERT(orderedvertices);
    27112711                        triangles=new Triangle[maxnbt];
    27122712                        ISSMASSERT(triangles);
     
    27142714                else {
    27152715                        vertices=NULL;
    2716                         ordre=NULL;
     2716                        orderedvertices=NULL;
    27172717                        triangles=NULL;
    27182718                        maxnbt=0;
     
    27382738                SetIntCoor();
    27392739
    2740                 /*Now we want to build a list (ordre) of the vertices in a random
     2740                /*Now we want to build a list (orderedvertices) of the vertices in a random
    27412741                 * order. To do so, we use the following method:
    27422742                 *
     
    27702770                int   k0=rand()%nbv;
    27712771
    2772                 //Build ordre
     2772                //Build orderedvertices
    27732773                for (i=0; i<nbv; i++){
    2774                         ordre[i]=&vertices[k0=(k0+PrimeNumber)%nbv];
    2775                 }
    2776 
    2777                 /*Modify ordre such that the first 3 vertices form a triangle*/
     2774                        orderedvertices[i]=&vertices[k0=(k0+PrimeNumber)%nbv];
     2775                }
     2776
     2777                /*Modify orderedvertices such that the first 3 vertices form a triangle*/
    27782778
    27792779                //get first vertex i such that [0,1,i] are not aligned
    2780                 for (i=2; det(ordre[0]->i,ordre[1]->i,ordre[i]->i)==0;){
     2780                for (i=2; det(orderedvertices[0]->i,orderedvertices[1]->i,orderedvertices[i]->i)==0;){
    27812781                        //if i is higher than nbv, it means that all the determinants are 0,
    27822782                        //all vertices are aligned!
    27832783                        if  (++i>=nbv) ISSMERROR("all the vertices are aligned");
    27842784                }
    2785                 // exchange i et 2 in "ordre" so that
     2785                // exchange i et 2 in "orderedvertices" so that
    27862786                // the first 3 vertices are not aligned (real triangle)
    2787                 Exchange(ordre[2], ordre[i]);
     2787                Exchange(orderedvertices[2], orderedvertices[i]);
    27882788
    27892789                /*Take the first edge formed by the first two vertices and build
    27902790                 * the initial simple mesh from this edge and 2 boundary triangles*/
    27912791
    2792                 BamgVertex *  v0=ordre[0], *v1=ordre[1];
     2792                BamgVertex *  v0=orderedvertices[0], *v1=orderedvertices[1];
    27932793
    27942794                nbt = 2;
     
    28302830
    28312831                        //Get new vertex
    2832                         BamgVertex *newvertex=ordre[icount];
     2832                        BamgVertex *newvertex=orderedvertices[icount];
    28332833
    28342834                        //Find the triangle in which newvertex is located
     
    28562856                k0 = rand()%nbv ;
    28572857                for (int is4=0; is4<nbv; is4++)
    2858                  ordre[is4]= &vertices[k0 = (k0 + PrimeNumber)% nbv];
     2858                 orderedvertices[is4]= &vertices[k0 = (k0 + PrimeNumber)% nbv];
    28592859
    28602860                for(int Nbloop=0;Nbloop<NBLOOPOPTIM;Nbloop++){
    28612861                        long  NbSwap = 0;
    28622862                        for (int is1=0; is1<nbv; is1++)
    2863                          NbSwap += ordre[is1]->Optim(0,0);
     2863                         NbSwap += orderedvertices[is1]->Optim(0,0);
    28642864                        if (verbose>3) {
    28652865                                printf("      Optim Loop: %i\n",Nbloop);
     
    29002900                        register long j=nbvold +(k3 = (k3+PrimeNumber)%nbvnew);
    29012901                        register long i=nbvold+is3;
    2902                         ordre[i]= vertices + j;
    2903                         ordre[i]->ReferenceNumber=i;
     2902                        orderedvertices[i]= vertices + j;
     2903                        orderedvertices[i]->ReferenceNumber=i;
    29042904                }
    29052905
     
    29072907                long iv=nbvold;
    29082908                for (i=nbvold;i<nbv;i++){
    2909                         BamgVertex &vi=*ordre[i];
     2909                        BamgVertex &vi=*orderedvertices[i];
    29102910                        vi.i=R2ToI2(vi.r);
    29112911                        vi.r=I2ToR2(vi.i);
     
    29172917                                BamgVertex &vj = vertices[iv];
    29182918                                long  j=vj.ReferenceNumber;
    2919                                 if (&vj!=ordre[j]){
    2920                                         ISSMERROR("&vj!= ordre[j]");
     2919                                if (&vj!=orderedvertices[j]){
     2920                                        ISSMERROR("&vj!= orderedvertices[j]");
    29212921                                }
    29222922                                if(i!=j){
    29232923                                        Exchange(vi,vj);
    2924                                         Exchange(ordre[j],ordre[i]);
     2924                                        Exchange(orderedvertices[j],orderedvertices[i]);
    29252925                                }
    29262926                                vj.ReferenceNumber=0;
     
    34163416        if(verbose>2) printf("      Reconstruct mesh of %i vertices\n",nbv);
    34173417
    3418         //initialize ordre
    3419         ISSMASSERT(ordre);
    3420         for (i=0;i<nbv;i++) ordre[i]=0;
     3418        //initialize orderedvertices
     3419        ISSMASSERT(orderedvertices);
     3420        for (i=0;i<nbv;i++) orderedvertices[i]=0;
    34213421
    34223422        //Initialize nbsubdomains
     
    34853485                        if (i<nbe){
    34863486                                long i0=edge4->i(i);
    3487                                 ordre[i0] = vertices+i0;
     3487                                orderedvertices[i0] = vertices+i0;
    34883488                                long i1=edge4->j(i);
    3489                                 ordre[i1] = vertices+i1;
     3489                                orderedvertices[i1] = vertices+i1;
    34903490                        }
    34913491                        else {
     
    35103510                vertices[i].t=0;
    35113511                vertices[i].IndexInTriangle=0;
    3512                 if (ordre[i]) ordre[nbvb++]=ordre[i];
     3512                if (orderedvertices[i]) orderedvertices[nbvb++]=orderedvertices[i];
    35133513        }
    35143514
     
    35273527
    35283528        //Find a vertex that is not aligned with vertices 0 and 1
    3529         for (i=2;det(ordre[0]->i,ordre[1]->i,ordre[i]->i)==0;)
     3529        for (i=2;det(orderedvertices[0]->i,orderedvertices[1]->i,orderedvertices[i]->i)==0;)
    35303530         if  (++i>=nbvb) {
    35313531                 ISSMERROR("ReconstructExistingMesh: All the vertices are aligned");
    35323532         }
    3533         //Move this vertex (i) to the 2d position in ordre
    3534         Exchange(ordre[2], ordre[i]);
     3533        //Move this vertex (i) to the 2d position in orderedvertices
     3534        Exchange(orderedvertices[2], orderedvertices[i]);
    35353535
    35363536        /*Reconstruct mesh beginning with 2 triangles*/
    3537         BamgVertex *  v0=ordre[0], *v1=ordre[1];
     3537        BamgVertex *  v0=orderedvertices[0], *v1=orderedvertices[1];
    35383538
    35393539        triangles[0](0) = NULL; // Infinite vertex
     
    35683568        long NbSwap=0;
    35693569        for (int icount=2; icount<nbvb; icount++) {
    3570                 BamgVertex *vi  = ordre[icount];
     3570                BamgVertex *vi  = orderedvertices[icount];
    35713571                Icoor2 dete[3];
    35723572                Triangle *tcvi = TriangleFindFromCoord(vi->i,dete);
  • issm/trunk/src/c/objects/Bamg/Mesh.h

    r5573 r5583  
    3030                        Edge                         *edges;
    3131                        QuadTree                     *quadtree;
    32                         BamgVertex                  **ordre;
     32                        BamgVertex                  **orderedvertices;
    3333                        SubDomain                    *subdomains;
    3434                        long                          NbRef;                 // counter of ref on the this class if 0 we can delete
Note: See TracChangeset for help on using the changeset viewer.