- Timestamp:
- 08/20/12 17:39:30 (13 years ago)
- Location:
- issm/branches/trunk-jpl-damage
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/branches/trunk-jpl-damage
- Property svn:ignore
-
old new 1 projects 1 2 autom4te.cache 2 3 aclocal.m4
-
- Property svn:mergeinfo changed
/issm/trunk-jpl merged: 12948-13099
- Property svn:ignore
-
issm/branches/trunk-jpl-damage/src/c/classes/bamg/Mesh.cpp
r12946 r13101 117 117 delete [] kk; 118 118 delete [] refv; 119 _error 2_("imaxnbv != nbv");119 _error_("imaxnbv != nbv"); 120 120 } 121 121 for (i=0;i<Tho.nbt;i++) … … 128 128 if (i0<0 || i1<0 || i2<0){ 129 129 delete [] refv; 130 _error 2_("i0<0 || i1<0 || i2< 0");130 _error_("i0<0 || i1<0 || i2< 0"); 131 131 } 132 132 if (i0>=Tho.nbv || i1>=Tho.nbv || i2>=Tho.nbv){ 133 _error 2_("i0>=Tho.nbv || i1>=Tho.nbv || i2>=Tho.nbv");133 _error_("i0>=Tho.nbv || i1>=Tho.nbv || i2>=Tho.nbv"); 134 134 } 135 135 triangles[nbt] = Triangle(this,kk[i0],kk[i1],kk[i2]); … … 138 138 } 139 139 if (kt!=nbt){ 140 _error 2_("kt!=nbt");140 _error_("kt!=nbt"); 141 141 } 142 142 if (nbt==0 && nbv==0) { 143 _error 2_("All triangles have been removed");143 _error_("All triangles have been removed"); 144 144 } 145 145 delete [] kk; … … 153 153 154 154 if (!nbsubdomains){ 155 _error 2_("nbsubdomains==0");155 _error_("nbsubdomains==0"); 156 156 } 157 157 if (!subdomains[0].head || !subdomains[0].head->link){ 158 _error 2_("!subdomains[0].head || !subdomains[0].head->link");158 _error_("!subdomains[0].head || !subdomains[0].head->link"); 159 159 } 160 160 … … 323 323 } 324 324 } 325 if(isorphan) _error 2_("Orphan found in mesh, see ids above");325 if(isorphan) _error_("Orphan found in mesh, see ids above"); 326 326 327 327 /*Clean up*/ … … 362 362 } 363 363 else{ 364 if(verbose>5) _error 2_("no Vertices found in the initial mesh");364 if(verbose>5) _error_("no Vertices found in the initial mesh"); 365 365 } 366 366 … … 380 380 } 381 381 else{ 382 if(verbose>5) _error 2_("no Triangles found in the initial mesh");382 if(verbose>5) _error_("no Triangles found in the initial mesh"); 383 383 } 384 384 … … 506 506 //Check value 507 507 if(!(i>=0 && j>=0 && i<nbe && j<Gh.nbe)) { 508 _error 2_("ReadMesh error: EdgesOnGeomEdge edge provided (line " << i1+1 << ": [" << i+1 << " " << j+1 << "]) is incorrect (must be positive, [0<i<nbe=" << nbe << " 0<j<Gh.nbe=" << Gh.nbe << "]");508 _error_("ReadMesh error: EdgesOnGeomEdge edge provided (line " << i1+1 << ": [" << i+1 << " " << j+1 << "]) is incorrect (must be positive, [0<i<nbe=" << nbe << " 0<j<Gh.nbe=" << Gh.nbe << "]"); 509 509 } 510 510 edges[i].GeomEdgeHook=Gh.edges+j; … … 522 522 head=(int)bamgmesh->SubDomains[i*3+1]-1;//C indexing 523 523 direction=(int)bamgmesh->SubDomains[i*3+2]; 524 if (i3!=23) _error 2_("Bad Subdomain definition: first number should be 3");525 if (head<0 || head>=nbt) _error 2_("Bad Subdomain definition: head should in [1 " << nbt << "] (triangle number)");524 if (i3!=23) _error_("Bad Subdomain definition: first number should be 3"); 525 if (head<0 || head>=nbt) _error_("Bad Subdomain definition: head should in [1 " << nbt << "] (triangle number)"); 526 526 subdomains[i].head = triangles+head; 527 527 } … … 567 567 for (j=0;j<3;j++){ 568 568 int v=GetId(triangles[i][j]); //jth vertex of the ith triangle 569 if (k>3*nbt-1 || k<0) _error 2_("k = " << k << ", nbt = " << nbt);569 if (k>3*nbt-1 || k<0) _error_("k = " << k << ", nbt = " << nbt); 570 570 next_1[k]=head_1[v]; 571 if (v>nbv-1 || v<0) _error 2_("v = " << v << ", nbv = " << nbv);571 if (v>nbv-1 || v<0) _error_("v = " << v << ", nbv = " << nbv); 572 572 head_1[v]=k++; 573 573 connectivitysize_1[v]+=1; … … 707 707 } 708 708 if (!stop){ 709 _error 2_("Element holding segment [" << i1+1 << " " << i2+1 << "] not found...");709 _error_("Element holding segment [" << i1+1 << " " << i2+1 << "] not found..."); 710 710 } 711 711 } … … 805 805 const VertexOnGeom &v=VerticesOnGeomEdge[i]; 806 806 if (!v.OnGeomEdge()){ 807 _error 2_("A vertices supposed to be OnGeomEdge is actually not");807 _error_("A vertices supposed to be OnGeomEdge is actually not"); 808 808 } 809 809 bamgmesh->VerticesOnGeomEdge[i*3+0]=GetId((BamgVertex*)v)+1; //back to Matlab indexing … … 888 888 for (j=0;j<2;j++){ 889 889 int v=(int)bamgmesh->IssmEdges[i*i2+j]-1; //back to C indexing 890 if (k>2*i1-1 || k<0) _error 2_("Index exceed matrix dimensions (k=" << k << " not in [0 " << 2*i1-1 << "]");890 if (k>2*i1-1 || k<0) _error_("Index exceed matrix dimensions (k=" << k << " not in [0 " << 2*i1-1 << "]"); 891 891 next_2[k]=head_2[v]; 892 if (v>nbv-1 || v<0) _error 2_("Index exceed matrix dimensions (v=" << v << " not in [0 " << nbv-1 << "])");892 if (v>nbv-1 || v<0) _error_("Index exceed matrix dimensions (v=" << v << " not in [0 " << nbv-1 << "])"); 893 893 head_2[v]=k++; 894 894 connectivitysize_2[v]+=1; … … 1061 1061 //check that hmax is positive 1062 1062 if (hmax<=0){ 1063 _error 2_("hmax<=0");1063 _error_("hmax<=0"); 1064 1064 } 1065 1065 … … 1090 1090 1091 1091 if (ht<=0 || hn<=0){ 1092 _error 2_("ht<=0 || hn<=0");1092 _error_("ht<=0 || hn<=0"); 1093 1093 } 1094 1094 EigenMetric Vp(1/(ht*ht),1/(hn*hn),tg); … … 1115 1115 } 1116 1116 else{ 1117 _error 2_("Hessiantype " << Hessiantype << " not supported yet (1->use Green formula, 0-> double P2 projection)");1117 _error_("Hessiantype " << Hessiantype << " not supported yet (1->use Green formula, 0-> double P2 projection)"); 1118 1118 } 1119 1119 } … … 1159 1159 //some checks 1160 1160 if (( infvertexindex <0 ) && (detOld <0) || ( infvertexindex >=0 ) && (detOld >0) ){ 1161 _error 2_("inconsistent configuration (Contact ISSM developers)");1161 _error_("inconsistent configuration (Contact ISSM developers)"); 1162 1162 } 1163 1163 … … 1201 1201 } 1202 1202 else{ 1203 _error 2_("Cannot add a vertex more than once. Check duplicates");1203 _error_("Cannot add a vertex more than once. Check duplicates"); 1204 1204 } 1205 1205 } … … 1214 1214 tt[2]= &triangles[nbt++]; 1215 1215 1216 if (nbt>maxnbt) _error 2_("Not enough triangles");1216 if (nbt>maxnbt) _error_("Not enough triangles"); 1217 1217 1218 1218 *tt[1]=*tt[2]=*t; … … 1251 1251 1252 1252 if (!rswap) { 1253 _error 2_("swap the point s is on a edge");1253 _error_("swap the point s is on a edge"); 1254 1254 } 1255 1255 } … … 1318 1318 //check that the mesh is not empty 1319 1319 if (nbt<=0 || nbv <=0 ) { 1320 _error 2_("nbt or nbv is negative (Mesh empty?)");1320 _error_("nbt or nbv is negative (Mesh empty?)"); 1321 1321 } 1322 1322 … … 1340 1340 if (nbe != edge4->nb()){ 1341 1341 delete [] st; 1342 _error 2_("Some Double edge in the mesh, the number is " << nbe << ", nbe4=" << edge4->nb());1342 _error_("Some Double edge in the mesh, the number is " << nbe << ", nbe4=" << edge4->nb()); 1343 1343 } 1344 1344 //keep nbe in nbeold … … 1360 1360 //check that it is not an edge on boundary (should not already exist) 1361 1361 if (triangles[i].TriangleAdj(j) || triangles[st[k]/3].TriangleAdj((int) (st[k]%3))){ 1362 _error 2_("problem in Geometry reconstruction: an edge on boundary is duplicated (double element?)");1362 _error_("problem in Geometry reconstruction: an edge on boundary is duplicated (double element?)"); 1363 1363 } 1364 1364 //OK, the element is not on boundary, is belongs to 2 triangles -> build Adjacent triangles list … … 1378 1378 _printLine_("Edge " << (-st[k]+2)%3 << " of triangle " << (-st[k]+2)/3); 1379 1379 _printLine_("Edge " << triangles[(-st[k]+2)/3].NuEdgeTriangleAdj((int)((-st[k]+2)%3)) << " of triangle " << GetId(triangles[(-st[k]+2)/3].TriangleAdj((int)((-st[k]+2)%3)))); 1380 _error 2_("An edge belongs to more than 2 triangles");1380 _error_("An edge belongs to more than 2 triangles"); 1381 1381 } 1382 1382 } … … 1460 1460 //check that we have been through all edges 1461 1461 if (k!=nbe){ 1462 _error 2_("problem in edge construction process: k!=nbe (should not happen)");1462 _error_("problem in edge construction process: k!=nbe (should not happen)"); 1463 1463 } 1464 1464 //delete edgessave … … 1505 1505 //check that we have the correct vertex 1506 1506 if (v!=edges[i0 ].v[j0]){ 1507 _error 2_("v!=edges[i0 ].v[j0]: this should not happen as the vertex belongs to this edge");1507 _error_("v!=edges[i0 ].v[j0]: this should not happen as the vertex belongs to this edge"); 1508 1508 } 1509 1509 … … 1522 1522 //check that nbsubdomains is empty 1523 1523 if (nbsubdomains){ 1524 _error 2_("nbsubdomains should be 0");1524 _error_("nbsubdomains should be 0"); 1525 1525 } 1526 1526 nbsubdomains=0; … … 1591 1591 if (k!= nbsubdomains){ 1592 1592 delete [] colorT; 1593 _error 2_("k!= nbsubdomains");1593 _error_("k!= nbsubdomains"); 1594 1594 } 1595 1595 //delete colorT and st … … 1652 1652 if (Gh.coefIcoor<=0){ 1653 1653 delete [] colorV; 1654 _error 2_("Gh.coefIcoor<=0 in infered Geometry (this should not happen)");1654 _error_("Gh.coefIcoor<=0 in infered Geometry (this should not happen)"); 1655 1655 } 1656 1656 … … 1705 1705 delete [] len; 1706 1706 delete [] colorV; 1707 _error 2_("problem in Edge4 construction: k != i");1707 _error_("problem in Edge4 construction: k != i"); 1708 1708 } 1709 1709 } … … 1734 1734 } 1735 1735 else 1736 _error 2_("%i should be >=0");1736 _error_("%i should be >=0"); 1737 1737 } 1738 1738 … … 1768 1768 1769 1769 /*Check size*/ 1770 if (bamgopts->fieldSize[0] != nbv) _error 2_("'field' should have " << nbv << " rows");1770 if (bamgopts->fieldSize[0] != nbv) _error_("'field' should have " << nbv << " rows"); 1771 1771 1772 1772 //initialization of some variables … … 1973 1973 1974 1974 /*Check size*/ 1975 if (bamgopts->fieldSize[0] != nbv) _error 2_("'field' should have " << nbv << " rows");1975 if (bamgopts->fieldSize[0] != nbv) _error_("'field' should have " << nbv << " rows"); 1976 1976 1977 1977 //initialization of some variables … … 2298 2298 if (splitvertex[i1]==3 || splitvertex[i2]==3){ 2299 2299 delete [] splitvertex; 2300 _error 2_("Crossing rifts not supported yet");2300 _error_("Crossing rifts not supported yet"); 2301 2301 } 2302 2302 } … … 2376 2376 //_printLine_(element_renu[GetId(ta.t)] << " -> " << GetId((*ta.t)[0])+1 << " " << GetId((*ta.t)[1])+1 << " " << GetId((*ta.t)[2])+1 << ", edge [" << i1 << "->" << j1 << " " << i2 << "->" << j2 << "]"); 2377 2377 ta = Next(ta).Adj(); 2378 if (count++>50) _error 2_("Maximum number of iteration exceeded");2378 if (count++>50) _error_("Maximum number of iteration exceeded"); 2379 2379 }while ((tbegin != ta)); 2380 2380 } … … 2383 2383 for(i=0;i<NbCrackedEdges;i++){ 2384 2384 if (Edgeflags[i]!=2){ 2385 _error 2_("A problem occured: at least one crack edge (number " << i+1 << ") does not belong to 2 elements");2385 _error_("A problem occured: at least one crack edge (number " << i+1 << ") does not belong to 2 elements"); 2386 2386 } 2387 2387 } … … 2433 2433 } 2434 2434 if (k!=0) { 2435 _error 2_("there is " << k << " triangles of mes = 0");2435 _error_("there is " << k << " triangles of mes = 0"); 2436 2436 } 2437 2437 … … 2447 2447 if (nbswp) nbfe++; 2448 2448 if ( nbswp < 0 && k < 5){ 2449 _error 2_("Missing Edge " << i << ", v0=" << GetId(edges[i][0]) << ",v1=" << GetId(edges[i][1]));2449 _error_("Missing Edge " << i << ", v0=" << GetId(edges[i][0]) << ",v1=" << GetId(edges[i][1])); 2450 2450 } 2451 2451 } 2452 2452 2453 2453 if (k!=0) { 2454 _error 2_("There are " << k << " lost edges, the boundary might be crossing");2454 _error_("There are " << k << " lost edges, the boundary might be crossing"); 2455 2455 } 2456 2456 for (int j=0;j<nbv;j++){ … … 2534 2534 if (nbt == nbtout || !NbSubDomTot) { 2535 2535 delete [] HeapArete; 2536 _error 2_("The boundary is not close: all triangles are outside");2536 _error_("The boundary is not close: all triangles are outside"); 2537 2537 } 2538 2538 … … 2572 2572 if (k!=nbsubdomains){ 2573 2573 delete [] mark; 2574 _error 2_("k!=nbsubdomains");2574 _error_("k!=nbsubdomains"); 2575 2575 } 2576 2576 if(OutSide) … … 2662 2662 subdomains[i].head=t=ta; 2663 2663 if(t<triangles || t >= triangles+nbt || t->det < 0 || t->link == 0) { 2664 _error 2_("bad definition of SubSomain " << i);2664 _error_("bad definition of SubSomain " << i); 2665 2665 } 2666 2666 long it = GetId(t); … … 2677 2677 kkk++; 2678 2678 if (mark[GetId(tt)]>=0){ 2679 _error 2_("mark[GetId(tt)]>=0");2679 _error_("mark[GetId(tt)]>=0"); 2680 2680 } 2681 2681 mark[GetId(tt)]=i; … … 2686 2686 ta = Previous(Adj(ta)); 2687 2687 if(t == (Triangle *) ta) { 2688 _error 2_("bad definition of SubSomain " << i);2688 _error_("bad definition of SubSomain " << i); 2689 2689 } 2690 2690 } … … 2848 2848 //if i is higher than nbv, it means that all the determinants are 0, 2849 2849 //all vertices are aligned! 2850 if (++i>=nbv) _error 2_("all the vertices are aligned");2850 if (++i>=nbv) _error_("all the vertices are aligned"); 2851 2851 } 2852 2852 // exchange i et 2 in "orderedvertices" so that … … 2984 2984 long j=vj.ReferenceNumber; 2985 2985 if (&vj!=orderedvertices[j]){ 2986 _error 2_("&vj!= orderedvertices[j]");2986 _error_("&vj!= orderedvertices[j]"); 2987 2987 } 2988 2988 if(i!=j){ … … 2994 2994 if (tcvj && !tcvj->link){ 2995 2995 tcvj->Echo(); 2996 _error 2_("problem inserting point in InsertNewPoints (tcvj=" << tcvj << " and tcvj->link=" << tcvj->link << ")");2996 _error_("problem inserting point in InsertNewPoints (tcvj=" << tcvj << " and tcvj->link=" << tcvj->link << ")"); 2997 2997 } 2998 2998 quadtree->Add(vj); … … 3026 3026 3027 3027 if (!Gh.nbe){ 3028 _error 2_("!Gh.nbe");3028 _error_("!Gh.nbe"); 3029 3029 } 3030 3030 Edge **e= new (Edge* [Gh.nbe]); … … 3059 3059 } 3060 3060 } 3061 if(kk) _error 2_("See above");3061 if(kk) _error_("See above"); 3062 3062 3063 3063 return e; … … 3258 3258 //check i 3259 3259 if (i<0 || i>=nbt ){ 3260 _error 2_("Index problem in NewPoints (i=" << i << " not in [0 " << nbt-1 << "])");3260 _error_("Index problem in NewPoints (i=" << i << " not in [0 " << nbt-1 << "])"); 3261 3261 } 3262 3262 //change first_np_or_next_t[i] … … 3309 3309 } 3310 3310 if (ta.EdgeVertex(0)!=s){ 3311 _error 2_("ta.EdgeVertex(0)!=s");3311 _error_("ta.EdgeVertex(0)!=s"); 3312 3312 } 3313 3313 ta = Next(Adj(ta)); … … 3344 3344 } 3345 3345 else { 3346 _error 2_("ProjectOnCurve On BamgVertex " << BTh.GetId(vA) << " forget call to SetVertexFieldOnBTh");3346 _error_("ProjectOnCurve On BamgVertex " << BTh.GetId(vA) << " forget call to SetVertexFieldOnBTh"); 3347 3347 } 3348 3348 … … 3355 3355 } 3356 3356 else { 3357 _error 2_("ProjectOnCurve On BamgVertex " << BTh.GetId(vB) << " forget call to SetVertexFieldOnBTh");3357 _error_("ProjectOnCurve On BamgVertex " << BTh.GetId(vB) << " forget call to SetVertexFieldOnBTh"); 3358 3358 } 3359 3359 Edge * e = &BhAB; 3360 3360 if (!pA || !pB || !e){ 3361 _error 2_("!pA || !pB || !e");3361 _error_("!pA || !pB || !e"); 3362 3362 } 3363 3363 // be carefull the back ground edge e is on same geom edge … … 3365 3365 //check Is a background Mesh; 3366 3366 if (e<BTh.edges || e>=BTh.edges+BTh.nbe){ 3367 _error 2_("e<BTh.edges || e>=BTh.edges+BTh.nbe");3367 _error_("e<BTh.edges || e>=BTh.edges+BTh.nbe"); 3368 3368 } 3369 3369 // walk on BTh edge … … 3388 3388 } 3389 3389 else{ // do the search by walking 3390 _error 2_("case not supported yet");3390 _error_("case not supported yet"); 3391 3391 } 3392 3392 … … 3452 3452 3453 3453 } 3454 _error 2_("Big bug...");3454 _error_("Big bug..."); 3455 3455 return 0; // just for the compiler 3456 3456 } … … 3493 3493 } 3494 3494 if (kk != nbe){ 3495 _error 2_("There are " << kk-nbe << " double edges in the mesh");3495 _error_("There are " << kk-nbe << " double edges in the mesh"); 3496 3496 } 3497 3497 … … 3525 3525 //An edge belongs to 2 triangles 3526 3526 else { 3527 _error 2_("The edge (" << GetId(triangles[i][VerticesOfTriangularEdge[j][0]]) << " , " << GetId(triangles[i][VerticesOfTriangularEdge[j][1]]) << ") belongs to more than 2 triangles");3527 _error_("The edge (" << GetId(triangles[i][VerticesOfTriangularEdge[j][0]]) << " , " << GetId(triangles[i][VerticesOfTriangularEdge[j][1]]) << ") belongs to more than 2 triangles"); 3528 3528 } 3529 3529 } … … 3563 3563 } 3564 3564 if(k) { 3565 _error 2_(k << " boundary edges (from the geometry) are not defined as mesh edges");3565 _error_(k << " boundary edges (from the geometry) are not defined as mesh edges"); 3566 3566 } 3567 3567 … … 3590 3590 for (i=2;det(orderedvertices[0]->i,orderedvertices[1]->i,orderedvertices[i]->i)==0;) 3591 3591 if (++i>=nbvb) { 3592 _error 2_("ReconstructExistingMesh: All the vertices are aligned");3592 _error_("ReconstructExistingMesh: All the vertices are aligned"); 3593 3593 } 3594 3594 //Move this vertex (i) to the 2d position in orderedvertices … … 3650 3650 } 3651 3651 if(nbloss) { 3652 _error 2_("we lost " << nbloss << " existing edges other " << knbe);3652 _error_("we lost " << nbloss << " existing edges other " << knbe); 3653 3653 } 3654 3654 … … 3725 3725 subdomains = savesubdomains; 3726 3726 if (k) { 3727 _error 2_("number of triangles edges alone = " << k);3727 _error_("number of triangles edges alone = " << k); 3728 3728 } 3729 3729 FindSubDomain(); … … 3755 3755 3756 3756 _printLine_("This edge is on geometry and has no adjacent edge (open curve) and one of the tip is not required"); 3757 _error 2_("See above (might be cryptic...)");3757 _error_("See above (might be cryptic...)"); 3758 3758 } 3759 3759 } … … 3778 3778 t=t0=subdomains[i].head; 3779 3779 if (!t0){ // not empty sub domain 3780 _error 2_("!t0");3780 _error_("!t0"); 3781 3781 } 3782 3782 do { 3783 3783 long kt = GetId(t); 3784 3784 if (kt<0 || kt >= nbt ){ 3785 _error 2_("kt<0 || kt >= nbt");3785 _error_("kt<0 || kt >= nbt"); 3786 3786 } 3787 3787 if (renu[kt]!=-1){ 3788 _error 2_("renu[kt]!=-1");3788 _error_("renu[kt]!=-1"); 3789 3789 } 3790 3790 renu[kt]=k++; … … 3803 3803 } 3804 3804 if (k != nbt){ 3805 _error 2_("k != nbt");3805 _error_("k != nbt"); 3806 3806 } 3807 3807 // do the change on all the pointeur … … 3929 3929 coefIcoor= (MaxICoor)/(Max(pmax.x-pmin.x,pmax.y-pmin.y)); 3930 3930 if (coefIcoor<=0){ 3931 _error 2_("coefIcoor should be positive, a problem in the geometry is likely");3931 _error_("coefIcoor should be positive, a problem in the geometry is likely"); 3932 3932 } 3933 3933 … … 3965 3965 } 3966 3966 3967 if (number_of_errors) _error 2_("Fatal error: some triangles have negative areas, see above");3967 if (number_of_errors) _error_("Fatal error: some triangles have negative areas, see above"); 3968 3968 } 3969 3969 /*}}}*/ … … 4146 4146 register Triangle* t= vertices[i].t; 4147 4147 if (!t){ 4148 _error 2_("!t");4148 _error_("!t"); 4149 4149 } 4150 4150 BamgVertex & vi = vertices[i]; … … 4154 4154 ta=Previous(Adj(ta)); 4155 4155 if (vertices+i != ta.EdgeVertex(1)){ 4156 _error 2_("vertices+i != ta.EdgeVertex(1)");4156 _error_("vertices+i != ta.EdgeVertex(1)"); 4157 4157 } 4158 4158 BamgVertex & vj = *(ta.EdgeVertex(0)); … … 4160 4160 j= &vj-vertices; 4161 4161 if (j<0 || j >= nbv){ 4162 _error 2_("j<0 || j >= nbv");4162 _error_("j<0 || j >= nbv"); 4163 4163 } 4164 4164 R2 Aij = (R2) vj - (R2) vi; … … 4284 4284 // the first PB is to now a background edge between the 2 vertices 4285 4285 if (!edgesGtoB){ 4286 _error 2_("!edgesGtoB");4286 _error_("!edgesGtoB"); 4287 4287 } 4288 4288 ong= ProjectOnCurve(*edgesGtoB[Gh.GetId(edges[i].GeomEdgeHook)], … … 4356 4356 Triangle & t = triangles[i]; 4357 4357 if (!t.link){ 4358 _error 2_("!t.link");4358 _error_("!t.link"); 4359 4359 } 4360 4360 for(int j=0;j<3;j++) … … 4383 4383 || (cc=Area2( t[0].r , t[1].r , A.r )) < 0.0)){ 4384 4384 _printLine_(ke + nbvold << " not in triangle " << i << " In= " << !!t.link << " " << aa << " " << bb << " " << cc << " " << dd); 4385 _error 2_("Number of triangles with P2 interpolation Problem");4385 _error_("Number of triangles with P2 interpolation Problem"); 4386 4386 } 4387 4387 } … … 4391 4391 || (cc=Area2( tt[0].r , tt[1].r , A.r )) < 0)){ 4392 4392 _printLine_(ke + nbvold << " not in triangle " << ii << " In= " << !!tt.link << " " << aa << " " << bb << " " << cc << " " << dd); 4393 _error 2_("Number of triangles with P2 interpolation Problem");4393 _error_("Number of triangles with P2 interpolation Problem"); 4394 4394 } 4395 4395 } … … 4439 4439 } // tt 4440 4440 else 4441 _error 2_("Bug...");4441 _error_("Bug..."); 4442 4442 } // ke<0 4443 4443 else … … 4452 4452 } 4453 4453 if (nbinvisible>=2){ 4454 _error 2_("nbinvisible>=2");4454 _error_("nbinvisible>=2"); 4455 4455 } 4456 4456 switch (nbsplitedge) { … … 4464 4464 } 4465 4465 if (ksplit[i]<40){ 4466 _error 2_("ksplit[i]<40");4466 _error_("ksplit[i]<40"); 4467 4467 } 4468 4468 } … … 4481 4481 int ke=(int) (ksplit[i]%10); 4482 4482 if (kk>=7 || kk<=0){ 4483 _error 2_("kk>=7 || kk<=0");4483 _error_("kk>=7 || kk<=0"); 4484 4484 } 4485 4485 … … 4498 4498 4499 4499 if (nbmkadj>=10){ 4500 _error 2_("nbmkadj>=10");4500 _error_("nbmkadj>=10"); 4501 4501 } 4502 4502 // -------------------------- … … 4516 4516 t1=t0; 4517 4517 if (kedge[3*i+i0]<0){ 4518 _error 2_("kedge[3*i+i0]<0");4518 _error_("kedge[3*i+i0]<0"); 4519 4519 } 4520 4520 BamgVertex * v3 = vertices + kedge[3*i+k0]; … … 4532 4532 t2=t1=t0; 4533 4533 if (kedge[3*i+k1]<0){ 4534 _error 2_("kedge[3*i+k1]<0");4534 _error_("kedge[3*i+k1]<0"); 4535 4535 } 4536 4536 if (kedge[3*i+k2]<0){ 4537 _error 2_("kedge[3*i+k2]<0");4537 _error_("kedge[3*i+k2]<0"); 4538 4538 } 4539 4539 … … 4559 4559 t3=t2=t1=t0; 4560 4560 if (kedge[3*i+k0] <0 || kedge[3*i+k1]<0 || kedge[3*i+k2]<0){ 4561 _error 2_("kedge[3*i+k0] <0 || kedge[3*i+k1]<0 || kedge[3*i+k2]<0");4561 _error_("kedge[3*i+k0] <0 || kedge[3*i+k1]<0 || kedge[3*i+k2]<0"); 4562 4562 } 4563 4563 BamgVertex * v12 = vertices + kedge[3*i+k0]; … … 4633 4633 } 4634 4634 if (nbmkadj>13){// 13 = 6 + 4 + 4635 _error 2_("nbmkadj>13");4635 _error_("nbmkadj>13"); 4636 4636 } 4637 4637 … … 4759 4759 quadtree->Add(vi); 4760 4760 if (!tcvi || tcvi->det<0){// internal 4761 _error 2_("!tcvi || tcvi->det < 0");4761 _error_("!tcvi || tcvi->det < 0"); 4762 4762 } 4763 4763 AddVertex(vi,tcvi,det3); … … 4802 4802 4803 4803 /*Check that the quadtree does exist*/ 4804 if (!quadtree) _error 2_("no starting triangle provided and no quadtree available");4804 if (!quadtree) _error_("no starting triangle provided and no quadtree available"); 4805 4805 4806 4806 /*Call NearestVertex*/ … … 4808 4808 4809 4809 /*Check output (Vertex a)*/ 4810 if (!a) _error 2_("problem while trying to find nearest vertex from a given point. No output found");4811 if (!a->t) _error 2_("no triangle is associated to vertex number " << GetId(a)+1 << " (orphan?)");4810 if (!a) _error_("problem while trying to find nearest vertex from a given point. No output found"); 4811 if (!a->t) _error_("no triangle is associated to vertex number " << GetId(a)+1 << " (orphan?)"); 4812 4812 _assert_(a>=vertices && a<vertices+nbv); 4813 4813 … … 4844 4844 4845 4845 /*Increase counter*/ 4846 if (++counter>=10000) _error 2_("Maximum number of iteration reached (threshold = " << counter << ").");4846 if (++counter>=10000) _error_("Maximum number of iteration reached (threshold = " << counter << ")."); 4847 4847 4848 4848 j= OppositeVertex[jj]; … … 4908 4908 4909 4909 //check that the subdomain is not empty 4910 if (!t0){ _error 2_("At least one subdomain is empty");}4910 if (!t0){ _error_("At least one subdomain is empty");} 4911 4911 4912 4912 //loop … … 4991 4991 //allocate 4992 4992 VerticesOnGeomVertex = new VertexOnGeom[NbVerticesOnGeomVertex]; 4993 if(NbVerticesOnGeomVertex >= maxnbv) _error 2_("too many vertices on geometry: " << NbVerticesOnGeomVertex << " >= " << maxnbv);4993 if(NbVerticesOnGeomVertex >= maxnbv) _error_("too many vertices on geometry: " << NbVerticesOnGeomVertex << " >= " << maxnbv); 4994 4994 _assert_(nbv==0); 4995 4995 //Build VerticesOnGeomVertex … … 5080 5080 NbNewPoints=0; 5081 5081 NbEdgeCurve=0; 5082 if (nbvend>=maxnbv) _error 2_("maximum number of vertices too low! Check the domain outline or increase maxnbv");5082 if (nbvend>=maxnbv) _error_("maximum number of vertices too low! Check the domain outline or increase maxnbv"); 5083 5083 lcurve =0; 5084 5084 s = lstep; //-1 initially, then length of each sub edge … … 5322 5322 printf("\n"); 5323 5323 if(NbVerticesOnGeomVertex >= maxnbv){ 5324 _error 2_("too many vertices on geometry: " << NbVerticesOnGeomVertex << " >= " << maxnbv);5324 _error_("too many vertices on geometry: " << NbVerticesOnGeomVertex << " >= " << maxnbv); 5325 5325 } 5326 5326 … … 5393 5393 if (bfind!=Gh.nbcurves){ 5394 5394 delete [] bcurve; 5395 _error 2_("problem generating number of curves (" << Gh.nbcurves << " found in the geometry but " << bfind << " curve found in the mesh)");5395 _error_("problem generating number of curves (" << Gh.nbcurves << " found in the geometry but " << bfind << " curve found in the mesh)"); 5396 5396 } 5397 5397 … … 5492 5492 double se= (sNew-L0)/LAB; 5493 5493 if (se<0 || se>=1.000000001){ 5494 _error 2_("Problem creating point on a boundary: se=" << se << " should be in [0 1]");5494 _error_("Problem creating point on a boundary: se=" << se << " should be in [0 1]"); 5495 5495 } 5496 5496 se = abscisseInterpole(v0.m,v1.m,AB,se,1); 5497 5497 if (se<0 || se>1){ 5498 _error 2_("Problem creating point on a boundary: se=" << se << " should be in [0 1]");5498 _error_("Problem creating point on a boundary: se=" << se << " should be in [0 1]"); 5499 5499 } 5500 5500 se = k1 ? se : 1. - se; … … 5528 5528 } 5529 5529 if (!ee.adj[k1]) { 5530 _error 2_("adj edge " << BTh.GetId(ee) << ", nbe=" << nbe << ", Gh.vertices=" << Gh.vertices);5530 _error_("adj edge " << BTh.GetId(ee) << ", nbe=" << nbe << ", Gh.vertices=" << Gh.vertices); 5531 5531 } 5532 5532 pe = ee.adj[k1]; // next edge … … 5566 5566 if(step==0){ 5567 5567 if(nbv+NbOfNewPoints > maxnbv) { 5568 _error 2_("too many vertices on geometry: " << nbv+NbOfNewPoints << " >= " << maxnbv);5568 _error_("too many vertices on geometry: " << nbv+NbOfNewPoints << " >= " << maxnbv); 5569 5569 } 5570 5570 edges = new Edge[NbOfNewEdge]; … … 5611 5611 int dir=0; 5612 5612 if (k<0){ 5613 _error 2_("k<0");5613 _error_("k<0"); 5614 5614 } 5615 5615 int kkk=0; … … 5619 5619 kkk++; 5620 5620 if (kkk>=1000){ 5621 _error 2_("kkk>=1000");5621 _error_("kkk>=1000"); 5622 5622 } 5623 5623 BamgVertex &vI = *edge.EdgeVertex(0); … … 5636 5636 double IJ2 = IJ_IA + IJ_AJ; 5637 5637 if (IJ2==0){ 5638 _error 2_("IJ2==0");5638 _error_("IJ2==0"); 5639 5639 } 5640 5640 a= IJ_AJ/IJ2; … … 5650 5650 int NbSwap =0; 5651 5651 if (!a.t || !b.t){ // the 2 vertex is in a mesh 5652 _error 2_("!a.t || !b.t");5652 _error_("!a.t || !b.t"); 5653 5653 } 5654 5654 int k=0; … … 5667 5667 vbegin =v2; 5668 5668 if (!v2){ 5669 _error 2_("!v2");5669 _error_("!v2"); 5670 5670 } 5671 5671 det2 = det(*v2,a,b); … … 5684 5684 tc = Previous(tc); 5685 5685 if (!v1 || !v2){ 5686 _error 2_("!v1 || !v2");5686 _error_("!v1 || !v2"); 5687 5687 } 5688 5688 Icoor2 detss = 0,l=0,ks; 5689 5689 while ((ks=SwapForForcingEdge( va, vb, tc, detss, det1,det2,NbSwap))) 5690 5690 if(l++ > 10000000) { 5691 _error 2_("Loop in forcing Egde, nb de swap=" << NbSwap << ", nb of try swap (" << l << ") too big");5691 _error_("Loop in forcing Egde, nb de swap=" << NbSwap << ", nb of try swap (" << l << ") too big"); 5692 5692 } 5693 5693 BamgVertex *aa = tc.EdgeVertex(0), *bb = tc.EdgeVertex(1); … … 5708 5708 k++; 5709 5709 if (k>=2000){ 5710 _error 2_("k>=2000");5710 _error_("k>=2000"); 5711 5711 } 5712 5712 if ( vbegin == v2 ) return -1;// error … … 5780 5780 short a1=tt1,a2=tt2;// les 2 numero de l arete dans les 2 triangles 5781 5781 if ( a1<0 || a1>=3 ){ 5782 _error 2_("a1<0 || a1>=3");5782 _error_("a1<0 || a1>=3"); 5783 5783 } 5784 5784 … … 5792 5792 Icoor2 detT = det1+det2; 5793 5793 if ((det1<=0 ) || (det2<=0)){ 5794 _error 2_("(det1<=0 ) || (det2<=0)");5794 _error_("(det1<=0 ) || (det2<=0)"); 5795 5795 } 5796 5796 if ( (detsa>=0) || (detsb<=0) ){ // [a,b] cut infinite line va,bb 5797 _error 2_("(detsa>=0) || (detsb<=0)");5797 _error_("(detsa>=0) || (detsb<=0)"); 5798 5798 } 5799 5799 Icoor2 ndet1 = bamg::det(s1,sa,s2);
Note:
See TracChangeset
for help on using the changeset viewer.