Changeset 3335
- Timestamp:
- 03/25/10 15:45:46 (15 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/Bamgx/objects/GeometricalEdge.cpp
r3332 r3335 2 2 #include <string.h> 3 3 #include <cmath> 4 #include <assert.h>5 4 6 5 #include "GeometricalEdge.h" … … 25 24 26 25 //check theta 27 assert(theta>=0 && theta<=1);26 ISSMASSERT(theta>=0 && theta<=1); 28 27 29 28 if (TgA()){ -
issm/trunk/src/c/Bamgx/objects/GeometricalVertex.cpp
r3332 r3335 3 3 #include <cmath> 4 4 #include <ctime> 5 #include <assert.h>6 5 7 6 #include "GeometricalVertex.h" … … 47 46 GeometricalVertex* GeometricalVertex::The(){ 48 47 // return a unique vertex 49 assert(link);48 ISSMASSERT(link); 50 49 return link; 51 50 }/*}}}*/ -
issm/trunk/src/c/Bamgx/objects/Geometry.cpp
r3332 r3335 3 3 #include <cmath> 4 4 #include <ctime> 5 #include <assert.h>6 5 7 6 #include "BamgObjects.h" … … 735 734 } 736 735 } 737 assert(nbgem && nbe);736 ISSMASSERT(nbgem && nbe); 738 737 if(step==0){ 739 738 curves = new Curve[NbOfCurves]; … … 894 893 GeometricalEdge* tmpge = eg0; 895 894 ge[--bge] =eg0 = eg0->Adj[sens0]; 896 assert(bge>=0 && bge<=mxe);895 ISSMASSERT(bge>=0 && bge<=mxe); 897 896 sens0 = 1-( sensge[bge] = tmpge->DirAdj[sens0]); 898 897 } … … 912 911 ge[++tge] =eg1 = eg1->Adj[sens1]; 913 912 sensge[tge]= sens1 = 1-tmpge->DirAdj[sens1]; 914 assert(tge>=0 && tge<=mxe);913 ISSMASSERT(tge>=0 && tge<=mxe); 915 914 } 916 915 … … 934 933 double ll=0; 935 934 for(i=bge;i<tge;i++){ 936 assert(i>=0 && i<=mxe);935 ISSMASSERT(i>=0 && i<=mxe); 937 936 BB = (*ge[i])[sensge[i]]; 938 937 lge[i]=ll += Norme2(AA-BB); … … 962 961 sg =s0*(1.0-s)+s*s1; 963 962 } 964 assert(on);963 ISSMASSERT(on); 965 964 V.r= on->F(sg); 966 965 GV=VertexOnGeom(V,*on,sg); -
issm/trunk/src/c/Bamgx/objects/SetOfE4.cpp
r3332 r3335 1 #include <assert.h>2 1 #include "BamgObjects.h" 3 2 … … 35 34 36 35 //check that head is not empty 37 assert(head);36 ISSMASSERT(head); 38 37 39 38 //get n from h (usually h=ii) … … 62 61 63 62 //get n from h (usually h=ii) 64 assert(head);63 ISSMASSERT(head); 65 64 n=head[h=Abs(ii)%nx]; 66 65 -
issm/trunk/src/c/Bamgx/objects/Triangles.cpp
r3332 r3335 3 3 #include <cmath> 4 4 #include <ctime> 5 #include <assert.h>6 5 7 6 #include "BamgObjects.h" … … 459 458 j0 = i0%2; 460 459 i0 = i0/2; 461 assert(v==edges[i0 ].v[j0]);460 ISSMASSERT(v==edges[i0 ].v[j0]); 462 461 edges[i ].adj[j ] =edges +i0; 463 462 edges[i0].adj[j0] =edges +i ; … … 759 758 for (i=0;i<NbVerticesOnGeomVertex;i++){ 760 759 VertexOnGeom &v=VerticesOnGeomVertex[i]; 761 assert(v.OnGeomVertex());760 ISSMASSERT(v.OnGeomVertex()); 762 761 bamgmesh->VerticesOnGeometricVertex[i*2+0]=Number((Vertex*)v)+1; //back to Matlab indexing 763 762 bamgmesh->VerticesOnGeometricVertex[i*2+1]=Gh.Number((GeometricalVertex*)v)+1; //back to Matlab indexing … … 814 813 k=Number(triangles[i].TriangleAdj(j)); 815 814 if (reft[k]>=0){ 816 assert(3*num+j<3*(nbt-NbOutT));815 ISSMASSERT(3*num+j<3*(nbt-NbOutT)); 817 816 bamgmesh->ElementConnectivity[3*num+j]=k+1; // back to Matlab indexing 818 817 } … … 831 830 k=0; 832 831 for(j=head_1[i];j!=-1;j=next_1[j]){ 833 assert(connectivitymax_1*i+k < connectivitymax_1*nbv);832 ISSMASSERT(connectivitymax_1*i+k < connectivitymax_1*nbv); 834 833 bamgmesh->NodalElementConnectivity[connectivitymax_1*i+k]=floor(j/3)+1; 835 834 k++; … … 876 875 k=0; 877 876 for(j=head_2[i];j!=-1;j=next_2[j]){ 878 assert(connectivitymax_2*i+k < connectivitymax_2*nbv);877 ISSMASSERT(connectivitymax_2*i+k < connectivitymax_2*nbv); 879 878 num=(int)bamgmesh->ElementEdges[int(j/2)*i2+0]; 880 879 if (i+1==num){ //carefull, ElementEdge is in M indexing … … 2211 2210 i1=Number(edges[i][0]); 2212 2211 i2=Number(edges[i][1]); 2213 assert(i1>=0 && i1<nbv && i2>=0 && i2<nbv);2212 ISSMASSERT(i1>=0 && i1<nbv && i2>=0 && i2<nbv); 2214 2213 splitvertex[i1]++; 2215 2214 splitvertex[i2]++; … … 2225 2224 } 2226 2225 } 2227 assert(k==NbCrackedEdges);2226 ISSMASSERT(k==NbCrackedEdges); 2228 2227 2229 2228 //Add new vertices … … 2239 2238 } 2240 2239 } 2241 assert(num==NbCrackedVertices);2240 ISSMASSERT(num==NbCrackedVertices); 2242 2241 } 2243 2242 delete [] splitvertex; … … 2257 2256 Triangle* tbegin=vertices[i1].t; 2258 2257 k=vertices[i1].vint;//local number of i in triangle tbegin 2259 assert(Number((*tbegin)[k])==Number(vertices[i1]));2258 ISSMASSERT(Number((*tbegin)[k])==Number(vertices[i1])); 2260 2259 2261 2260 //Now, we are going to go through the adjacent triangle that hold i1 till … … 2283 2282 if (Edgeflags[i]==0){ 2284 2283 //first element 2285 CrackedEdges[ k].a=ta.t;2286 CrackedEdges[ k].length=Norme2((*ta.t)[j1].r-(*ta.t)[j2].r);2287 CrackedEdges[ k].normal=Orthogonal((*ta.t)[j1].r-(*ta.t)[j2].r);2284 CrackedEdges[i].a=ta.t; 2285 CrackedEdges[i].length=Norme2((*ta.t)[j1].r-(*ta.t)[j2].r); 2286 CrackedEdges[i].normal=Orthogonal((*ta.t)[j1].r-(*ta.t)[j2].r); 2288 2287 } 2289 2288 else{ 2290 2289 //Second element -> to renumber 2291 CrackedEdges[ k].b=ta.t;2292 CrackedEdges[ k].length=Norme2((*ta.t)[j1].r-(*ta.t)[j2].r);2293 CrackedEdges[ k].normal=Orthogonal((*ta.t)[j1].r-(*ta.t)[j2].r);2290 CrackedEdges[i].b=ta.t; 2291 CrackedEdges[i].length=Norme2((*ta.t)[j1].r-(*ta.t)[j2].r); 2292 CrackedEdges[i].normal=Orthogonal((*ta.t)[j1].r-(*ta.t)[j2].r); 2294 2293 } 2295 2294 Edgeflags[i]++; … … 3056 3055 3057 3056 //Check that background mesh and current mesh do have the same geometry 3058 assert(&BTh.Gh==&Gh);3057 ISSMASSERT(&BTh.Gh==&Gh); 3059 3058 BTh.NbRef++; // add a ref to BackGround Mesh 3060 3059 … … 3088 3087 3089 3088 //At this point there is NO vertex but vertices should be have been allocated by PreInit 3090 assert(vertices);3089 ISSMASSERT(vertices); 3091 3090 for (i=0;i<Gh.nbv;i++){ 3092 3091 if (Gh[i].Required()) {//Gh vertices Required … … 3104 3103 GeometricalVertex* gv=vog; 3105 3104 Vertex *bv = vog; 3106 assert(gv->to); // use of Geom -> Th3105 ISSMASSERT(gv->to); // use of Geom -> Th 3107 3106 VertexOnBThVertex[NbVertexOnBThVertex++]=VertexOnVertex(gv->to,bv); 3108 3107 gv->to->m = bv->m; // for taking the metrix of the background mesh 3109 3108 } 3110 3109 } 3111 assert(NbVertexOnBThVertex==NbVerticesOnGeomVertex);3110 ISSMASSERT(NbVertexOnBThVertex==NbVerticesOnGeomVertex); 3112 3111 3113 3112 /*STEP 2: reseed bounday edges*/ … … 3197 3196 3198 3197 // New Curve phase 3199 assert(A0-vertices>=0 && A0-vertices<nbv);3198 ISSMASSERT(A0-vertices>=0 && A0-vertices<nbv); 3200 3199 if(ongequi->Required()){ 3201 3200 GeometricalVertex *GA1 = *(*peequi)[1-k0equi].onGeometry; … … 3208 3207 k1 = 1-k0; // next vertex of the edge 3209 3208 k1equi= 1 - k0equi; 3210 assert(pe && ee.onGeometry);3209 ISSMASSERT(pe && ee.onGeometry); 3211 3210 ee.onGeometry->SetMark(); 3212 3211 Vertex & v0=ee[0], & v1=ee[1]; … … 3221 3220 3222 3221 //some checks 3223 assert(sNew>=L0);3224 assert(LAB);3225 assert(vertices && nbv<nbvx);3226 assert(edges && nbe<nbex);3227 assert(VerticesOnGeomEdge && NbVerticesOnGeomEdge<NbVerticesOnGeomEdgex);3222 ISSMASSERT(sNew>=L0); 3223 ISSMASSERT(LAB); 3224 ISSMASSERT(vertices && nbv<nbvx); 3225 ISSMASSERT(edges && nbe<nbex); 3226 ISSMASSERT(VerticesOnGeomEdge && NbVerticesOnGeomEdge<NbVerticesOnGeomEdgex); 3228 3227 3229 3228 // new vertex on edge … … 3260 3259 3261 3260 //some checks 3262 assert(ee.onGeometry->CurveNumber==ei.onGeometry->CurveNumber);3261 ISSMASSERT(ee.onGeometry->CurveNumber==ei.onGeometry->CurveNumber); 3263 3262 if (ee[k1].onGeometry->IsRequiredVertex()) { 3264 assert(eeequi[k1equi].onGeometry->IsRequiredVertex());3263 ISSMASSERT(eeequi[k1equi].onGeometry->IsRequiredVertex()); 3265 3264 register GeometricalVertex * GA1 = *eeequi[k1equi].onGeometry; 3266 3265 A1=GA1->to;// the vertex in new mesh 3267 assert(A1-vertices>=0 && A1-vertices<nbv);3266 ISSMASSERT(A1-vertices>=0 && A1-vertices<nbv); 3268 3267 break; 3269 3268 } … … 3290 3289 PreviousNewEdge = e; 3291 3290 3292 assert(i==NbCreatePointOnCurve);3291 ISSMASSERT(i==NbCreatePointOnCurve); 3293 3292 } 3294 3293 } // end loop on equi curve … … 3325 3324 } 3326 3325 } 3327 assert(nbe!=0);3326 ISSMASSERT(nbe!=0); 3328 3327 delete [] bcurve; 3329 3328 … … 4093 4092 4094 4093 //initialize ordre 4095 assert(ordre);4094 ISSMASSERT(ordre); 4096 4095 for (i=0;i<nbv;i++) ordre[i]=0; 4097 4096 … … 4127 4126 //If the edge already exists, add adjacency 4128 4127 else if(st[k]>=0) { 4129 assert(!triangles[i].TriangleAdj(j));4130 assert(!triangles[st[k]/3].TriangleAdj((int) (st[k]%3)));4128 ISSMASSERT(!triangles[i].TriangleAdj(j)); 4129 ISSMASSERT(!triangles[st[k]/3].TriangleAdj((int) (st[k]%3))); 4131 4130 4132 4131 triangles[i].SetAdj2(j,triangles+st[k]/3,(int)(st[k]%3)); … … 4287 4286 long k =edge4->SortAndAdd(v0?Number(v0):nbv,v1? Number(v1):nbv); 4288 4287 4289 assert(st[k]>=0);4288 ISSMASSERT(st[k]>=0); 4290 4289 tta.SetAdj2(ja,savetriangles + st[k] / 3,(int) (st[k]%3)); 4291 4290 ta.SetLock(); … … 4305 4304 } 4306 4305 } 4307 assert(savenbt+NbTfillHoll<=savenbtx);4306 ISSMASSERT(savenbt+NbTfillHoll<=savenbtx); 4308 4307 4309 4308 // copy of the outside triangles in saveTriangles -
issm/trunk/src/c/include/macros.h
r3329 r3335 18 18 #endif 19 19 20 /*Assertion macro*/ 21 #define ISSMASSERT(statement)\ 22 if (!(statement)) ISSMERROR(exprintf("Assertion %s failed, please report bug to an ISSM developer",#statement)) 23 20 24 /*The following macros hide the error exception handling in a matlab module. Just put 21 25 * MODULEBOOT(); and MODULEEND(); at the beginning and end of a module, and c++ exceptions 22 26 * will be trapped. Really nifty!*/ 23 24 27 #ifdef _SERIAL_ 25 28 … … 51 54 return 1;\ 52 55 } 53 54 56 #endif 55 57 -
issm/trunk/src/c/io/WriteData.cpp
r3332 r3335 16 16 17 17 #include <mex.h> 18 #include <assert.h>19 18 20 19 /*Several prototypes for WriteData, according to type: */ … … 211 210 fnames[++i] = "CrackedVertices"; fsize[i][0]=bm->CrackedVerticesSize[0]; fsize[i][1]=bm->CrackedVerticesSize[1]; fpointer[i]=&bm->CrackedVertices; 212 211 fnames[++i] = "CrackedEdges"; fsize[i][0]=bm->CrackedEdgesSize[0]; fsize[i][1]=bm->CrackedEdgesSize[1]; fpointer[i]=&bm->CrackedEdges; 213 assert(i==numfields-1);212 ISSMASSERT(i==numfields-1); 214 213 215 214 /*Initialize Matlab structure*/ … … 255 254 fnames[++i] = "CrackedEdges"; fsize[i][0]=bg->CrackedEdgesSize[0]; fsize[i][1]=bg->CrackedEdgesSize[1]; fpointer[i]=&bg->CrackedEdges; 256 255 fnames[++i] = "SubDomains"; fsize[i][0]=bg->SubDomainsSize[0]; fsize[i][1]=bg->SubDomainsSize[1]; fpointer[i]=&bg->SubDomains; 257 assert(i==numfields-1);256 ISSMASSERT(i==numfields-1); 258 257 259 258 /*Initialize Matlab structure*/ -
issm/trunk/src/c/shared/TriMesh/TriMeshUtils.cpp
r3332 r3335 4 4 5 5 #include <stdio.h> 6 #include <assert.h>7 6 8 7 #include "./trimesh.h" 9 8 #include "../Exceptions/exceptions.h" 10 9 #include "../Alloc/alloc.h" 10 #include "../../include/macros.h" 11 11 12 12 int IsGridOnRift(int* riftsegments, int nriftsegs, int grid){ … … 968 968 /*Using the order vector, and the riftsegments_copy and riftspairs_copy, reorder the segments and the pairs: */ 969 969 for (j=0;j<numsegs;j++){ 970 assert(order[j]<numsegs);970 ISSMASSERT(order[j]<numsegs); 971 971 *(riftsegments_copy+3*j+0)=*(riftsegments+3*order[j]+0); 972 972 *(riftsegments_copy+3*j+1)=*(riftsegments+3*order[j]+1);
Note:
See TracChangeset
for help on using the changeset viewer.