Changeset 3031
- Timestamp:
- 02/16/10 08:58:07 (15 years ago)
- Location:
- issm/trunk/src/c/Bamgx/objects
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/Bamgx/objects/Geometry.cpp
r3022 r3031 77 77 78 78 //Vertices 79 if(verbose> 3) printf(" writing Vertices\n");79 if(verbose>5) printf(" writing Vertices\n"); 80 80 bamggeom->NumVertices=nbv; 81 81 xfree((void**)&bamggeom->Vertices); … … 96 96 97 97 //Edges 98 if(verbose> 3) printf(" writing Edges\n");98 if(verbose>5) printf(" writing Edges\n"); 99 99 bamggeom->NumEdges=nbe; 100 100 xfree((void**)&bamggeom->Edges); … … 121 121 122 122 //CrackedEdges 123 if(verbose> 3) printf(" writing CrackedEdges\n");123 if(verbose>5) printf(" writing CrackedEdges\n"); 124 124 bamggeom->NumCrackedEdges=nbcracked; 125 125 xfree((void**)&bamggeom->CrackedEdges); … … 142 142 143 143 //RequiredEdges 144 if(verbose> 3) printf(" writing RequiredEdges\n");144 if(verbose>5) printf(" writing RequiredEdges\n"); 145 145 bamggeom->NumRequiredEdges=nbreq; 146 146 xfree((void**)&bamggeom->RequiredEdges); … … 162 162 163 163 //RequiredVertices 164 if(verbose> 3) printf(" writing RequiredVertices\n");164 if(verbose>5) printf(" writing RequiredVertices\n"); 165 165 bamggeom->NumRequiredVertices=nbreqv; 166 166 xfree((void**)&bamggeom->RequiredVertices); … … 180 180 181 181 //SubDomains 182 if(verbose> 3) printf(" writing SubDomains\n");182 if(verbose>5) printf(" writing SubDomains\n"); 183 183 bamggeom->NumSubDomains=NbSubDomains; 184 184 xfree((void**)&bamggeom->SubDomains); … … 197 197 198 198 //TangentAtEdges 199 if(verbose> 3) printf(" writing TangentAtEdges\n");199 if(verbose>5) printf(" writing TangentAtEdges\n"); 200 200 bamggeom->NumTangentAtEdges=nbtan; 201 201 xfree((void**)&bamggeom->TangentAtEdges); … … 254 254 //Vertices 255 255 if (bamggeom->Vertices){ 256 if(verbose> 3) printf(" processing Vertices\n");256 if(verbose>5) printf(" processing Vertices\n"); 257 257 vertices = new GeometricalVertex[nbvx]; 258 258 for (i=0;i<nbv;i++) { … … 293 293 Real4* len=NULL; 294 294 295 if(verbose> 3) printf(" processing Edges\n");295 if(verbose>5) printf(" processing Edges\n"); 296 296 edges = new GeometricalEdge[nbe]; 297 297 … … 346 346 //CrackedEdges 347 347 if (bamggeom->CrackedEdges){ 348 if(verbose> 3) printf(" processing CrackedEdges\n");348 if(verbose>5) printf(" processing CrackedEdges\n"); 349 349 for (i=0;i<bamggeom->NumCrackedEdges;i++){ 350 350 throw ErrorException(__FUNCT__,exprintf("Not implemented yet")); … … 352 352 } 353 353 else{ 354 if(verbose> 3) printf(" no CrackedEdges found\n");354 if(verbose>5) printf(" no CrackedEdges found\n"); 355 355 } 356 356 357 357 //hVertices 358 358 if(bamggeom->hVertices){ 359 if(verbose> 3) printf(" processing hVertices\n");359 if(verbose>5) printf(" processing hVertices\n"); 360 360 for (i=0;i< nbv;i++){ 361 361 vertices[i].m=Metric((Real4)bamggeom->hVertices[i]); … … 363 363 } 364 364 else{ 365 if(verbose> 3) printf(" no hVertices found\n");365 if(verbose>5) printf(" no hVertices found\n"); 366 366 } 367 367 368 368 //MetricVertices 369 369 if(bamggeom->MetricVertices){ 370 if(verbose> 3) printf(" processing MetricVertices\n");370 if(verbose>5) printf(" processing MetricVertices\n"); 371 371 hvertices=1; 372 372 for (i=0;i< nbv;i++) { … … 375 375 } 376 376 else{ 377 if(verbose> 3) printf(" no MetricVertices found\n");377 if(verbose>5) printf(" no MetricVertices found\n"); 378 378 } 379 379 380 380 //h1h2VpVertices 381 381 if(bamggeom->h1h2VpVertices){ 382 if(verbose> 3) printf(" processing h1h2VpVertices\n");382 if(verbose>5) printf(" processing h1h2VpVertices\n"); 383 383 Real4 h1,h2,v1,v2; 384 384 hvertices =1; … … 392 392 } 393 393 else{ 394 if(verbose> 3) printf(" no h1h2VpVertices found\n");394 if(verbose>5) printf(" no h1h2VpVertices found\n"); 395 395 } 396 396 397 397 //MaximalAngleOfCorner 398 398 if (bamgopts->MaximalAngleOfCorner){ 399 if(verbose> 3) printf(" processing MaximalAngleOfCorner\n");399 if(verbose>5) printf(" processing MaximalAngleOfCorner\n"); 400 400 MaximalAngleOfCorner=bamgopts->MaximalAngleOfCorner*Pi/180; 401 401 } 402 402 else{ 403 if(verbose> 3) printf(" no MaximalAngleOfCorner found\n");403 if(verbose>5) printf(" no MaximalAngleOfCorner found\n"); 404 404 } 405 405 406 406 //TangentAtEdges 407 407 if (bamggeom->TangentAtEdges){ 408 if(verbose> 3) printf(" processing TangentAtEdges");408 if(verbose>5) printf(" processing TangentAtEdges"); 409 409 int n,i,j,k; 410 410 R2 tg; … … 423 423 } 424 424 else{ 425 if(verbose> 3) printf(" no TangentAtEdges found\n");425 if(verbose>5) printf(" no TangentAtEdges found\n"); 426 426 } 427 427 428 428 //Corners 429 429 if(bamggeom->Corners){ 430 if(verbose> 3) printf(" processing Corners");430 if(verbose>5) printf(" processing Corners"); 431 431 n=bamggeom->NumCorners; 432 432 for (i=0;i<n;i++) { … … 439 439 } 440 440 else{ 441 if(verbose> 3) printf(" no Corners found\n");441 if(verbose>5) printf(" no Corners found\n"); 442 442 } 443 443 444 444 //RequiredVertices 445 445 if(bamggeom->RequiredVertices){ 446 if(verbose> 3) printf(" processing RequiredVertices");446 if(verbose>5) printf(" processing RequiredVertices"); 447 447 n=bamggeom->NumRequiredVertices; 448 448 for (i=0;i<n;i++) { … … 454 454 } 455 455 else{ 456 if(verbose> 3) printf(" no RequiredVertices found\n");456 if(verbose>5) printf(" no RequiredVertices found\n"); 457 457 } 458 458 459 459 //RequiredEdges 460 460 if(bamggeom->RequiredEdges){ 461 if(verbose> 3) printf(" processing RequiredEdges");461 if(verbose>5) printf(" processing RequiredEdges"); 462 462 n=bamggeom->NumRequiredEdges; 463 463 for (i=0;i<n;i++) { … … 470 470 } 471 471 else{ 472 if(verbose> 3) printf(" no RequiredEdges found\n");472 if(verbose>5) printf(" no RequiredEdges found\n"); 473 473 } 474 474 … … 476 476 if(bamggeom->SubDomains){ 477 477 Int4 i0,i1,i2,i3; 478 if(verbose> 3) printf(" processing SubDomains\n");478 if(verbose>5) printf(" processing SubDomains\n"); 479 479 NbSubDomains=bamggeom->NumSubDomains; 480 480 subdomains = new GeometricalSubDomain[NbSubDomains]; … … 492 492 } 493 493 else{ 494 if(verbose> 3) printf(" no SubDomains found\n");494 if(verbose>5) printf(" no SubDomains found\n"); 495 495 } 496 496 } -
issm/trunk/src/c/Bamgx/objects/Triangles.cpp
r3022 r3031 247 247 //Vertices 248 248 if(bamgmesh->Vertices){ 249 if(verbose> 3) printf(" processing Vertices\n");249 if(verbose>5) printf(" processing Vertices\n"); 250 250 251 251 vertices=(Vertex*)xmalloc(nbv*sizeof(Vertex)); … … 263 263 } 264 264 else{ 265 if(verbose> 3) throw ErrorException(__FUNCT__,exprintf("no Vertices found in the initial mesh"));265 if(verbose>5) throw ErrorException(__FUNCT__,exprintf("no Vertices found in the initial mesh")); 266 266 } 267 267 268 268 //Triangles 269 269 if(bamgmesh->Triangles){ 270 if(verbose> 3) printf(" processing Triangles\n");270 if(verbose>5) printf(" processing Triangles\n"); 271 271 triangles =new Triangle[nbtx]; //we cannot allocate only nbt triangles since 272 272 //other triangles will be added for each edge … … 281 281 } 282 282 else{ 283 if(verbose> 3) throw ErrorException(__FUNCT__,exprintf("no Triangles found in the initial mesh"));283 if(verbose>5) throw ErrorException(__FUNCT__,exprintf("no Triangles found in the initial mesh")); 284 284 } 285 285 286 286 //Quadrilaterals 287 287 if(bamgmesh->Quadrilaterals){ 288 if(verbose> 3) printf(" processing Quadrilaterals\n");288 if(verbose>5) printf(" processing Quadrilaterals\n"); 289 289 Int4 i1,i2,i3,i4,iref; 290 290 triangles =new Triangle[nbt]; … … 306 306 } 307 307 else{ 308 if(verbose> 3) printf(" no Quadrilaterals found\n");308 if(verbose>5) printf(" no Quadrilaterals found\n"); 309 309 } 310 310 311 311 //hVertices 312 312 if(bamgmesh->hVertices){ 313 if(verbose> 3) printf(" processing hVertices\n");313 if(verbose>5) printf(" processing hVertices\n"); 314 314 hvertices=1; 315 315 for (i=0;i< nbv;i++){ … … 320 320 } 321 321 else{ 322 if(verbose> 3) printf(" no hVertices found\n");322 if(verbose>5) printf(" no hVertices found\n"); 323 323 } 324 324 325 325 //VerVerticesOnGeometricEdge 326 326 if(bamgmesh->VerticesOnGeometricEdge){ 327 if(verbose> 3) printf(" processing VerticesOnGeometricEdge\n");327 if(verbose>5) printf(" processing VerticesOnGeometricEdge\n"); 328 328 NbVerticesOnGeomEdge=bamgmesh->NumVerticesOnGeometricEdge; 329 329 VerticesOnGeomEdge= new VertexOnGeom[NbVerticesOnGeomEdge] ; … … 338 338 } 339 339 else{ 340 if(verbose> 3) printf(" no VertexOnGeometricEdge found\n");340 if(verbose>5) printf(" no VertexOnGeometricEdge found\n"); 341 341 } 342 342 … … 347 347 Real4 *len =0; 348 348 349 if(verbose> 3) printf(" processing Edges\n");349 if(verbose>5) printf(" processing Edges\n"); 350 350 nbe=bamgmesh->NumEdges; 351 351 edges = new Edge[nbe]; … … 411 411 } 412 412 else{ 413 if(verbose> 3) printf(" no Edges found\n");413 if(verbose>5) printf(" no Edges found\n"); 414 414 } 415 415 //CrackedEdges 416 416 if(bamgmesh->CrackedEdges){ 417 if(verbose> 3) printf(" processing CrackedEdges\n");417 if(verbose>5) printf(" processing CrackedEdges\n"); 418 418 NbCrackedEdges=bamgmesh->NumCrackedEdges; 419 419 CrackedEdges=new CrackedEdge[NbCrackedEdges]; … … 426 426 } 427 427 else{ 428 if(verbose> 3) printf(" no CrackedEdges found\n");428 if(verbose>5) printf(" no CrackedEdges found\n"); 429 429 } 430 430 431 431 //EdgeOnGeometricEdge 432 432 if(bamgmesh->EdgesOnGeometricEdge){ 433 if(verbose> 3) printf(" processing EdgesOnGeometricEdge\n");433 if(verbose>5) printf(" processing EdgesOnGeometricEdge\n"); 434 434 int i1,i2,i,j; 435 435 i2=bamgmesh->NumEdgesOnGeometricEdge; … … 444 444 } 445 445 else{ 446 if(verbose> 3) printf(" no EdgesOnGeometricEdge found\n");446 if(verbose>5) printf(" no EdgesOnGeometricEdge found\n"); 447 447 } 448 448 … … 450 450 if(bamgmesh->SubDomains){ 451 451 Int4 i3,head,sens; 452 if(verbose> 3) printf(" processing SubDomains\n");452 if(verbose>5) printf(" processing SubDomains\n"); 453 453 NbSubDomains=bamgmesh->NumSubDomains; 454 454 subdomains = new SubDomain [ NbSubDomains ]; … … 463 463 } 464 464 else{ 465 if(verbose> 3) printf(" no SubDomains found\n");465 if(verbose>5) printf(" no SubDomains found\n"); 466 466 } 467 467 … … 483 483 //renumber 484 484 if (bamgopts->renumber){ 485 if(verbose> 3) printf(" Renumbering...");485 if(verbose>5) printf(" Renumbering..."); 486 486 Renumber(bamgopts); 487 if(verbose> 3) printf(" done\n");487 if(verbose>5) printf(" done\n"); 488 488 } 489 489 … … 493 493 494 494 //Vertices 495 if(verbose> 3) printf(" writing Vertices\n");495 if(verbose>5) printf(" writing Vertices\n"); 496 496 bamgmesh->NumVertices=nbv; 497 497 xfree((void**)&bamgmesh->Vertices); … … 509 509 510 510 //Edges 511 if(verbose> 3) printf(" writing Edges\n");511 if(verbose>5) printf(" writing Edges\n"); 512 512 bamgmesh->NumEdges=nbe; 513 513 xfree((void**)&bamgmesh->Edges); … … 530 530 //Segments 531 531 bamgmesh->NumSegments=0; 532 if(verbose> 3) printf(" writing Segments\n");532 if(verbose>5) printf(" writing Segments\n"); 533 533 534 534 //chaining algorithm … … 599 599 600 600 //CrackedEdges 601 if(verbose> 3) printf(" writing CrackedEdges\n");601 if(verbose>5) printf(" writing CrackedEdges\n"); 602 602 bamgmesh->NumCrackedEdges=NbCrackedEdges; 603 603 xfree((void**)&bamgmesh->CrackedEdges); … … 614 614 615 615 //Triangles 616 if(verbose> 3) printf(" writing Triangles\n");616 if(verbose>5) printf(" writing Triangles\n"); 617 617 k=nbInT-NbOfQuad*2; 618 618 num=0; … … 638 638 639 639 //Quadrilaterals 640 if(verbose> 3) printf(" writing Quadrilaterals\n");640 if(verbose>5) printf(" writing Quadrilaterals\n"); 641 641 bamgmesh->NumQuadrilaterals=NbOfQuad; 642 642 xfree((void**)&bamgmesh->Quadrilaterals); … … 662 662 663 663 //SubDomains 664 if(verbose> 3) printf(" writing SubDomains\n");664 if(verbose>5) printf(" writing SubDomains\n"); 665 665 bamgmesh->NumSubDomains=NbSubDomains; 666 666 xfree((void**)&bamgmesh->SubDomains); … … 679 679 680 680 //SubDomainsFromGeom 681 if(verbose> 3) printf(" writing SubDomainsFromGeom\n");681 if(verbose>5) printf(" writing SubDomainsFromGeom\n"); 682 682 bamgmesh->NumSubDomainsFromGeom=Gh.NbSubDomains; 683 683 xfree((void**)&bamgmesh->SubDomainsFromGeom); … … 696 696 697 697 //VerticesOnGeomVertex 698 if(verbose> 3) printf(" writing VerticesOnGeometricVertex\n");698 if(verbose>5) printf(" writing VerticesOnGeometricVertex\n"); 699 699 bamgmesh->NumVerticesOnGeometricVertex=NbVerticesOnGeomVertex; 700 700 xfree((void**)&bamgmesh->VerticesOnGeometricVertex); … … 715 715 716 716 //VertexOnGeometricEdge 717 if(verbose> 3) printf(" writing VerticesOnGeometricEdge\n");717 if(verbose>5) printf(" writing VerticesOnGeometricEdge\n"); 718 718 bamgmesh->NumVerticesOnGeometricEdge=NbVerticesOnGeomEdge; 719 719 xfree((void**)&bamgmesh->VerticesOnGeometricEdge); … … 735 735 736 736 //EdgesOnGeometricEdge 737 if(verbose> 3) printf(" writing EdgesOnGeometricEdge\n");737 if(verbose>5) printf(" writing EdgesOnGeometricEdge\n"); 738 738 k=0; 739 739 for (i=0;i<nbe;i++){ … … 2806 2806 2807 2807 //initialize this 2808 if (verbose>3) printf(" Generating vertices\n");2808 if (verbose>3) printf(" Generating Boundary vertices\n"); 2809 2809 PreInit(inbvx); 2810 2810 nbv=0; … … 3086 3086 3087 3087 //Insert points inside existing triangles 3088 if (verbose>3) printf(" Inserting vertices in mesh\n"); 3088 if (verbose>4) printf(" -- current number of vertices = %i\n",nbv); 3089 if (verbose>3) printf(" Creating initial Constrained Delaunay Triangulation...\n"); 3090 if (verbose>3) printf(" Inserting points\n"); 3089 3091 Insert(); 3090 3092 3091 3093 //Force the boundary 3092 if (verbose>3) printf(" Forcing boundaries\n");3094 if (verbose>3) printf(" Forcing boundaries\n"); 3093 3095 ForceBoundary(); 3094 3096 3095 3097 //Extract SubDomains 3096 if (verbose>3) printf(" Extracting subdomains\n");3098 if (verbose>3) printf(" Extracting subdomains\n"); 3097 3099 FindSubDomain(); 3098 3100 3099 3101 // NewPointsOld(*this) ; 3100 if (verbose>3) printf(" Generating mesh properties\n");3102 if (verbose>3) printf(" Inserting internal points\n"); 3101 3103 NewPoints(*this,0) ; 3104 if (verbose>4) printf(" -- current number of vertices = %i\n",nbv); 3102 3105 } 3103 3106 /*}}}1*/ … … 3958 3961 i=Headt; 3959 3962 next_t=-first_np_or_next_t[i]; 3960 for(t=&triangles[i];i<nbt;t=&triangles[i=next_t],next_t=-first_np_or_next_t[i]) 3961 {// for each triangle t3963 for(t=&triangles[i];i<nbt;t=&triangles[i=next_t],next_t=-first_np_or_next_t[i]){ 3964 // for each triangle t 3962 3965 // we can change first_np_or_next_t[i] 3963 3966 if (i<0 || i>=nbt ){ … … 3965 3968 } 3966 3969 first_np_or_next_t[i] = iter; 3967 for(j=0;j<3;j++) 3968 {// for each edge3970 for(j=0;j<3;j++){ 3971 // for each edge 3969 3972 TriangleAdjacent tj(t,j); 3970 3973 Vertex & vA = * tj.EdgeVertex(0); … … 3998 4001 break; 3999 4002 4000 for (i=nbtold;i<nbt;i++) 4001 first_np_or_next_t[i]=iter; 4003 for (i=nbtold;i<nbt;i++) first_np_or_next_t[i]=iter; 4002 4004 4003 4005 Headt = nbt; // empty list 4004 for (i=nbvold;i<nbv;i++) 4005 { // for all the triangle contening the vertex i 4006 Vertex * s = vertices + i; 4006 4007 // for all the triangle contening the vertex i 4008 for (i=nbvold;i<nbv;i++){ 4009 Vertex* s = vertices + i; 4007 4010 TriangleAdjacent ta(s->t, EdgesVertexTriangle[s->vint][1]); 4008 Triangle *tbegin= (Triangle*) ta;4011 Triangle* tbegin= (Triangle*) ta; 4009 4012 Int4 kt; 4010 4013 do { 4011 4014 kt = Number((Triangle*) ta); 4012 if (first_np_or_next_t[kt]>0) 4013 first_np_or_next_t[kt]=-Headt,Headt=kt; 4015 if (first_np_or_next_t[kt]>0){ 4016 first_np_or_next_t[kt]=-Headt; 4017 Headt=kt; 4018 } 4014 4019 if (ta.EdgeVertex(0)!=s){ 4015 4020 throw ErrorException(__FUNCT__,exprintf("ta.EdgeVertex(0)!=s")); … … 4017 4022 ta = Next(Adj(ta)); 4018 4023 } while ( (tbegin != (Triangle*) ta)); 4019 4024 } 4020 4025 4021 4026 } while (nbv!=nbvold);
Note:
See TracChangeset
for help on using the changeset viewer.