Changeset 5091
- Timestamp:
- 08/09/10 14:25:16 (15 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/io/WriteData.cpp
r4779 r5091 167 167 fnames[++i] = "Vertices"; fsize[i][0]=bm->VerticesSize[0]; fsize[i][1]=bm->VerticesSize[1]; fpointer[i]=&bm->Vertices; 168 168 fnames[++i] = "Edges"; fsize[i][0]=bm->EdgesSize[0]; fsize[i][1]=bm->EdgesSize[1]; fpointer[i]=&bm->Edges; 169 fnames[++i] = " Segments"; fsize[i][0]=bm->SegmentsSize[0]; fsize[i][1]=bm->SegmentsSize[1]; fpointer[i]=&bm->Segments;170 fnames[++i] = " ElementEdges"; fsize[i][0]=bm->ElementEdgesSize[0]; fsize[i][1]=bm->ElementEdgesSize[1]; fpointer[i]=&bm->ElementEdges;169 fnames[++i] = "IssmSegments"; fsize[i][0]=bm->IssmSegmentsSize[0]; fsize[i][1]=bm->IssmSegmentsSize[1]; fpointer[i]=&bm->IssmSegments; 170 fnames[++i] = "IssmEdges"; fsize[i][0]=bm->IssmEdgesSize[0]; fsize[i][1]=bm->IssmEdgesSize[1]; fpointer[i]=&bm->IssmEdges; 171 171 fnames[++i] = "Quadrilaterals"; fsize[i][0]=bm->QuadrilateralsSize[0]; fsize[i][1]=bm->QuadrilateralsSize[1]; fpointer[i]=&bm->Quadrilaterals; 172 172 fnames[++i] = "VerticesOnGeometricVertex";fsize[i][0]=bm->VerticesOnGeometricVertexSize[0]; fsize[i][1]=bm->VerticesOnGeometricVertexSize[1];fpointer[i]=&bm->VerticesOnGeometricVertex; -
issm/trunk/src/c/modules/Bamgx/Bamgx.cpp
r3912 r5091 17 17 double coef; 18 18 int verbosity; 19 int NbSmooth;19 int nbsmooth; 20 20 21 21 /*intermediary*/ … … 24 24 double costheta=2; 25 25 double hminaniso=1e-100; 26 27 26 Triangles* Thr=NULL; 28 27 Triangles* Thb=NULL; 29 28 30 29 /*Bamg options*/ 31 NbSmooth=bamgopts->NbSmooth;32 coef =bamgopts->coef;33 maxnbv =bamgopts->maxnbv;30 nbsmooth =bamgopts->nbsmooth; 31 coef =bamgopts->coeff; 32 maxnbv =bamgopts->maxnbv; 34 33 verbosity=bamgopts->verbose; 35 34 36 35 // no metric -> no smoothing 37 if (bamgopts->metric==NULL){ 38 NbSmooth=0; 39 } 36 if (bamgopts->metric==NULL) nbsmooth=0; 40 37 41 38 /*If no mesh in input, generate one*/ 42 43 39 if(bamgmesh_in->TrianglesSize[0]==0){ 44 40 /*Mesh generation {{{1*/ … … 87 83 /*}}}*/ 88 84 } 89 90 85 else{ 91 86 /*Anisotropic mesh adaptation {{{1*/ … … 185 180 186 181 //Smooth vertices 187 if( NbSmooth>0) Th.SmoothingVertex(NbSmooth,bamgopts->omega);182 if(nbsmooth>0) Th.SmoothingVertex(nbsmooth,bamgopts->omega); 188 183 189 184 //display info -
issm/trunk/src/c/objects/Bamg/BamgGeom.cpp
r3683 r5091 8 8 bamggeom->hVertices=NULL; 9 9 bamggeom->MetricVertices=NULL; 10 bamggeom->h1h2VpVertices=NULL;11 10 bamggeom->TangentAtEdgesSize[0]=0, bamggeom->TangentAtEdgesSize[1]=0; bamggeom->TangentAtEdges=NULL; 12 11 bamggeom->CornersSize[0]=0, bamggeom->CornersSize[1]=0; bamggeom->Corners=NULL; -
issm/trunk/src/c/objects/Bamg/BamgGeom.h
r3683 r5091 15 15 double* hVertices; 16 16 double* MetricVertices; 17 double* h1h2VpVertices;18 17 19 18 int TangentAtEdgesSize[2]; -
issm/trunk/src/c/objects/Bamg/BamgMesh.cpp
r3683 r5091 4 4 void BamgMeshInit(BamgMesh* bamgmesh){ 5 5 6 bamgmesh->TrianglesSize[0]=0, bamgmesh->TrianglesSize[1]=0; bamgmesh->Triangles=NULL;7 6 bamgmesh->VerticesSize[0]=0, bamgmesh->VerticesSize[1]=0; bamgmesh->Vertices=NULL; 8 7 bamgmesh->EdgesSize[0]=0, bamgmesh->EdgesSize[1]=0; bamgmesh->Edges=NULL; 9 bamgmesh->ElementEdgesSize[0]=0, bamgmesh->ElementEdgesSize[1]=0; bamgmesh->ElementEdges=NULL; 10 bamgmesh->SegmentsSize[0]=0, bamgmesh->SegmentsSize[1]=0; bamgmesh->Segments=NULL; 8 bamgmesh->TrianglesSize[0]=0, bamgmesh->TrianglesSize[1]=0; bamgmesh->Triangles=NULL; 11 9 bamgmesh->QuadrilateralsSize[0]=0,bamgmesh->QuadrilateralsSize[1]=0; bamgmesh->Quadrilaterals=NULL; 12 10 bamgmesh->VerticesOnGeometricVertexSize[0]=0, bamgmesh->VerticesOnGeometricVertexSize[1]=0;bamgmesh->VerticesOnGeometricVertex=NULL; … … 16 14 bamgmesh->SubDomainsFromGeomSize[0]=0, bamgmesh->SubDomainsFromGeomSize[1]=0; bamgmesh->SubDomainsFromGeom=NULL; 17 15 bamgmesh->hVertices=NULL; 16 bamgmesh->IssmEdgesSize[0]=0, bamgmesh->IssmEdgesSize[1]=0; bamgmesh->IssmEdges=NULL; 17 bamgmesh->IssmSegmentsSize[0]=0, bamgmesh->IssmSegmentsSize[1]=0; bamgmesh->IssmSegments=NULL; 18 18 bamgmesh->ElementConnectivitySize[0]=0, bamgmesh->ElementConnectivitySize[1]=0; bamgmesh->ElementConnectivity=NULL; 19 19 bamgmesh->NodalConnectivitySize[0]=0, bamgmesh->NodalConnectivitySize[1]=0; bamgmesh->NodalConnectivity=NULL; -
issm/trunk/src/c/objects/Bamg/BamgMesh.h
r3683 r5091 7 7 struct BamgMesh{ 8 8 9 int TrianglesSize[2]; 10 double* Triangles; 11 9 /*Bamg input/output*/ 12 10 int VerticesSize[2]; 13 11 double* Vertices; … … 16 14 double* Edges; 17 15 18 int ElementEdgesSize[2]; 19 double* ElementEdges; 20 21 int SegmentsSize[2]; 22 double* Segments; 16 int TrianglesSize[2]; 17 double* Triangles; 23 18 24 19 int QuadrilateralsSize[2]; … … 40 35 double* SubDomainsFromGeom; 41 36 37 int CrackedVerticesSize[2]; 38 double* CrackedVertices; 39 40 int CrackedEdgesSize[2]; 41 double* CrackedEdges; 42 42 43 double* hVertices; 44 45 /*Output for ISSM*/ 46 int IssmEdgesSize[2]; 47 double* IssmEdges; 48 49 int IssmSegmentsSize[2]; 50 double* IssmSegments; 43 51 44 52 int ElementConnectivitySize[2]; … … 51 59 double* NodalElementConnectivity; 52 60 53 int CrackedVerticesSize[2];54 double* CrackedVertices;55 56 int CrackedEdgesSize[2];57 double* CrackedEdges;58 61 }; 59 62 -
issm/trunk/src/c/objects/Bamg/BamgOpts.cpp
r3775 r5091 8 8 bamgopts->iso=0; 9 9 bamgopts->maxnbv=0; 10 bamgopts->Max imalAngleOfCorner=0;10 bamgopts->MaxCornerAngle=0; 11 11 bamgopts->Hessiantype=0; 12 12 bamgopts->Metrictype=0; … … 16 16 bamgopts->power=0; 17 17 bamgopts->anisomax=0; 18 bamgopts-> NbSmooth=0;18 bamgopts->nbsmooth=0; 19 19 bamgopts->nbjacobi=0; 20 20 bamgopts->omega=0; … … 30 30 bamgopts->err=NULL; 31 31 bamgopts->errg=0; 32 bamgopts->coef =0;32 bamgopts->coeff=0; 33 33 bamgopts->metric=NULL; 34 34 bamgopts->field=NULL; … … 41 41 int i; 42 42 43 if (bamgopts->coef ==0) ISSMERROR("'coef' should be positive");43 if (bamgopts->coeff==0) ISSMERROR("'coeff' should be positive"); 44 44 if (bamgopts->maxsubdiv<=1) ISSMERROR("'maxsubdiv' should be >1"); 45 45 if (bamgopts->Crack!=0 && bamgopts->Crack!=1) ISSMERROR("'Crack' supported options are 0 and 1"); … … 50 50 if (bamgopts->nbjacobi<=0) ISSMERROR("'nbjacobi' option should be >0"); 51 51 if (bamgopts->geometricalmetric!=0 && bamgopts->geometricalmetric!=1) ISSMERROR("'geometricalmetric' supported options are 0 and 1"); 52 if (bamgopts-> NbSmooth<=0) ISSMERROR("'NbSmooth' option should be >0");52 if (bamgopts->nbsmooth<=0) ISSMERROR("'nbsmooth' option should be >0"); 53 53 if (bamgopts->maxnbv<3) ISSMERROR("'maxnbv' option should be >3"); 54 54 if (bamgopts->hmin<=0) ISSMERROR("'hmin' option should be >0"); -
issm/trunk/src/c/objects/Bamg/BamgOpts.h
r3683 r5091 10 10 int iso; 11 11 int maxnbv; 12 double Max imalAngleOfCorner;12 double MaxCornerAngle; 13 13 int Crack; 14 14 int Hessiantype; … … 18 18 double power; 19 19 double anisomax; 20 int NbSmooth;20 int nbsmooth; 21 21 int nbjacobi; 22 22 double omega; … … 32 32 double* err; 33 33 double errg; 34 double coef ;34 double coeff; 35 35 double* metric; 36 36 double* field; -
issm/trunk/src/c/objects/Bamg/Geometry.cpp
r5016 r5091 43 43 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshGeom.cpp/~Geometry)*/ 44 44 45 long int verbos ity=0;45 long int verbose=0; 46 46 47 47 if (NbRef>0){ … … 203 203 } 204 204 205 //h1h2VpVertices 206 if(bamggeom->h1h2VpVertices){ 207 if(verbose>5) printf(" processing h1h2VpVertices\n"); 208 double h1,h2,v1,v2; 209 for (i=0;i< nbv;i++) { 210 h1=(double)bamggeom->MetricVertices[i*4+0]; 211 h2=(double)bamggeom->MetricVertices[i*4+1]; 212 v1=(double)bamggeom->MetricVertices[i*4+2]; 213 v2=(double)bamggeom->MetricVertices[i*4+3]; 214 vertices[i].m = Metric(MatVVP2x2(1/(h1*h1),1/(h2*h2),D2(v1,v2))); 215 } 216 } 217 218 //MaximalAngleOfCorner 219 if (bamgopts->MaximalAngleOfCorner){ 220 if(verbose>5) printf(" processing MaximalAngleOfCorner\n"); 221 MaximalAngleOfCorner=bamgopts->MaximalAngleOfCorner*Pi/180; 205 //MaxCornerAngle 206 if (bamgopts->MaxCornerAngle){ 207 if(verbose>5) printf(" processing MaxCornerAngle\n"); 208 MaxCornerAngle=bamgopts->MaxCornerAngle*Pi/180; 222 209 } 223 210 … … 431 418 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshGeom.cpp/AfterRead)*/ 432 419 433 long int verbos ity=0;420 long int verbose=0; 434 421 435 422 long i,j,k; … … 621 608 float angle2= !j2 ? OppositeAngle(eangle[i2]) : eangle[i2]; 622 609 float da12 = Abs(angle2-angle1); 623 if (( da12 >= Max imalAngleOfCorner ) && (da12 <= 2*Pi -MaximalAngleOfCorner)) {610 if (( da12 >= MaxCornerAngle ) && (da12 <= 2*Pi -MaxCornerAngle)) { 624 611 vertices[i].SetCorner() ; 625 612 } … … 805 792 printf(" pmax (x,y): (%g %g)\n",pmax.x,pmax.y); 806 793 printf(" coefIcoor: %g\n",coefIcoor); 807 printf(" Max imalAngleOfCorner: %g\n",MaximalAngleOfCorner);794 printf(" MaxCornerAngle: %g\n",MaxCornerAngle); 808 795 809 796 return; … … 829 816 // BeginOfCurve=0; 830 817 subdomains=0; 831 Max imalAngleOfCorner= 10*Pi/180;818 MaxCornerAngle = 10*Pi/180; 832 819 } 833 820 /*}}}1*/ -
issm/trunk/src/c/objects/Bamg/Geometry.h
r3913 r5091 32 32 R2 pmin,pmax; // extrema 33 33 double coefIcoor; // coef to integer Icoor1; 34 double Max imalAngleOfCorner;34 double MaxCornerAngle; 35 35 36 36 //Constructor/Destructors -
issm/trunk/src/c/objects/Bamg/ListofIntersectionTriangles.cpp
r3913 r5091 15 15 Triangle *tbegin, *t; 16 16 17 long int verbos ity=2;17 long int verbose=2; 18 18 Icoor2 deta[3], deti,detj; 19 19 double ba[3]; … … 78 78 if (t == tbegin) { // 79 79 double ba,bb; 80 long int verbos ity=2;80 long int verbose=2; 81 81 TriangleAdjacent edge=CloseBoundaryEdge(a,t,ba,bb); 82 82 MeshVertex & v0 = *edge.EdgeVertex(0), & v1 = *edge.EdgeVertex(1); -
issm/trunk/src/c/objects/Bamg/MeshVertex.cpp
r3913 r5091 123 123 double hmin=(bamgopts->hmin); 124 124 double hmax=(bamgopts->hmax); 125 double coef=bamgopts->coef ;125 double coef=bamgopts->coeff; 126 126 int Metrictype=(bamgopts->Metrictype); 127 127 -
issm/trunk/src/c/objects/Bamg/Triangles.cpp
r5018 r5091 225 225 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Triangles)*/ 226 226 227 long int verbos ity=2;227 long int verbose=2; 228 228 //if(vertices) delete [] vertices; //TEST crash if not commented 229 229 if(edges) delete [] edges; … … 584 584 bamgmesh->EdgesSize[0]=nbe; 585 585 bamgmesh->EdgesSize[1]=3; 586 int Num Segments=0;586 int NumIssmSegments=0; 587 587 if (nbe){ 588 588 bamgmesh->Edges=(double*)xmalloc(3*nbe*sizeof(double)); … … 592 592 bamgmesh->Edges[i*3+2]=edges[i].ref; 593 593 if(edges[i].onGeometry){ 594 Num Segments++;594 NumIssmSegments++; 595 595 } 596 596 } … … 624 624 } 625 625 } 626 bamgmesh-> ElementEdgesSize[0]=edge4->nb();627 bamgmesh-> ElementEdgesSize[1]=4;628 bamgmesh-> ElementEdges=(double*)xmalloc(4*edge4->nb()*sizeof(double));626 bamgmesh->IssmEdgesSize[0]=edge4->nb(); 627 bamgmesh->IssmEdgesSize[1]=4; 628 bamgmesh->IssmEdges=(double*)xmalloc(4*edge4->nb()*sizeof(double)); 629 629 for (i=0;i<edge4->nb();i++){ 630 630 /*Invert first two vertices if necessary*/ … … 634 634 if (triangles[(int)elemedge[2*i+0]]((j+1)%3)==vertices+edge4->j(i)){ 635 635 //trigonometric direction 636 bamgmesh-> ElementEdges[i*4+0]=edge4->i(i)+1;// back to M indexing637 bamgmesh-> ElementEdges[i*4+1]=edge4->j(i)+1;// back to M indexing636 bamgmesh->IssmEdges[i*4+0]=edge4->i(i)+1;// back to M indexing 637 bamgmesh->IssmEdges[i*4+1]=edge4->j(i)+1;// back to M indexing 638 638 } 639 639 else{ 640 bamgmesh-> ElementEdges[i*4+0]=edge4->j(i)+1;// back to M indexing641 bamgmesh-> ElementEdges[i*4+1]=edge4->i(i)+1;// back to M indexing640 bamgmesh->IssmEdges[i*4+0]=edge4->j(i)+1;// back to M indexing 641 bamgmesh->IssmEdges[i*4+1]=edge4->i(i)+1;// back to M indexing 642 642 } 643 643 found=true; … … 646 646 } 647 647 ISSMASSERT(found); 648 bamgmesh-> ElementEdges[i*4+2]=elemedge[2*i+0]+1; // back to M indexing649 bamgmesh-> ElementEdges[i*4+3]=elemedge[2*i+1]+1; // back to M indexing648 bamgmesh->IssmEdges[i*4+2]=elemedge[2*i+0]+1; // back to M indexing 649 bamgmesh->IssmEdges[i*4+3]=elemedge[2*i+1]+1; // back to M indexing 650 650 } 651 651 //clean up … … 653 653 xfree((void**)&elemedge); 654 654 655 /* Segments*/656 if(verbose>5) printf(" writing Segments\n");657 bamgmesh-> SegmentsSize[0]=NumSegments;658 bamgmesh-> SegmentsSize[1]=4;659 bamgmesh-> Segments=(double*)xmalloc(4*NumSegments*sizeof(double));655 /*IssmSegments*/ 656 if(verbose>5) printf(" writing IssmSegments\n"); 657 bamgmesh->IssmSegmentsSize[0]=NumIssmSegments; 658 bamgmesh->IssmSegmentsSize[1]=4; 659 bamgmesh->IssmSegments=(double*)xmalloc(4*NumIssmSegments*sizeof(double)); 660 660 num=0; 661 661 for (i=0;i<nbe;i++){ … … 669 669 if (Number(triangles[(int)j/3][k])==i1){ 670 670 if (Number(triangles[(int)j/3][(int)((k+1)%3)])==i2){ 671 bamgmesh-> Segments[num*4+0]=Number(edges[i][0])+1; //back to M indexing672 bamgmesh-> Segments[num*4+1]=Number(edges[i][1])+1; //back to M indexing673 bamgmesh-> Segments[num*4+2]=(int)j/3+1; //back to M indexing674 bamgmesh-> Segments[num*4+3]=edges[i].ref;671 bamgmesh->IssmSegments[num*4+0]=Number(edges[i][0])+1; //back to M indexing 672 bamgmesh->IssmSegments[num*4+1]=Number(edges[i][1])+1; //back to M indexing 673 bamgmesh->IssmSegments[num*4+2]=(int)j/3+1; //back to M indexing 674 bamgmesh->IssmSegments[num*4+3]=edges[i].ref; 675 675 num+=1; 676 676 stop=true; … … 678 678 } 679 679 if (Number(triangles[(int)j/3][(int)((k+2)%3)])==i2){ 680 bamgmesh-> Segments[num*4+0]=Number(edges[i][1])+1; //back to M indexing681 bamgmesh-> Segments[num*4+1]=Number(edges[i][0])+1; //back to M indexing682 bamgmesh-> Segments[num*4+2]=(int)j/3+1; //back to M indexing683 bamgmesh-> Segments[num*4+3]=edges[i].ref;680 bamgmesh->IssmSegments[num*4+0]=Number(edges[i][1])+1; //back to M indexing 681 bamgmesh->IssmSegments[num*4+1]=Number(edges[i][0])+1; //back to M indexing 682 bamgmesh->IssmSegments[num*4+2]=(int)j/3+1; //back to M indexing 683 bamgmesh->IssmSegments[num*4+3]=edges[i].ref; 684 684 num+=1; 685 685 stop=true; … … 859 859 int* connectivitysize_2=NULL; 860 860 int connectivitymax_2=0; 861 i1=bamgmesh-> ElementEdgesSize[0];862 i2=bamgmesh-> ElementEdgesSize[1];861 i1=bamgmesh->IssmEdgesSize[0]; 862 i2=bamgmesh->IssmEdgesSize[1]; 863 863 head_2=(int*)xmalloc(nbv*sizeof(int)); 864 864 next_2=(int*)xmalloc(2*i1*sizeof(int)); … … 871 871 for (i=0;i<i1;i++) { 872 872 for (j=0;j<2;j++){ 873 int v=(int)bamgmesh-> ElementEdges[i*i2+j]-1; //back to C indexing873 int v=(int)bamgmesh->IssmEdges[i*i2+j]-1; //back to C indexing 874 874 if (k>2*i1-1 || k<0) ISSMERROR("Index exceed matrix dimensions (k=%i not in [0 %i]",k,2*i1-1); 875 875 next_2[k]=head_2[v]; … … 892 892 for(j=head_2[i];j!=-1;j=next_2[j]){ 893 893 ISSMASSERT(connectivitymax_2*i+k < connectivitymax_2*nbv); 894 num=(int)bamgmesh-> ElementEdges[int(j/2)*i2+0];894 num=(int)bamgmesh->IssmEdges[int(j/2)*i2+0]; 895 895 if (i+1==num){ //carefull, ElementEdge is in M indexing 896 896 //i is the first vertex of the edge, it is therefore connected to the second vertex 897 bamgmesh->NodalConnectivity[connectivitymax_2*i+k]=bamgmesh-> ElementEdges[int(j/2)*i2+1];897 bamgmesh->NodalConnectivity[connectivitymax_2*i+k]=bamgmesh->IssmEdges[int(j/2)*i2+1]; 898 898 } 899 899 else{ … … 948 948 double hmin = Max(bamgopts->hmin,MinimalHmin()); 949 949 double hmax = Min(bamgopts->hmax,MaximalHmax()); 950 double coef = bamgopts->coef ;950 double coef = bamgopts->coeff; 951 951 952 952 //for now we only use j==3 … … 996 996 997 997 /*Get options*/ 998 int verbos ity=bamgopts->verbose;998 int verbose=bamgopts->verbose; 999 999 double anisomax =bamgopts->anisomax; 1000 1000 double errg =bamgopts->errg; … … 1210 1210 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/BoundAnisotropy)*/ 1211 1211 1212 long int verbos ity=0;1212 long int verbose=0; 1213 1213 double lminaniso = 1/ (Max(hminaniso*hminaniso,1e-100)); 1214 1214 1215 1215 //display info 1216 if (verbos ity> 1) printf(" BoundAnisotropy by %g\n",anisomax);1216 if (verbose > 1) printf(" BoundAnisotropy by %g\n",anisomax); 1217 1217 1218 1218 double h1=1.e30,h2=1e-30; … … 1229 1229 1230 1230 //info to be displayed 1231 if (verbos ity>2){1231 if (verbose>2){ 1232 1232 h1 =Min(h1,Vp.lmin()); 1233 1233 h2 =Max(h2,Vp.lmax()); … … 1240 1240 1241 1241 //display info 1242 if (verbos ity>2){1242 if (verbose>2){ 1243 1243 printf(" input: Hmin = %g, Hmax = %g, factor of anisotropy max = %g\n",pow(h2,-0.5),pow(h1,-0.5),pow(rx,0.5)); 1244 1244 printf(" output: Hmin = %g, Hmax = %g, factor of anisotropy max = %g\n",pow(hn2,-0.5),pow(hn1,-0.5),pow(rnx,0.5)); … … 1254 1254 /*Intermediary*/ 1255 1255 int i,j,k,kk,it,jt; 1256 int verbos ity=0;1256 int verbose=0; 1257 1257 double cutoffradian=10*Pi/180; 1258 1258 1259 1259 /*Recover options*/ 1260 1260 if (bamgopts){ 1261 verbos ity=bamgopts->verbose;1262 cutoffradian=bamgopts->Max imalAngleOfCorner*Pi/180;1261 verbose=bamgopts->verbose; 1262 cutoffradian=bamgopts->MaxCornerAngle*Pi/180; 1263 1263 } 1264 1264 1265 1265 //display info 1266 if (verbos ity>1) printf(" construction of the geometry from the 2d mesh\n");1266 if (verbose>1) printf(" construction of the geometry from the 2d mesh\n"); 1267 1267 1268 1268 //check that the mesh is not empty … … 1271 1271 } 1272 1272 1273 //Gh is the geometry of the mesh (this), initialize Max imalAngleOfCorner1274 if (cutoffradian>=0) Gh.Max imalAngleOfCorner= cutoffradian;1273 //Gh is the geometry of the mesh (this), initialize MaxCornerAngle 1274 if (cutoffradian>=0) Gh.MaxCornerAngle = cutoffradian; 1275 1275 1276 1276 /*Construction of the edges*/ … … 1337 1337 1338 1338 //display info 1339 if(verbos ity>5) {1339 if(verbose>5) { 1340 1340 printf(" info on Mesh:\n"); 1341 1341 printf(" - number of vertices = %i \n",nbv); … … 1374 1374 1375 1375 //display info 1376 if(verbos ity>4) printf(" Construction of the edges %i\n",nbe);1376 if(verbose>4) printf(" Construction of the edges %i\n",nbe); 1377 1377 1378 1378 for (i=0;i<nbedges;i++){ … … 1515 1515 } 1516 1516 } 1517 if (verbos ity> 3) printf(" The Number of sub domain = %i\n",NbSubDomains);1517 if (verbose> 3) printf(" The Number of sub domain = %i\n",NbSubDomains); 1518 1518 1519 1519 //build subdomains … … 1566 1566 Gh.NbSubDomains = NbSubDomains; 1567 1567 Gh.subdomains = new GeometricalSubDomain[NbSubDomains]; 1568 if (verbos ity>3) printf(" number of vertices = %i\n number of edges = %i\n",Gh.nbv,Gh.nbe);1568 if (verbose>3) printf(" number of vertices = %i\n number of edges = %i\n",Gh.nbv,Gh.nbe); 1569 1569 NbVerticesOnGeomVertex = Gh.nbv; 1570 1570 VerticesOnGeomVertex = new VertexOnGeom[NbVerticesOnGeomVertex]; … … 1700 1700 double* s=NULL; 1701 1701 long nbsol; 1702 int verbos ity;1702 int verbose; 1703 1703 1704 1704 int i,j,k,iA,iB,iC; … … 1706 1706 1707 1707 /*Recover options*/ 1708 verbos ity=bamgopts->verbose;1708 verbose=bamgopts->verbose; 1709 1709 1710 1710 /*Get and process fields*/ … … 1731 1731 1732 1732 //display infos 1733 if(verbos ity>1) {1733 if(verbose>1) { 1734 1734 printf(" Construction of Metric: number of field: %i (nbt=%i, nbv=%i)\n",nbsol,nbt,nbv); 1735 1735 } … … 1804 1804 1805 1805 //display info 1806 if(verbos ity>2) printf(" Solution %i, Min = %g, Max = %g, Delta = %g\n",nusol,smin,smax,sdelta);1806 if(verbose>2) printf(" Solution %i, Min = %g, Max = %g, Delta = %g\n",nusol,smin,smax,sdelta); 1807 1807 1808 1808 //skip constant field … … 1904 1904 long nbsol; 1905 1905 int NbJacobi; 1906 int verbos ity;1906 int verbose; 1907 1907 1908 1908 /*Recover options*/ 1909 verbos ity=bamgopts->verbose;1909 verbose=bamgopts->verbose; 1910 1910 NbJacobi=bamgopts->nbjacobi; 1911 1911 … … 1930 1930 1931 1931 //display infos 1932 if(verbos ity>1) {1932 if(verbose>1) { 1933 1933 printf(" Construction of Metric: number of field: %i (nbt=%i, nbv=%i)\n",nbsol,nbt,nbv); 1934 1934 } … … 2014 2014 2015 2015 //display info 2016 if(verbos ity>2) printf(" Solution %i, Min = %g, Max = %g, Delta = %g, number of fields = %i\n",nusol,smin,smax,sdelta,nbsol);2016 if(verbose>2) printf(" Solution %i, Min = %g, Max = %g, Delta = %g, number of fields = %i\n",nusol,smin,smax,sdelta,nbsol); 2017 2017 2018 2018 //skip constant field 2019 2019 if (sdelta < 1.0e-10*Max(absmax,1e-20) ){ 2020 if (verbos ity>2) printf(" Solution %i is constant, skipping...\n",nusol);2020 if (verbose>2) printf(" Solution %i is constant, skipping...\n",nusol); 2021 2021 continue; 2022 2022 } … … 2335 2335 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/ForceBoundary)*/ 2336 2336 2337 long int verbos ity=2;2337 long int verbose=2; 2338 2338 int k=0; 2339 2339 int nbfe=0,nbswp=0,Nbswap=0; 2340 2340 2341 2341 //display 2342 if (verbos ity> 2) printf(" ForceBoundary nb of edge: %i\n",nbe);2342 if (verbose > 2) printf(" ForceBoundary nb of edge: %i\n",nbe); 2343 2343 2344 2344 //check that there is no triangle with 0 determinant … … 2371 2371 Nbswap += vertices[j].Optim(1,0); 2372 2372 } 2373 if (verbos ity> 3) printf(" number of inforced edge = %i, number of swap= %i\n",nbfe,Nbswap);2373 if (verbose > 3) printf(" number of inforced edge = %i, number of swap= %i\n",nbfe,Nbswap); 2374 2374 } 2375 2375 /*}}}1*/ … … 2378 2378 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/FindSubDomain)*/ 2379 2379 2380 long int verbos ity=0;2381 2382 if (verbos ity>2){2380 long int verbose=0; 2381 2382 if (verbose >2){ 2383 2383 if (OutSide) printf(" Find all external sub-domain\n"); 2384 2384 else printf(" Find all internal sub-domain\n"); … … 2525 2525 }//while (t) 2526 2526 } 2527 if(verbos ity>4) printf(" Number of removes subdomains (OutSideMesh) = %i\n",NbSubDomains-j);2527 if(verbose>4) printf(" Number of removes subdomains (OutSideMesh) = %i\n",NbSubDomains-j); 2528 2528 NbSubDomains=j; 2529 2529 } … … 2610 2610 2611 2611 if (inew < NbSubDomains) { 2612 if (verbos ity>5) printf("WARNING: %i SubDomains are being removed\n",NbSubDomains-inew);2612 if (verbose>5) printf("WARNING: %i SubDomains are being removed\n",NbSubDomains-inew); 2613 2613 NbSubDomains=inew;} 2614 2614 … … 3375 3375 3376 3376 /*Get options*/ 3377 long int verbos ity=2;3377 long int verbose=2; 3378 3378 3379 3379 //Display info 3380 if (verbos ity>2) printf(" Insert initial %i vertices\n",nbv);3380 if (verbose>2) printf(" Insert initial %i vertices\n",nbv); 3381 3381 3382 3382 //Compute integer coordinates and determinants for the existing vertices (from Geometry) … … 3469 3469 3470 3470 long NbSwap=0; 3471 if (verbos ity>3) printf(" Begining of insertion process...\n");3471 if (verbose>3) printf(" Begining of insertion process...\n"); 3472 3472 3473 3473 for (int icount=2; icount<nbv; icount++) { … … 3491 3491 3492 3492 //Display info 3493 if (verbos ity>3) {3493 if (verbose>3) { 3494 3494 printf(" NbSwap of insertion: %i\n",NbSwap); 3495 3495 printf(" NbSwap/nbv: %i\n",NbSwap/nbv); … … 3506 3506 for (int is1=0; is1<nbv; is1++) 3507 3507 NbSwap += ordre[is1]->Optim(0,0); 3508 if (verbos ity>3) {3508 if (verbose>3) { 3509 3509 printf(" Optim Loop: %i\n",Nbloop); 3510 3510 printf(" NbSwap/nbv: %i\n",NbSwap/nbv); … … 3521 3521 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/InsertNewPoints)*/ 3522 3522 3523 long int verbos ity=0;3523 long int verbose=0; 3524 3524 double seuil= 1.414/2 ;// for two close point 3525 3525 long i; … … 3531 3531 3532 3532 //display info if required 3533 if (verbos ity>5) printf(" Try to Insert %i new points\n",nbvnew);3533 if (verbose>5) printf(" Try to Insert %i new points\n",nbvnew); 3534 3534 3535 3535 //return if no new points … … 3580 3580 } 3581 3581 } 3582 if (verbos ity>3) {3582 if (verbose>3) { 3583 3583 printf(" number of new points: %i\n",iv); 3584 3584 printf(" number of to close (?) points: %i\n",nbv-iv); … … 3588 3588 3589 3589 for (i=nbvold;i<nbv;i++) NbSwap += vertices[i].Optim(1); 3590 if (verbos ity>3) printf(" NbSwap=%i\n",NbSwap);3590 if (verbose>3) printf(" NbSwap=%i\n",NbSwap); 3591 3591 3592 3592 NbTSwap += NbSwap ; … … 3641 3641 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/MakeQuadrangles)*/ 3642 3642 3643 long int verbos ity=0;3644 3645 if (verbos ity>2) printf("MakeQuadrangles costheta = %g\n",costheta);3643 long int verbose=0; 3644 3645 if (verbose>2) printf("MakeQuadrangles costheta = %g\n",costheta); 3646 3646 3647 3647 if (costheta >1) { 3648 if (verbos ity>5) printf(" do nothing: costheta > 1\n");3648 if (verbose>5) printf(" do nothing: costheta > 1\n"); 3649 3649 } 3650 3650 … … 3672 3672 } 3673 3673 NbOfQuad = kk; 3674 if (verbos ity>2){3674 if (verbose>2){ 3675 3675 printf(" number of quadrilaterals = %i\n",NbOfQuad); 3676 3676 printf(" number of triangles = %i\n",nbt-NbOutT- NbOfQuad*2); … … 3684 3684 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/MakeQuadTree)*/ 3685 3685 3686 long int verbos ity=0;3686 long int verbose=0; 3687 3687 if ( !quadtree ) quadtree = new QuadTree(this); 3688 3688 … … 3693 3693 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/MaxSubDivision)*/ 3694 3694 3695 long int verbos ity=0;3695 long int verbose=0; 3696 3696 3697 3697 const double maxsubdiv2 = maxsubdiv*maxsubdiv; 3698 if(verbos ity>1) printf(" Limit the subdivision of a edges in the new mesh by %g\n",maxsubdiv);3698 if(verbose>1) printf(" Limit the subdivision of a edges in the new mesh by %g\n",maxsubdiv); 3699 3699 // for all the edges 3700 3700 // if the len of the edge is to long … … 3738 3738 } 3739 3739 } 3740 if(verbos ity>3){3740 if(verbose>3){ 3741 3741 printf(" number of metric changes = %i, maximum number of subdivision of a edges before change = %g\n",nbchange,pow(lmax,0.5)); 3742 3742 } … … 3784 3784 3785 3785 /*Recover options*/ 3786 int verbos ity=bamgopts->verbose;3786 int verbose=bamgopts->verbose; 3787 3787 3788 3788 /*First, insert old points if requested*/ 3789 3789 if (KeepVertices && (&Bh != this) && (nbv+Bh.nbv< nbvx)){ 3790 if (verbos ity>5) printf(" Inserting initial mesh points\n");3790 if (verbose>5) printf(" Inserting initial mesh points\n"); 3791 3791 for (i=0;i<Bh.nbv;i++){ 3792 3792 MeshVertex &bv=Bh[i]; … … 3807 3807 // Big loop (most time consuming) 3808 3808 int iter=0; 3809 if (verbos ity>5) printf(" Big loop\n");3809 if (verbose>5) printf(" Big loop\n"); 3810 3810 do { 3811 3811 /*Update variables*/ … … 3894 3894 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/PreInit)*/ 3895 3895 3896 long int verbos ity=0;3896 long int verbose=0; 3897 3897 3898 3898 srand(19999999); … … 4102 4102 4103 4103 /*Intermediary*/ 4104 int verbos ity=0;4104 int verbose=0; 4105 4105 4106 4106 // generation of the integer coordinate … … 4108 4108 // find extrema coordinates of vertices pmin,pmax 4109 4109 long i; 4110 if(verbos ity>2) printf(" Reconstruct mesh of %i vertices\n",nbv);4110 if(verbose>2) printf(" Reconstruct mesh of %i vertices\n",nbv); 4111 4111 4112 4112 //initialize ordre … … 4164 4164 4165 4165 //Display info if required 4166 if(verbos ity>5) {4166 if(verbose>5) { 4167 4167 printf(" info of Mesh:\n"); 4168 4168 printf(" - number of vertices = %i \n",nbv); … … 4400 4400 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/ReNumberingTheTriangleBySubDomain)*/ 4401 4401 4402 long int verbos ity=0;4402 long int verbose=0; 4403 4403 long *renu= new long[nbt]; 4404 4404 register Triangle *t0,*t,*te=triangles+nbt; … … 4717 4717 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/SmoothingVertex)*/ 4718 4718 4719 long int verbos ity=0;4719 long int verbose=0; 4720 4720 // if quatree exist remove it end reconstruct 4721 4721 if (quadtree) delete quadtree; … … 4736 4736 for ( k=0;k<NbVerticesOnGeomEdge;k++ ) 4737 4737 tstart[ Number(VerticesOnGeomEdge[k].mv)]=&vide; 4738 if(verbos ity>2) printf(" SmoothingVertex: nb Iteration = %i, Omega=%g\n",nbiter,omega);4738 if(verbose>2) printf(" SmoothingVertex: nb Iteration = %i, Omega=%g\n",nbiter,omega); 4739 4739 for (k=0;k<nbiter;k++) 4740 4740 { … … 4748 4748 if (tstart[i] != &vide) // not a boundary vertex 4749 4749 NbSwap += vertices[i].Optim(1); 4750 if (verbos ity>3) printf(" move max = %g, iteration = %i, nb of swap = %i\n",pow(delta,0.5),k,NbSwap);4750 if (verbose>3) printf(" move max = %g, iteration = %i, nb of swap = %i\n",pow(delta,0.5),k,NbSwap); 4751 4751 } 4752 4752 … … 4759 4759 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Metric.cpp/SmoothMetric)*/ 4760 4760 4761 long int verbos ity=0;4761 long int verbose=0; 4762 4762 4763 4763 if(raisonmax<1.1) return; 4764 if(verbos ity> 1) printf(" Triangles::SmoothMetric raisonmax = %g\n",raisonmax);4764 if(verbose > 1) printf(" Triangles::SmoothMetric raisonmax = %g\n",raisonmax); 4765 4765 ReMakeTriangleContainingTheVertex(); 4766 4766 long i,j,kch,kk,ip; … … 4828 4828 Exchange(first_np_or_next_t0,first_np_or_next_t1); 4829 4829 } 4830 if(verbos ity>2) printf(" number of iterations = %i\n",kch);4830 if(verbose>2) printf(" number of iterations = %i\n",kch); 4831 4831 delete [] first_np_or_next_t0; 4832 4832 delete [] first_np_or_next_t1; … … 4837 4837 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshQuad.cpp/SplitElement)*/ 4838 4838 4839 long int verbos ity=0;4839 long int verbose=0; 4840 4840 4841 4841 Direction NoDirOfSearch; … … 5320 5320 ReconstructExistingMesh(); 5321 5321 5322 if (verbos ity>2){5322 if (verbose>2){ 5323 5323 printf(" number of quadrilaterals = %i\n",NbOfQuad); 5324 5324 printf(" number of triangles = %i\n",nbt-NbOutT- NbOfQuad*2); … … 5351 5351 long it; 5352 5352 long nbvold=nbv; 5353 long int verbos ity=2;5353 long int verbose=2; 5354 5354 for (it=0;it<nbt;it++){ 5355 5355 Triangle &t=triangles[it]; … … 5402 5402 // } 5403 5403 } 5404 if (verbos ity>3) {5404 if (verbose>3) { 5405 5405 printf(" number of points: %i\n",iv); 5406 5406 printf(" number of swap to split internal edges with border vertices: %i\n",NbSwap); … … 5409 5409 } 5410 5410 if (NbSplitEdge>nbv-nbvold) printf("WARNING: not enough vertices to split all internal edges, we lost %i edges...\n",NbSplitEdge - ( nbv-nbvold)); 5411 if (verbos ity>2) printf("SplitInternalEdgeWithBorderVertices: Number of splited edge %i\n",NbSplitEdge);5411 if (verbose>2) printf("SplitInternalEdgeWithBorderVertices: Number of splited edge %i\n",NbSplitEdge); 5412 5412 5413 5413 return NbSplitEdge; … … 5418 5418 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/ConsRefTriangle)*/ 5419 5419 5420 long int verbos ity=0;5420 long int verbose=0; 5421 5421 register Triangle *t0,*t; 5422 5422 register long k=0, num;
Note:
See TracChangeset
for help on using the changeset viewer.