Changeset 5146


Ignore:
Timestamp:
08/11/10 09:23:47 (15 years ago)
Author:
Mathieu Morlighem
Message:

As usual

Location:
issm/trunk/src/c
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/Makefile.am

    r5120 r5146  
    6363                                        ./objects/Bamg/SubDomain.h\
    6464                                        ./objects/Bamg/SubDomain.cpp\
    65                                         ./objects/Bamg/TriangleAdjacent.h\
    66                                         ./objects/Bamg/TriangleAdjacent.cpp\
     65                                        ./objects/Bamg/AdjacentTriangle.h\
     66                                        ./objects/Bamg/AdjacentTriangle.cpp\
    6767                                        ./objects/Bamg/Triangle.cpp\
    6868                                        ./objects/Bamg/Triangle.h\
     
    599599                                        ./objects/Bamg/SubDomain.h\
    600600                                        ./objects/Bamg/SubDomain.cpp\
    601                                         ./objects/Bamg/TriangleAdjacent.h\
    602                                         ./objects/Bamg/TriangleAdjacent.cpp\
     601                                        ./objects/Bamg/AdjacentTriangle.h\
     602                                        ./objects/Bamg/AdjacentTriangle.cpp\
    603603                                        ./objects/Bamg/Triangle.cpp\
    604604                                        ./objects/Bamg/Triangle.h\
  • issm/trunk/src/c/modules/Bamgx/Bamgx.cpp

    r5124 r5146  
    184184                //display info
    185185                if(verbosity>0) {
    186                         if (Th.nbt-Th.NbOutT-Th.NbOfQuad*2){
    187                                 printf("   new number of triangles = %i\n",(Th.nbt-Th.NbOutT-Th.NbOfQuad*2));
     186                        if (Th.nbt-Th.nbtout-Th.NbOfQuad*2){
     187                                printf("   new number of triangles = %i\n",(Th.nbt-Th.nbtout-Th.NbOfQuad*2));
    188188                        }
    189189                        if (Th.NbOfQuad ){
  • issm/trunk/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp

    r5124 r5146  
    103103                        else {
    104104                                //Get closest adjacent triangle (inside the mesh)
    105                                 TriangleAdjacent ta=CloseBoundaryEdge(I,&tb,aa,bb).Adj();
     105                                AdjacentTriangle ta=CloseBoundaryEdge(I,&tb,aa,bb).Adj();
    106106                                int k=ta;
    107107                                Triangle &tc=*(Triangle*)ta;
  • issm/trunk/src/c/objects/Bamg/GeometricalEdge.h

    r5143 r5146  
    1919                        GeometricalEdge   *Adj[2];
    2020                        int                DirAdj[2];
    21                         int                flag;
     21                        int                type;
    2222
    2323                        //Operators
     
    3030                        double R1tg(double theta,R2 &t) const ; // 1/radius of curvature + tangente
    3131                        int    Tg(int i) const{return i==0 ? TgA() : TgB();}
    32                         int    Cracked() const{return flag & 1;}
    33                         int    TgA()const{return flag & 4; }
    34                         int    TgB()const {return flag & 8;}
    35                         int    Mark()const {return flag & 16;}
    36                         int    Required() {return flag & 64;}
    37                         void   SetCracked()     { flag |= 1;}
    38                         void   SetTgA()         { flag |=4; }
    39                         void   SetTgB()         { flag |=8; }
    40                         void   SetMark()        { flag |=16;}
    41                         void   SetUnMark()      { flag &= 1007 /* 1023-16*/;}
    42                         void   SetRequired()    { flag |= 64; }
     32                        int    Cracked() const{return type & 1;}
     33                        int    TgA()const{return type & 4; }
     34                        int    TgB()const {return type & 8;}
     35                        int    Mark()const {return type & 16;}
     36                        int    Required() {return type & 64;}
     37                        void   SetCracked()     { type |= 1;}
     38                        void   SetTgA()         { type |=4; }
     39                        void   SetTgB()         { type |=8; }
     40                        void   SetMark()        { type |=16;}
     41                        void   SetUnMark()      { type &= 1007 /* 1023-16*/;}
     42                        void   SetRequired()    { type |= 64; }
    4343                        void   Set(const GeometricalEdge & rec,const Geometry & Th ,Geometry & ThNew);
    4444        };
  • issm/trunk/src/c/objects/Bamg/Geometry.cpp

    r5143 r5146  
    152152                                edges[i].DirAdj[0] = edges[i].DirAdj[1] = -1;
    153153                                edges[i].Adj[0] = edges[i].Adj[1] = NULL;
    154                                 edges[i].flag = 0;
     154                                edges[i].type = 0;
    155155
    156156                                //Cracked?
     
    586586                                }
    587587                                // if the ref a changing then is     SetRequired();
    588                                 if (edges[i1].flag != edges[i2].flag || edges[i1].Required()){
     588                                if (edges[i1].type != edges[i2].type || edges[i1].Required()){
    589589                                        vertices[i].SetRequired();
    590590                                }
  • issm/trunk/src/c/objects/Bamg/Mesh.cpp

    r5143 r5146  
    165165                  Init(maxnbv_in);// to make the allocation
    166166                  // copy of triangles
    167                   nt=Th.nt;
    168167                  nbv = Th.nbv;
    169168                  nbt = Th.nbt;
    170169                  nbe = Th.nbe;
    171170                  NbSubDomains = Th.NbSubDomains;
    172                   NbOutT = Th.NbOutT;
     171                  nbtout = Th.nbtout;
    173172                  NbOfQuad =  Th.NbOfQuad ;
    174173                  NbOfSwapTriangle =0;
     
    284283                        vertices[i].color=0;
    285284                }
    286                 nbtx=2*maxnbv-2; // for filling The Holes and quadrilaterals
     285                maxnbt=2*maxnbv-2; // for filling The Holes and quadrilaterals
    287286
    288287                //Triangles
    289288                if (verbose) printf("Reading triangles (%i)\n",nbt);
    290                 triangles =new Triangle[nbtx]; //we cannot allocate only nbt triangles since
     289                triangles =new Triangle[maxnbt]; //we cannot allocate only nbt triangles since
    291290                //other triangles will be added for each edge
    292291                for (i=0;i<nbt;i++){
     
    336335                                vertices[i].color=0;
    337336                        }
    338                         nbtx=2*maxnbv-2; // for filling The Holes and quadrilaterals
     337                        maxnbt=2*maxnbv-2; // for filling The Holes and quadrilaterals
    339338                }
    340339                else{
     
    345344                if(bamgmesh->Triangles){
    346345                        if(verbose>5) printf("      processing Triangles\n");
    347                         triangles =new Triangle[nbtx]; //we cannot allocate only nbt triangles since
     346                        triangles =new Triangle[maxnbt]; //we cannot allocate only nbt triangles since
    348347                        //other triangles will be added for each edge
    349348                        for (i=0;i<nbt;i++){
     
    825824                /*Element Connectivity*/
    826825                if(verbose>5) printf("      writing Element connectivity\n");
    827                 bamgmesh->ElementConnectivitySize[0]=nbt-NbOutT;
     826                bamgmesh->ElementConnectivitySize[0]=nbt-nbtout;
    828827                bamgmesh->ElementConnectivitySize[1]=3;
    829                 bamgmesh->ElementConnectivity=(double*)xmalloc(3*(nbt-NbOutT)*sizeof(double));
    830                 for (i=0;i<3*(nbt-NbOutT);i++) bamgmesh->ElementConnectivity[i]=NAN;
     828                bamgmesh->ElementConnectivity=(double*)xmalloc(3*(nbt-nbtout)*sizeof(double));
     829                for (i=0;i<3*(nbt-nbtout);i++) bamgmesh->ElementConnectivity[i]=NAN;
    831830                num=0;
    832831                for (i=0;i<nbt;i++){
     
    835834                                        k=Number(triangles[i].TriangleAdj(j));
    836835                                        if (reft[k]>=0){
    837                                                 ISSMASSERT(3*num+j<3*(nbt-NbOutT));
     836                                                ISSMASSERT(3*num+j<3*(nbt-nbtout));
    838837                                                bamgmesh->ElementConnectivity[3*num+j]=k+1; // back to Matlab indexing
    839838                                        }
     
    11671166                tt[2]= &triangles[nbt++];
    11681167
    1169                 if (nbt>nbtx) {
     1168                if (nbt>maxnbt) {
    11701169                        ISSMERROR("Not ebough triangles");
    11711170                }
     
    16281627                        Gh.edges[i].v[1] = Gh.vertices +  j1;
    16291628
    1630                         Gh.edges[i].flag = 0;
     1629                        Gh.edges[i].type = 0;
    16311630
    16321631                        Gh.edges[i].tg[0]=R2();
     
    24332432                // supression de tous les sous domaine infini <=>  contient le sommet NULL
    24342433                it =0;
    2435                 NbOutT = 0;
     2434                nbtout = 0;
    24362435                while (it<nbt) {
    24372436                        if (triangles[it].link)
     
    24422441                                        NbSubDomTot --;
    24432442                                        t=&triangles[it];
    2444                                         NbOutT--;  // on fait un coup de trop.
     2443                                        nbtout--;  // on fait un coup de trop.
    24452444                                        while  (t){
    2446                                                 NbOutT++;
     2445                                                nbtout++;
    24472446                                                t1=t;
    24482447                                                t=t->link;
     
    24522451                          }   
    24532452                        it++;} // end while (it<nbt)
    2454                         if (nbt == NbOutT ||  !NbSubDomTot) {
     2453                        if (nbt == nbtout ||  !NbSubDomTot) {
    24552454                                ISSMERROR("The boundary is not close: all triangles are outside");
    24562455                        }
     
    25252524                                                                 t= subdomains[i].head;
    25262525                                                                 while (t){
    2527                                                                          NbOutT++;
     2526                                                                         nbtout++;
    25282527                                                                         t1=t;
    25292528                                                                         t=t->link;
     
    26222621                                        for (it=0;it<nbt;it++)
    26232622                                         if ( mark[it] ==-1 )
    2624                                           NbOutT++,triangles[it].link =0;
     2623                                          nbtout++,triangles[it].link =0;
    26252624                                        delete [] GeometricalEdgetoEdge;
    26262625                                        delete [] mark;
    26272626
    26282627                          }
    2629                         NbOutT=0;
     2628                        nbtout=0;
    26302629                        for (it=0;it<nbt;it++)
    2631                          if(!triangles[it].link)  NbOutT++;
     2630                         if(!triangles[it].link)  nbtout++;
    26322631        }
    26332632        /*}}}1*/
     
    26462645                nbt=0;
    26472646                NbOfQuad = 0;
    2648                 nbtx=2*maxnbv_in-2;
     2647                maxnbt=2*maxnbv_in-2;
    26492648                NbSubDomains=0;
    26502649                NbVertexOnBThVertex=0;
     
    26642663                        ordre=new (BamgVertex* [maxnbv]);
    26652664                        ISSMASSERT(ordre);
    2666                         triangles=new Triangle[nbtx];
     2665                        triangles=new Triangle[maxnbt];
    26672666                        ISSMASSERT(triangles);
    26682667                }
     
    26712670                        ordre=NULL;
    26722671                        triangles=NULL;
    2673                         nbtx=0;
     2672                        maxnbt=0;
    26742673                }
    26752674
     
    29932992                        if (verbose>2){
    29942993                                printf("   number of quadrilaterals    = %i\n",NbOfQuad);
    2995                                 printf("   number of triangles         = %i\n",nbt-NbOutT- NbOfQuad*2);
    2996                                 printf("   number of outside triangles = %i\n",NbOutT);
     2994                                printf("   number of triangles         = %i\n",nbt-nbtout- NbOfQuad*2);
     2995                                printf("   number of outside triangles = %i\n",nbtout);
    29972996                        }
    29982997                        delete [] qq;
     
    30993098                long Headt=0;
    31003099                long next_t;
    3101                 long* first_np_or_next_t=new long[nbtx];
     3100                long* first_np_or_next_t=new long[maxnbt];
    31023101                Triangle* t=NULL;
    31033102
     
    34583457        Triangle* savetriangles=triangles;
    34593458        long savenbt=nbt;
    3460         long savenbtx=nbtx;
     3459        long savemaxnbt=maxnbt;
    34613460        SubDomain* savesubdomains=subdomains;
    34623461        subdomains=0;
     
    34673466
    34683467        nbt=2;
    3469         nbtx= Nbtriafillhole;
     3468        maxnbt= Nbtriafillhole;
    34703469
    34713470        //Find a vertex that is not aligned with vertices 0 and 1
     
    35713570                }
    35723571        }
    3573         ISSMASSERT(savenbt+NbTfillHoll<=savenbtx);
     3572        ISSMASSERT(savenbt+NbTfillHoll<=savemaxnbt);
    35743573
    35753574        // copy of the outside triangles in saveMesh
     
    36013600        // restore triangles;
    36023601        nbt=savenbt;
    3603         nbtx=savenbtx;
     3602        maxnbt=savemaxnbt;
    36043603        delete [] triangles;
    36053604        delete [] subdomains;
     
    37113710                        }
    37123711                delete [] renu;
    3713                 nt = nbt - NbOutT;
    37143712
    37153713        }
     
    38703868        int nt=0;
    38713869        for (int it=0;it<nbt;it++)
    3872          if ( triangles[it].link)
    3873                 {
    3874                  nt++;
     3870         if ( triangles[it].link){
    38753871                 Triangle &K=triangles[it];
    38763872                 double  area3= Area2((R2) K[0],(R2) K[1],(R2) K[2])/6.;
     
    41134109                long nbvold = nbv;
    41144110                long nbtold = nbt;
    4115                 long NbOutTold  = NbOutT;
     4111                long nbtoutold  = nbtout;
    41164112                long  NbEdgeOnGeom=0;
    41174113                long i;
    41184114
    4119                 nbt = nbt - NbOutT; // remove all the  the ouside triangles
     4115                nbt = nbt - nbtout; // remove all the  the ouside triangles
    41204116                long nbtsave = nbt;
    41214117                Triangle * lastT = triangles + nbt;
     
    45354531
    45364532                ret = 2;
    4537                 if (nbt>= nbtx) goto Error; // bug
     4533                if (nbt>= maxnbt) goto Error; // bug
    45384534                if (nbv>= maxnbv) goto Error; // bug
    45394535                // generation of the new triangles
     
    45714567                if (verbose>2){
    45724568                        printf("   number of quadrilaterals    = %i\n",NbOfQuad);
    4573                         printf("   number of triangles         = %i\n",nbt-NbOutT- NbOfQuad*2);
    4574                         printf("   number of outside triangles = %i\n",NbOutT);
     4569                        printf("   number of triangles         = %i\n",nbt-nbtout- NbOfQuad*2);
     4570                        printf("   number of outside triangles = %i\n",nbtout);
    45754571                }
    45764572
     
    45804576                nbv = nbvold;
    45814577                nbt = nbtold;
    4582                 NbOutT = NbOutTold;
     4578                nbtout = nbtoutold;
    45834579                // cleaning memory ---
    45844580                delete newedges;
  • issm/trunk/src/c/objects/Bamg/Mesh.h

    r5143 r5146  
    3434                        SubDomain                    *subdomains;
    3535                        long                          NbRef;                 // counter of ref on the this class if 0 we can delete
    36                         long                          maxnbv,nbtx;           // nombre max de sommets , de triangles
    37                         long                          nt,nbv,nbt,nbe;        // nb of legal triangles, nb of vertex, of triangles, of edges with reference,
     36                        long                          maxnbv,maxnbt;           // nombre max de sommets , de triangles
     37                        long                          nbv,nbt,nbe;           // nb of vertices, of triangles, of edges
    3838                        long                          NbOfQuad;              // nb of quadrangle
    3939                        long                          NbSubDomains;
    40                         long                          NbOutT;                // Nb of oudeside triangle
     40                        long                          nbtout;                // Nb of oudeside triangle
    4141                        long                          NbOfTriangleSearchFind;
    4242                        long                          NbOfSwapTriangle;
Note: See TracChangeset for help on using the changeset viewer.