Index: /issm/trunk/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp
===================================================================
--- /issm/trunk/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp	(revision 5148)
+++ /issm/trunk/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp	(revision 5149)
@@ -94,9 +94,9 @@
 				areacoord[2]= (double) dete[2] / tb.det;
 				//3 vertices of the triangle
-				i0=Th.Number(tb[0]);
-				i1=Th.Number(tb[1]);
-				i2=Th.Number(tb[2]);
+				i0=Th.GetId(tb[0]);
+				i1=Th.GetId(tb[1]);
+				i2=Th.GetId(tb[2]);
 				//triangle number
-				it=Th.Number(tb);
+				it=Th.GetId(tb);
 			}
 			//external point
@@ -111,9 +111,9 @@
 				areacoord[OppositeVertex[k]] = 1 - aa -bb;
 				//3 vertices of the triangle
-				i0=Th.Number(tc[0]);
-				i1=Th.Number(tc[1]);
-				i2=Th.Number(tc[2]);
+				i0=Th.GetId(tc[0]);
+				i1=Th.GetId(tc[1]);
+				i2=Th.GetId(tc[2]);
 				//triangle number
-				it=Th.Number(tc);
+				it=Th.GetId(tc);
 			}
 			
Index: /issm/trunk/src/c/objects/Bamg/Curve.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/Curve.cpp	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/Curve.cpp	(revision 5149)
@@ -27,7 +27,7 @@
 	void Curve::Set(const Curve & rec,const Geometry & Gh ,Geometry & GhNew){
 		*this = rec;
-		be = GhNew.edges + Gh.Number(be);    
-		ee = GhNew.edges + Gh.Number(ee); 
-		if(next) next= GhNew.curves + Gh.Number(next); 
+		be = GhNew.edges + Gh.GetId(be);    
+		ee = GhNew.edges + Gh.GetId(ee); 
+		if(next) next= GhNew.curves + Gh.GetId(next); 
 	}
 	/*}}}*/
Index: /issm/trunk/src/c/objects/Bamg/Edge.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/Edge.cpp	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/Edge.cpp	(revision 5149)
@@ -16,10 +16,10 @@
 	void Edge::Set(const Mesh & Th ,long i,Mesh & ThNew){ 
 		*this = Th.edges[i];
-		v[0] = ThNew.vertices + Th.Number(v[0]);    
-		v[1] = ThNew.vertices + Th.Number(v[1]);
+		v[0] = ThNew.vertices + Th.GetId(v[0]);    
+		v[1] = ThNew.vertices + Th.GetId(v[1]);
 		if (GeometricalEdgeHook) 
-		 GeometricalEdgeHook =  ThNew.Gh.edges+Th.Gh.Number(GeometricalEdgeHook);
-		if (adj[0]) adj[0] =   ThNew.edges +   Th.Number(adj[0]);
-		if (adj[1]) adj[1] =   ThNew.edges +   Th.Number(adj[1]);
+		 GeometricalEdgeHook =  ThNew.Gh.edges+Th.Gh.GetId(GeometricalEdgeHook);
+		if (adj[0]) adj[0] =   ThNew.edges +   Th.GetId(adj[0]);
+		if (adj[1]) adj[1] =   ThNew.edges +   Th.GetId(adj[1]);
 	}
 	/*}}}*/
Index: /issm/trunk/src/c/objects/Bamg/GeometricalEdge.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/GeometricalEdge.cpp	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/GeometricalEdge.cpp	(revision 5149)
@@ -132,8 +132,8 @@
 	void GeometricalEdge::Set(const GeometricalEdge & rec,const Geometry & Gh ,Geometry & GhNew){ 
 		*this = rec;
-		v[0] = GhNew.vertices + Gh.Number(v[0]);    
-		v[1] = GhNew.vertices + Gh.Number(v[1]); 
-		if (Adj[0]) Adj[0] =  GhNew.edges + Gh.Number(Adj[0]);     
-		if (Adj[1]) Adj[1] =  GhNew.edges + Gh.Number(Adj[1]);     
+		v[0] = GhNew.vertices + Gh.GetId(v[0]);    
+		v[1] = GhNew.vertices + Gh.GetId(v[1]); 
+		if (Adj[0]) Adj[0] =  GhNew.edges + Gh.GetId(Adj[0]);     
+		if (Adj[1]) Adj[1] =  GhNew.edges + Gh.GetId(Adj[1]);     
 	}
 	/*}}}*/
Index: /issm/trunk/src/c/objects/Bamg/GeometricalSubDomain.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/GeometricalSubDomain.cpp	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/GeometricalSubDomain.cpp	(revision 5149)
@@ -15,5 +15,5 @@
 	void GeometricalSubDomain::Set(const GeometricalSubDomain & rec,const Geometry & Gh ,const Geometry & GhNew){
 		*this = rec;
-		edge = Gh.Number(edge) + GhNew.edges;
+		edge = Gh.GetId(edge) + GhNew.edges;
 	}/*}}}*/
 
Index: /issm/trunk/src/c/objects/Bamg/Geometry.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/Geometry.cpp	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/Geometry.cpp	(revision 5149)
@@ -317,6 +317,6 @@
 			bamggeom->Edges=(double*)xmalloc(3*nbe*sizeof(double));
 			for (i=0;i<nbe;i++){
-				bamggeom->Edges[i*3+0]=Number(edges[i][0])+1; //back to Matlab indexing
-				bamggeom->Edges[i*3+1]=Number(edges[i][1])+1; //back to Matlab indexing
+				bamggeom->Edges[i*3+0]=GetId(edges[i][0])+1; //back to Matlab indexing
+				bamggeom->Edges[i*3+1]=GetId(edges[i][1])+1; //back to Matlab indexing
 				bamggeom->Edges[i*3+2]=(double)edges[i].ReferenceNumber;
 
@@ -368,5 +368,5 @@
 			for (i=0;i<nbsubdomains;i++){
 				bamggeom->SubDomains[4*i+0]=2;
-				bamggeom->SubDomains[4*i+1]=Number(subdomains[i].edge)+1; //back to Matlab indexing
+				bamggeom->SubDomains[4*i+1]=GetId(subdomains[i].edge)+1; //back to Matlab indexing
 				bamggeom->SubDomains[4*i+2]=subdomains[i].direction;
 				bamggeom->SubDomains[4*i+3]=subdomains[i].ReferenceNumber;
@@ -523,5 +523,5 @@
 			//build chains head_v and next_p
 			for (j=0;j<2;j++){
-				long v=Number(edges[i].v[j]);
+				long v=GetId(edges[i].v[j]);
 				next_p[k]=head_v[v];
 				head_v[v]=k++; //post increment: head_v[v]=k; and then k=k+1;
@@ -788,22 +788,22 @@
 		return Max(pmax.x-pmin.x,pmax.y-pmin.y);
 	}/*}}}*/
-	/*FUNCTION Geometry::Number(const GeometricalVertex &t){{{1*/
-	long Geometry::Number(const GeometricalVertex & t) const  {
+	/*FUNCTION Geometry::GetId(const GeometricalVertex &t){{{1*/
+	long Geometry::GetId(const GeometricalVertex & t) const  {
 		return &t - vertices;
 	}/*}}}*/
-	/*FUNCTION Geometry::Number(const GeometricalVertex * t){{{1*/
-	long Geometry::Number(const GeometricalVertex * t) const  {
+	/*FUNCTION Geometry::GetId(const GeometricalVertex * t){{{1*/
+	long Geometry::GetId(const GeometricalVertex * t) const  {
 		return t - vertices;
 	}/*}}}*/
-	/*FUNCTION Geometry::Number(const GeometricalEdge & t){{{1*/
-	long Geometry::Number(const GeometricalEdge & t) const  {
+	/*FUNCTION Geometry::GetId(const GeometricalEdge & t){{{1*/
+	long Geometry::GetId(const GeometricalEdge & t) const  {
 		return &t - edges;
 	}/*}}}*/
-	/*FUNCTION Geometry::Number(const GeometricalEdge * t){{{1*/
-	long Geometry::Number(const GeometricalEdge * t) const  {
+	/*FUNCTION Geometry::GetId(const GeometricalEdge * t){{{1*/
+	long Geometry::GetId(const GeometricalEdge * t) const  {
 		return t - edges;
 	}/*}}}*/
-	/*FUNCTION Geometry::Number(const Curve * c){{{1*/
-	long Geometry::Number(const Curve * c) const  {
+	/*FUNCTION Geometry::GetId(const Curve * c){{{1*/
+	long Geometry::GetId(const Curve * c) const  {
 		return c - curves;
 	}/*}}}*/
Index: /issm/trunk/src/c/objects/Bamg/Geometry.h
===================================================================
--- /issm/trunk/src/c/objects/Bamg/Geometry.h	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/Geometry.h	(revision 5149)
@@ -54,9 +54,9 @@
 			void             Init(void);
 			void             AfterRead();
-			long             Number(const GeometricalVertex &t) const;
-			long             Number(const GeometricalVertex *t) const;
-			long             Number(const GeometricalEdge &t) const;
-			long             Number(const GeometricalEdge *t) const;
-			long             Number(const Curve *c) const;
+			long             GetId(const GeometricalVertex &t) const;
+			long             GetId(const GeometricalVertex *t) const;
+			long             GetId(const GeometricalEdge &t) const;
+			long             GetId(const GeometricalEdge *t) const;
+			long             GetId(const Curve *c) const;
 			void             UnMarkEdges();
 			GeometricalEdge *ProjectOnCurve(const Edge &,double,BamgVertex &,VertexOnGeom &) const;
Index: /issm/trunk/src/c/objects/Bamg/Mesh.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/Mesh.cpp	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/Mesh.cpp	(revision 5149)
@@ -73,23 +73,23 @@
 				const Triangle & t = Tho.triangles[i];
 				kt++;
-				kk[Tho.Number(t[0])]=1;
-				kk[Tho.Number(t[1])]=1;
-				kk[Tho.Number(t[2])]=1;
-				itadj=Tho.Number(t.TriangleAdj(0));
+				kk[Tho.GetId(t[0])]=1;
+				kk[Tho.GetId(t[1])]=1;
+				kk[Tho.GetId(t[2])]=1;
+				itadj=Tho.GetId(t.TriangleAdj(0));
 				if (  reft[itadj] >=0 && !flag[itadj])
 				  { nbNewBedge++;
-					refv[Tho.Number(t[VerticesOfTriangularEdge[0][0]])]=bb[i];
-					refv[Tho.Number(t[VerticesOfTriangularEdge[0][1]])]=bb[i];
+					refv[Tho.GetId(t[VerticesOfTriangularEdge[0][0]])]=bb[i];
+					refv[Tho.GetId(t[VerticesOfTriangularEdge[0][1]])]=bb[i];
 				  }
-				itadj=Tho.Number(t.TriangleAdj(1));
+				itadj=Tho.GetId(t.TriangleAdj(1));
 				if (  reft[itadj] >=0 && !flag[itadj])
 				  { nbNewBedge++;
-					refv[Tho.Number(t[VerticesOfTriangularEdge[1][0]])]=bb[i];
-					refv[Tho.Number(t[VerticesOfTriangularEdge[1][1]])]=bb[i];}
-					itadj=Tho.Number(t.TriangleAdj(2));
+					refv[Tho.GetId(t[VerticesOfTriangularEdge[1][0]])]=bb[i];
+					refv[Tho.GetId(t[VerticesOfTriangularEdge[1][1]])]=bb[i];}
+					itadj=Tho.GetId(t.TriangleAdj(2));
 					if (  reft[itadj] >=0 && !flag[itadj])
 					  { nbNewBedge++;
-						refv[Tho.Number(t[VerticesOfTriangularEdge[2][0]])]=bb[i];
-						refv[Tho.Number(t[VerticesOfTriangularEdge[2][1]])]=bb[i];}
+						refv[Tho.GetId(t[VerticesOfTriangularEdge[2][0]])]=bb[i];
+						refv[Tho.GetId(t[VerticesOfTriangularEdge[2][1]])]=bb[i];}
 			  }
 		  k=0;
@@ -117,7 +117,7 @@
 			  {
 				const Triangle & t = Tho.triangles[i];
-				int i0 = Tho.Number(t[0]);
-				int i1 = Tho.Number(t[1]);
-				int i2 = Tho.Number(t[2]);
+				int i0 = Tho.GetId(t[0]);
+				int i1 = Tho.GetId(t[1]);
+				int i2 = Tho.GetId(t[2]);
 				if (i0<0 || i1<0 || i2<0){
 					ISSMERROR("i0<0 || i1<0 || i2< 0");
@@ -554,5 +554,5 @@
 			if (reft[i]>=0){
 				for (j=0;j<3;j++){
-					int v=Number(triangles[i][j]); //jth vertex of the ith triangle
+					int v=GetId(triangles[i][j]); //jth vertex of the ith triangle
 					if (k>3*nbt-1 || k<0) ISSMERROR("k = %i, nbt = %i",k,nbt);
 					next_1[k]=head_1[v];
@@ -592,6 +592,6 @@
 			bamgmesh->Edges=(double*)xmalloc(3*nbe*sizeof(double));
 			for (i=0;i<nbe;i++){
-				bamgmesh->Edges[i*3+0]=Number(edges[i][0])+1; //back to M indexing
-				bamgmesh->Edges[i*3+1]=Number(edges[i][1])+1; //back to M indexing
+				bamgmesh->Edges[i*3+0]=GetId(edges[i][0])+1; //back to M indexing
+				bamgmesh->Edges[i*3+1]=GetId(edges[i][1])+1; //back to M indexing
 				bamgmesh->Edges[i*3+2]=edges[i].ReferenceNumber;
 				if(edges[i].GeometricalEdgeHook){
@@ -612,6 +612,6 @@
 			if (reft[i]>=0){
 				for  (j=0;j<3;j++) {
-					i1=Number(triangles[i][VerticesOfTriangularEdge[j][0]]);
-					i2=Number(triangles[i][VerticesOfTriangularEdge[j][1]]);
+					i1=GetId(triangles[i][VerticesOfTriangularEdge[j][0]]);
+					i2=GetId(triangles[i][VerticesOfTriangularEdge[j][1]]);
 					n =edge4->SortAndFind(i1,i2);
 					if (n==-1){
@@ -666,13 +666,13 @@
 			if(edges[i].GeometricalEdgeHook){
 				//build segment
-				int i1=Number(edges[i][0]);
-				int i2=Number(edges[i][1]);
+				int i1=GetId(edges[i][0]);
+				int i2=GetId(edges[i][1]);
 				bool stop=false;
 				for(j=head_1[i1];j!=-1;j=next_1[j]){
 					for(k=0;k<3;k++){
-						if (Number(triangles[(int)j/3][k])==i1){
-							if (Number(triangles[(int)j/3][(int)((k+1)%3)])==i2){
-								bamgmesh->IssmSegments[num*4+0]=Number(edges[i][0])+1; //back to M indexing
-								bamgmesh->IssmSegments[num*4+1]=Number(edges[i][1])+1; //back to M indexing
+						if (GetId(triangles[(int)j/3][k])==i1){
+							if (GetId(triangles[(int)j/3][(int)((k+1)%3)])==i2){
+								bamgmesh->IssmSegments[num*4+0]=GetId(edges[i][0])+1; //back to M indexing
+								bamgmesh->IssmSegments[num*4+1]=GetId(edges[i][1])+1; //back to M indexing
 								bamgmesh->IssmSegments[num*4+2]=(int)j/3+1;            //back to M indexing
 								bamgmesh->IssmSegments[num*4+3]=edges[i].ReferenceNumber;
@@ -681,7 +681,7 @@
 								break;
 							}
-							if (Number(triangles[(int)j/3][(int)((k+2)%3)])==i2){
-								bamgmesh->IssmSegments[num*4+0]=Number(edges[i][1])+1; //back to M indexing
-								bamgmesh->IssmSegments[num*4+1]=Number(edges[i][0])+1; //back to M indexing
+							if (GetId(triangles[(int)j/3][(int)((k+2)%3)])==i2){
+								bamgmesh->IssmSegments[num*4+0]=GetId(edges[i][1])+1; //back to M indexing
+								bamgmesh->IssmSegments[num*4+1]=GetId(edges[i][0])+1; //back to M indexing
 								bamgmesh->IssmSegments[num*4+2]=(int)j/3+1;            //back to M indexing
 								bamgmesh->IssmSegments[num*4+3]=edges[i].ReferenceNumber;
@@ -712,7 +712,7 @@
 				//reft[i]=-1 for outside triangle
 				if (reft[i]>=0 && !( t.Hidden(0) || t.Hidden(1) || t.Hidden(2) )){
-					bamgmesh->Triangles[num*4+0]=Number(t[0])+1; //back to M indexing
-					bamgmesh->Triangles[num*4+1]=Number(t[1])+1; //back to M indexing
-					bamgmesh->Triangles[num*4+2]=Number(t[2])+1; //back to M indexing
+					bamgmesh->Triangles[num*4+0]=GetId(t[0])+1; //back to M indexing
+					bamgmesh->Triangles[num*4+1]=GetId(t[1])+1; //back to M indexing
+					bamgmesh->Triangles[num*4+2]=GetId(t[2])+1; //back to M indexing
 					bamgmesh->Triangles[num*4+3]=subdomains[reft[i]].ReferenceNumber;
 					num=num+1;
@@ -733,8 +733,8 @@
 				if (reft[i]<0) continue;
 				if ((ta=t.Quadrangle(v0,v1,v2,v3)) !=0 && &t<ta) { 
-					bamgmesh->Quadrilaterals[i*5+0]=Number(v0)+1; //back to M indexing
-					bamgmesh->Quadrilaterals[i*5+1]=Number(v1)+1; //back to M indexing
-					bamgmesh->Quadrilaterals[i*5+2]=Number(v2)+1; //back to M indexing
-					bamgmesh->Quadrilaterals[i*5+3]=Number(v3)+1; //back to M indexing
+					bamgmesh->Quadrilaterals[i*5+0]=GetId(v0)+1; //back to M indexing
+					bamgmesh->Quadrilaterals[i*5+1]=GetId(v1)+1; //back to M indexing
+					bamgmesh->Quadrilaterals[i*5+2]=GetId(v2)+1; //back to M indexing
+					bamgmesh->Quadrilaterals[i*5+3]=GetId(v3)+1; //back to M indexing
 					bamgmesh->Quadrilaterals[i*5+4]=subdomains[reft[i]].ReferenceNumber;
 				}
@@ -750,5 +750,5 @@
 			for (i=0;i<nbsubdomains;i++){
 				bamgmesh->SubDomains[i*4+0]=3;
-				bamgmesh->SubDomains[i*4+1]=reft[Number(subdomains[i].head)];
+				bamgmesh->SubDomains[i*4+1]=reft[GetId(subdomains[i].head)];
 				bamgmesh->SubDomains[i*4+2]=1;
 				bamgmesh->SubDomains[i*4+3]=subdomains[i].ReferenceNumber;
@@ -764,5 +764,5 @@
 			for (i=0;i<Gh.nbsubdomains;i++){
 				bamgmesh->SubDomainsFromGeom[i*4+0]=2;
-				bamgmesh->SubDomainsFromGeom[i*4+1]=Number(subdomains[i].edge)+1; //back to Matlab indexing
+				bamgmesh->SubDomainsFromGeom[i*4+1]=GetId(subdomains[i].edge)+1; //back to Matlab indexing
 				bamgmesh->SubDomainsFromGeom[i*4+2]=subdomains[i].direction;
 				bamgmesh->SubDomainsFromGeom[i*4+3]=Gh.subdomains[i].ReferenceNumber;
@@ -779,6 +779,6 @@
 				VertexOnGeom &v=VerticesOnGeomVertex[i];
 				ISSMASSERT(v.OnGeomVertex());
-				bamgmesh->VerticesOnGeometricVertex[i*2+0]=Number((BamgVertex*)v)+1; //back to Matlab indexing
-				bamgmesh->VerticesOnGeometricVertex[i*2+1]=Gh.Number((GeometricalVertex*)v)+1; //back to Matlab indexing
+				bamgmesh->VerticesOnGeometricVertex[i*2+0]=GetId((BamgVertex*)v)+1; //back to Matlab indexing
+				bamgmesh->VerticesOnGeometricVertex[i*2+1]=Gh.GetId((GeometricalVertex*)v)+1; //back to Matlab indexing
 			}
 		}
@@ -795,6 +795,6 @@
 					ISSMERROR("A vertices supposed to be OnGeometricEdge is actually not");
 				}
-				bamgmesh->VerticesOnGeometricEdge[i*3+0]=Number((BamgVertex*)v)+1; //back to Matlab indexing
-				bamgmesh->VerticesOnGeometricEdge[i*3+1]=Gh.Number((const GeometricalEdge*)v)+1; //back to Matlab indexing
+				bamgmesh->VerticesOnGeometricEdge[i*3+0]=GetId((BamgVertex*)v)+1; //back to Matlab indexing
+				bamgmesh->VerticesOnGeometricEdge[i*3+1]=Gh.GetId((const GeometricalEdge*)v)+1; //back to Matlab indexing
 				bamgmesh->VerticesOnGeometricEdge[i*3+2]=(double)v; //absisce
 			}
@@ -815,5 +815,5 @@
 				if (edges[i].GeometricalEdgeHook){
 					bamgmesh->EdgesOnGeometricEdge[count*2+0]=(double)i+1; //back to Matlab indexing
-					bamgmesh->EdgesOnGeometricEdge[count*2+1]=(double)Gh.Number(edges[i].GeometricalEdgeHook)+1; //back to Matlab indexing
+					bamgmesh->EdgesOnGeometricEdge[count*2+1]=(double)Gh.GetId(edges[i].GeometricalEdgeHook)+1; //back to Matlab indexing
 					count=count+1;
 				}
@@ -831,5 +831,5 @@
 			if (reft[i]>=0){
 				for (j=0;j<3;j++){
-					k=Number(triangles[i].TriangleAdj(j));
+					k=GetId(triangles[i].TriangleAdj(j));
 					if (reft[k]>=0){
 						ISSMASSERT(3*num+j<3*(nbt-nbtout));
@@ -1289,5 +1289,5 @@
 		//build edge4 (chain)
 		for (i=0;i<nbe;i++){
-			edge4->SortAndAdd(Number(edges[i][0]),Number(edges[i][1]));
+			edge4->SortAndAdd(GetId(edges[i][0]),GetId(edges[i][1]));
 		}
 		//check that there is no double edge
@@ -1303,5 +1303,5 @@
 			for  (j=0;j<3;j++) {
 				//Add Edge to edge4 (k=numberofedges in edge4)
-				long k =edge4->SortAndAdd(Number(triangles[i][VerticesOfTriangularEdge[j][0]]), Number(triangles[i][VerticesOfTriangularEdge[j][1]]));
+				long k =edge4->SortAndAdd(GetId(triangles[i][VerticesOfTriangularEdge[j][0]]), GetId(triangles[i][VerticesOfTriangularEdge[j][1]]));
 				long invisible = triangles[i].Hidden(j);
 
@@ -1327,8 +1327,8 @@
 				//else (see 3 lines above), the edge has been called more than twice: return error
 				else {
-					printf("The edge (%i,%i) belongs to more than 2 triangles (%i)\n",Number(triangles[i][VerticesOfTriangularEdge[j][0]]),Number(triangles[i][VerticesOfTriangularEdge[j][1]]),k);
+					printf("The edge (%i,%i) belongs to more than 2 triangles (%i)\n",GetId(triangles[i][VerticesOfTriangularEdge[j][0]]),GetId(triangles[i][VerticesOfTriangularEdge[j][1]]),k);
 					printf("Edge %i of triangle %i\n",j,i);
 					printf("Edge %i of triangle %i\n",(-st[k]+2)%3,(-st[k]+2)/3);
-					printf("Edge %i of triangle %i\n",triangles[(-st[k]+2)/3].NuEdgeTriangleAdj((int)((-st[k]+2)%3)),Number(triangles[(-st[k]+2)/3].TriangleAdj((int)((-st[k]+2)%3))));
+					printf("Edge %i of triangle %i\n",triangles[(-st[k]+2)/3].NuEdgeTriangleAdj((int)((-st[k]+2)%3)),GetId(triangles[(-st[k]+2)/3].TriangleAdj((int)((-st[k]+2)%3))));
 					ISSMERROR("An edge belongs to more than 2 triangles");
 				}	
@@ -1507,5 +1507,5 @@
 
 						//color the adjacent triangle
-						if ( ! t->Locked(j) && tt && (colorT[jt = Number(tt)] == -1) && ( tt->color==kolor)) {
+						if ( ! t->Locked(j) && tt && (colorT[jt = GetId(tt)] == -1) && ( tt->color==kolor)) {
 							colorT[jt]=nbsubdomains;
 							st[++level]=jt;
@@ -1555,5 +1555,5 @@
 		for (i=0;i<nbv;i++) colorV[i]=-1;
 		for (i=0;i<nbe;i++){
-		 for ( j=0;j<2;j++) colorV[Number(edges[i][j])]=0;
+		 for ( j=0;j<2;j++) colorV[GetId(edges[i][j])]=0;
 		}
 		//number the vertices belonging to edges
@@ -1618,6 +1618,6 @@
 		for (i=0;i<nbe;i++){
 
-			long i0 = Number(edges[i][0]);
-			long i1 = Number(edges[i][1]);
+			long i0 = GetId(edges[i][0]);
+			long i1 = GetId(edges[i][1]);
 			long j0 = colorV[i0];
 			long j1 = colorV[i1];
@@ -1670,8 +1670,8 @@
 		//Build Gh.subdomains
 		for (i=0;i<nbsubdomains;i++){
-			it = Number(subdomains[i].head);
+			it = GetId(subdomains[i].head);
 			j = subdomains[i].direction;
-			long i0 = Number(triangles[it][VerticesOfTriangularEdge[j][0]]);
-			long i1 = Number(triangles[it][VerticesOfTriangularEdge[j][1]]);
+			long i0 = GetId(triangles[it][VerticesOfTriangularEdge[j][0]]);
+			long i1 = GetId(triangles[it][VerticesOfTriangularEdge[j][1]]);
 			k = edge4->SortAndFind(i0,i1);
 			if(k>=0){
@@ -1784,5 +1784,5 @@
 				//compute chains
 				for(j=0;j<3;j++){
-					k=Number(triangles[i][j]);
+					k=GetId(triangles[i][j]);
 					next_p[p]=head_s[k];
 					head_s[k]=p++;
@@ -1823,7 +1823,7 @@
 				if(triangles[i].link){
 					// number of the 3 vertices
-					iA = Number(triangles[i][0]);
-					iB = Number(triangles[i][1]);
-					iC = Number(triangles[i][2]);
+					iA = GetId(triangles[i][0]);
+					iB = GetId(triangles[i][1]);
+					iC = GetId(triangles[i][2]);
 
 					// value of the P1 fonction on 3 vertices 
@@ -1852,7 +1852,7 @@
 				if(triangles[i].link){
 					// number of the 3 vertices
-					iA = Number(triangles[i][0]);
-					iB = Number(triangles[i][1]);
-					iC = Number(triangles[i][2]);
+					iA = GetId(triangles[i][0]);
+					iB = GetId(triangles[i][1]);
+					iC = GetId(triangles[i][2]);
 
 					//Hessian
@@ -1960,7 +1960,7 @@
 
 				// number of the 3 vertices
-				iA = Number(t[0]);
-				iB = Number(t[1]);
-				iC = Number(t[2]);
+				iA = GetId(t[0]);
+				iB = GetId(t[1]);
+				iC = GetId(t[2]);
 
 				//compute triangle determinant (2*Area)
@@ -1977,6 +1977,6 @@
 					if ( !ta || !ta->link){
 						//mark the two vertices of the edge as OnBoundary
-						OnBoundary[Number(t[VerticesOfTriangularEdge[j][0]])]=1;
-						OnBoundary[Number(t[VerticesOfTriangularEdge[j][1]])]=1;
+						OnBoundary[GetId(t[VerticesOfTriangularEdge[j][0]])]=1;
+						OnBoundary[GetId(t[VerticesOfTriangularEdge[j][1]])]=1;
 						nbb++;
 					}
@@ -2050,7 +2050,7 @@
 
 						// number of the 3 vertices
-						iA = Number(triangles[i][0]);
-						iB = Number(triangles[i][1]);
-						iC = Number(triangles[i][2]);
+						iA = GetId(triangles[i][0]);
+						iB = GetId(triangles[i][1]);
+						iC = GetId(triangles[i][2]);
 
 						// for the test of  boundary edge
@@ -2138,7 +2138,7 @@
 						 if(triangles[i].link){// the real triangles 
 							 // number of the 3 vertices
-							 iA = Number(triangles[i][0]);
-							 iB = Number(triangles[i][1]);
-							 iC = Number(triangles[i][2]);
+							 iA = GetId(triangles[i][0]);
+							 iB = GetId(triangles[i][1]);
+							 iC = GetId(triangles[i][2]);
 							 double cc=3;
 							 if(ijacobi==0)
@@ -2151,7 +2151,7 @@
 							if(triangles[i].link){ // the real triangles 
 								// number of the 3 vertices
-								iA = Number(triangles[i][0]);
-								iB = Number(triangles[i][1]);
-								iC = Number(triangles[i][2]);
+								iA = GetId(triangles[i][0]);
+								iB = GetId(triangles[i][1]);
+								iC = GetId(triangles[i][2]);
 								double cc =  workT[i]*detT[i];
 								workV[iA] += cc;
@@ -2228,6 +2228,6 @@
 
 				//Get number of the two vertices on the edge
-				i1=Number(edges[i][0]);
-				i2=Number(edges[i][1]);
+				i1=GetId(edges[i][0]);
+				i2=GetId(edges[i][1]);
 				ISSMASSERT(i1>=0 && i1<nbv && i2>=0 && i2<nbv);
 				splitvertex[i1]++;
@@ -2270,11 +2270,11 @@
 		for(i=0;i<NbCrackedEdges;i++){
 			//Get the numbers of the 2 vertices of the crren cracked edge
-			i1=Number((*CrackedEdges[i].e1)[0]);
-			i2=Number((*CrackedEdges[i].e1)[1]);
+			i1=GetId((*CrackedEdges[i].e1)[0]);
+			i2=GetId((*CrackedEdges[i].e1)[1]);
 
 			//find a triangle holding the vertex i1 (first vertex of the ith cracked edge)
 			Triangle* tbegin=vertices[i1].t;
 			k=vertices[i1].vint;//local number of i in triangle tbegin
-			ISSMASSERT(Number((*tbegin)[k])==Number(vertices[i1]));
+			ISSMASSERT(GetId((*tbegin)[k])==GetId(vertices[i1]));
 
 			//Now, we are going to go through the adjacent triangle that hold i1 till
@@ -2285,5 +2285,5 @@
 				for(j=0;j<3;j++){
 					//Find the position of i1 in the triangle index
-					if (Number((*ta.t)[j])==i1){
+					if (GetId((*ta.t)[j])==i1){
 						j1=j;
 						break;
@@ -2292,5 +2292,5 @@
 				for(j=0;j<3;j++){
 					//Check wether i2 is also in the triangle index
-					if (Number((*ta.t)[j])==i2){
+					if (GetId((*ta.t)[j])==i2){
 						j2=j;
 						//Invert j1 and j2 if necessary
@@ -2316,5 +2316,5 @@
 					}
 				}
-				//printf("%i -> %i %i %i, edge [%i->%i %i->%i]\n",element_renu[Number(ta.t)],Number((*ta.t)[0])+1,Number((*ta.t)[1])+1,Number((*ta.t)[2])+1,i1,j1,i2,j2);
+				//printf("%i -> %i %i %i, edge [%i->%i %i->%i]\n",element_renu[GetId(ta.t)],GetId((*ta.t)[0])+1,GetId((*ta.t)[1])+1,GetId((*ta.t)[2])+1,i1,j1,i2,j2);
 				ta = Next(ta).Adj(); 
 				if (count++>50) ISSMERROR("Maximum number of iteration exceeded");
@@ -2365,5 +2365,5 @@
 				if (nbswp) nbfe++;
 				if ( nbswp < 0 && k < 5){
-					ISSMERROR("Missing Edge %i, v0=%i,v1=%i",i,Number(edges[i][0]),Number(edges[i][1]));
+					ISSMERROR("Missing Edge %i, v0=%i,v1=%i",i,GetId(edges[i][0]),GetId(edges[i][1]));
 				}
 			}
@@ -2481,5 +2481,5 @@
 						subdomains[k].head = t1;
 						do {
-							mark[Number(t)]=k;
+							mark[GetId(t)]=k;
 							t=t->link;
 						} while (t!=t1);
@@ -2501,5 +2501,5 @@
 								 {
 								  Triangle *ta = triangles[it].TriangleAdj(na);
-								  long kl = ta ? mark[Number(ta)] : -2;
+								  long kl = ta ? mark[GetId(ta)] : -2;
 								  long kr = mark[it];
 								  if(kr !=kl) {
@@ -2557,5 +2557,5 @@
 					// by carefull is not easy to find a edge create from a GeometricalEdge 
 					// see routine MakeGeometricalEdgeToEdge
-					Edge &e = *GeometricalEdgetoEdge[Gh.Number(eg)];
+					Edge &e = *GeometricalEdgetoEdge[Gh.GetId(eg)];
 					if (&e==NULL){
 						ISSMERROR("&e==NULL");
@@ -2586,5 +2586,5 @@
 								ISSMERROR("bad definition of SubSomain %i",i);
 							}
-							long it = Number(t);
+							long it = GetId(t);
 							if (mark[it] >=0) {
 								break;
@@ -2598,8 +2598,8 @@
 							  {
 								kkk++;
-								if (mark[Number(tt)]>=0){
-									ISSMERROR("mark[Number(tt)]>=0");
+								if (mark[GetId(tt)]>=0){
+									ISSMERROR("mark[GetId(tt)]>=0");
 								}
-								mark[Number(tt)]=i;
+								mark[GetId(tt)]=i;
 								tt=tt->link;
 							  } while (tt!=t);
@@ -2925,5 +2925,5 @@
 			Edge * ei = edges+i;
 			GeometricalEdge *GeometricalEdgeHook = ei->GeometricalEdgeHook; 
-			e[Gh.Number(GeometricalEdgeHook)] = ei;    
+			e[Gh.GetId(GeometricalEdgeHook)] = ei;    
 		  }
 		for ( i=0;i<nbe ; i++) 
@@ -2935,6 +2935,6 @@
 				 Adj(GeometricalEdgeHook,j); // next geom edge
 				 j=1-j;
-				 if (e[Gh.Number(GeometricalEdgeHook)])  break; // optimisation
-				 e[Gh.Number(GeometricalEdgeHook)] = ei; 
+				 if (e[Gh.GetId(GeometricalEdgeHook)])  break; // optimisation
+				 e[Gh.GetId(GeometricalEdgeHook)] = ei; 
 			 }
 		 }
@@ -3020,5 +3020,5 @@
 			for (int j=0;j<3;j++){
 				Triangle &tt = *t.TriangleAdj(j);
-				if ( ! &tt ||  it < Number(tt) && ( tt.link || t.link)){
+				if ( ! &tt ||  it < GetId(tt) && ( tt.link || t.link)){
 					BamgVertex &v0 = t[VerticesOfTriangularEdge[j][0]];
 					BamgVertex &v1 = t[VerticesOfTriangularEdge[j][1]];
@@ -3160,5 +3160,5 @@
 					R2 A=vA;
 					R2 B=vB;
-					k=Number(ta);
+					k=GetId(ta);
 
 					//if this edge has already been done, go to next edge of triangle
@@ -3181,5 +3181,5 @@
 				long kt;
 				do { 
-					kt = Number((Triangle*) ta);
+					kt = GetId((Triangle*) ta);
 					if (first_np_or_next_t[kt]>0){
 						first_np_or_next_t[kt]=-Headt;
@@ -3222,5 +3222,5 @@
 		}
 		else {
-			ISSMERROR("ProjectOnCurve On BamgVertex %i forget call to SetVertexFieldOnBTh",BTh.Number(vA));
+			ISSMERROR("ProjectOnCurve On BamgVertex %i forget call to SetVertexFieldOnBTh",BTh.GetId(vA));
 		} 
 
@@ -3233,5 +3233,5 @@
 		}
 		else {
-			ISSMERROR("ProjectOnCurve On BamgVertex %i forget call to SetVertexFieldOnBTh",BTh.Number(vB));
+			ISSMERROR("ProjectOnCurve On BamgVertex %i forget call to SetVertexFieldOnBTh",BTh.GetId(vB));
 		} 
 		Edge * e = &BhAB;
@@ -3368,5 +3368,5 @@
 	SetOfEdges4* edge4= new SetOfEdges4(nbt*3,nbv);
 	for (i=0;i<nbe;i++){
-		kk=kk+(i==edge4->SortAndAdd(Number(edges[i][0]),Number(edges[i][1])));
+		kk=kk+(i==edge4->SortAndAdd(GetId(edges[i][0]),GetId(edges[i][1])));
 	}
 	if (kk != nbe){ 
@@ -3381,5 +3381,5 @@
 
 			//Add current triangle edge to edge4
-			long k =edge4->SortAndAdd(Number(triangles[i][VerticesOfTriangularEdge[j][0]]),Number(triangles[i][VerticesOfTriangularEdge[j][1]]));
+			long k =edge4->SortAndAdd(GetId(triangles[i][VerticesOfTriangularEdge[j][0]]),GetId(triangles[i][VerticesOfTriangularEdge[j][1]]));
 
 			long invisible=triangles[i].Hidden(j);
@@ -3403,5 +3403,5 @@
 			//An edge belongs to 2 triangles
 			else {
-				ISSMERROR("The edge (%i , %i) belongs to more than 2 triangles",Number(triangles[i][VerticesOfTriangularEdge[j][0]]),Number(triangles[i][VerticesOfTriangularEdge[j][1]]));
+				ISSMERROR("The edge (%i , %i) belongs to more than 2 triangles",GetId(triangles[i][VerticesOfTriangularEdge[j][0]]),GetId(triangles[i][VerticesOfTriangularEdge[j][1]]));
 			}
 		}
@@ -3547,5 +3547,5 @@
 					BamgVertex *v0= ta.EdgeVertex(0);
 					BamgVertex *v1= ta.EdgeVertex(1);
-					long k =edge4->SortAndAdd(v0?Number(v0):nbv,v1? Number(v1):nbv);
+					long k =edge4->SortAndAdd(v0?GetId(v0):nbv,v1? GetId(v1):nbv);
 
 					ISSMASSERT(st[k]>=0);
@@ -3623,10 +3623,10 @@
 					/*Check that the 2 vertices are on geometry AND required*/
 					if(!edges[i][j].GeometricalEdgeHook->IsRequiredVertex()){
-						printf("ReconstructExistingMesh error message: problem with the edge number %i: [%i %i]\n",i+1,Number(edges[i][0])+1,Number(edges[i][1])+1);
-						printf("This edge is on geometrical edge number %i\n",Gh.Number(edges[i].GeometricalEdgeHook)+1);
+						printf("ReconstructExistingMesh error message: problem with the edge number %i: [%i %i]\n",i+1,GetId(edges[i][0])+1,GetId(edges[i][1])+1);
+						printf("This edge is on geometrical edge number %i\n",Gh.GetId(edges[i].GeometricalEdgeHook)+1);
 						if (edges[i][j].GeometricalEdgeHook->OnGeomVertex())
-						 printf("the vertex number %i of this edge is a geometric BamgVertex number %i\n",Number(edges[i][j])+1,Gh.Number(edges[i][j].GeometricalEdgeHook->gv)+1);
+						 printf("the vertex number %i of this edge is a geometric BamgVertex number %i\n",GetId(edges[i][j])+1,Gh.GetId(edges[i][j].GeometricalEdgeHook->gv)+1);
 						else if (edges[i][j].GeometricalEdgeHook->OnGeomEdge())
-						 printf("the vertex number %i of this edge is a geometric Edge number %i\n",Number(edges[i][j])+1,Gh.Number(edges[i][j].GeometricalEdgeHook->ge)+1);
+						 printf("the vertex number %i of this edge is a geometric Edge number %i\n",GetId(edges[i][j])+1,Gh.GetId(edges[i][j].GeometricalEdgeHook->ge)+1);
 						else
 						 printf("Its pointer is %p\n",edges[i][j].GeometricalEdgeHook);
@@ -3659,5 +3659,5 @@
 			}
 			do { 
-				long kt = Number(t);
+				long kt = GetId(t);
 				if (kt<0 || kt >= nbt ){
 					ISSMERROR("kt<0 || kt >= nbt");
@@ -3688,5 +3688,5 @@
 
 		for ( i=0;i<nbsubdomains;i++)
-		 subdomains[i].head=triangles+renu[Number(subdomains[i].head)];
+		 subdomains[i].head=triangles+renu[GetId(subdomains[i].head)];
 
 		// move the Triangles  without a copy of the array 
@@ -3733,5 +3733,5 @@
 			BamgVertex *v = VerticesOnGeomVertex[i].mv;
 			if (v>=vertices && v < ve)
-			 VerticesOnGeomVertex[i].mv=vertices+renu[Number(v)];
+			 VerticesOnGeomVertex[i].mv=vertices+renu[GetId(v)];
 		  }
 
@@ -3741,5 +3741,5 @@
 			BamgVertex *v =VerticesOnGeomEdge[i].mv;
 			if (v>=vertices && v < ve)
-			 VerticesOnGeomEdge[i].mv=vertices+renu[Number(v)];
+			 VerticesOnGeomEdge[i].mv=vertices+renu[GetId(v)];
 		  }
 
@@ -3749,5 +3749,5 @@
 			BamgVertex *v=VertexOnBThVertex[i].v;
 			if (v>=vertices && v < ve)
-			 VertexOnBThVertex[i].v=vertices+renu[Number(v)];
+			 VertexOnBThVertex[i].v=vertices+renu[GetId(v)];
 		  }
 
@@ -3756,5 +3756,5 @@
 			BamgVertex *v=VertexOnBThEdge[i].v;
 			if (v>=vertices && v < ve)
-			 VertexOnBThEdge[i].v=vertices+renu[Number(v)];
+			 VertexOnBThEdge[i].v=vertices+renu[GetId(v)];
 		  }
 
@@ -3927,5 +3927,5 @@
 			{
 			 Triangle *ta = triangles[it].TriangleAdj(j);
-			 if ( !ta || !ta->link || Number(ta) >= it) 
+			 if ( !ta || !ta->link || GetId(ta) >= it) 
 				{ 
 				 BamgVertex & vP = triangles[it][VerticesOfTriangularEdge[j][0]];
@@ -3975,7 +3975,7 @@
 	  tstart[i]=0;
 	for ( j=0;j<NbVerticesOnGeomVertex;j++ ) 
-	 tstart[ Number(VerticesOnGeomVertex[j].mv)]=&vide;
+	 tstart[ GetId(VerticesOnGeomVertex[j].mv)]=&vide;
 	for ( k=0;k<NbVerticesOnGeomEdge;k++ ) 
-	 tstart[ Number(VerticesOnGeomEdge[k].mv)]=&vide;
+	 tstart[ GetId(VerticesOnGeomEdge[k].mv)]=&vide;
 	if(verbose>2) printf("   SmoothingVertex: nb Iteration = %i, Omega=%g\n",nbiter,omega);
 	for (k=0;k<nbiter;k++)
@@ -4153,5 +4153,5 @@
 
 
-			kk += (i == edge4->SortAndAdd(Number(edges[i][0]),Number(edges[i][1])));
+			kk += (i == edge4->SortAndAdd(GetId(edges[i][0]),GetId(edges[i][1])));
 			if (ong) // a geometrical edges 
 			  { 
@@ -4164,5 +4164,5 @@
 						ISSMERROR("!edgesGtoB");
 					}
-					ong= ProjectOnCurve(*edgesGtoB[Gh.Number(edges[i].GeometricalEdgeHook)],
+					ong= ProjectOnCurve(*edgesGtoB[Gh.GetId(edges[i].GeometricalEdgeHook)],
 								edges[i][0],edges[i][1],0.5,vertices[k],
 								newVertexOnBThEdge[kvb],
@@ -4244,8 +4244,8 @@
 				const BamgVertex & v0 = t[VerticesOfTriangularEdge[j][0]];
 				const BamgVertex & v1 = t[VerticesOfTriangularEdge[j][1]];
-				long  ke =edge4->SortAndFind(Number(v0),Number(v1));
+				long  ke =edge4->SortAndFind(GetId(v0),GetId(v1));
 				if (ke>0) 
 				  {
-					long ii = Number(tt);
+					long ii = GetId(tt);
 					int  jj = ta;
 					long ks = ke + nbvold;
@@ -4295,10 +4295,10 @@
 				if ( kedge[3*i+j] < 0) 
 				  {
-					long  ke =edge4->SortAndFind(Number(v0),Number(v1));
+					long  ke =edge4->SortAndFind(GetId(v0),GetId(v1));
 					if (ke<0) // new 
 					  {
 						if (&tt) // internal triangles all the boundary 
 						  { // new internal edges 
-							long ii = Number(tt);
+							long ii = GetId(tt);
 							int  jj = ta;
 
@@ -4600,5 +4600,5 @@
 		  if(!t.Locked(j) && !t.Hidden(j)){
 			  Triangle &tt = *t.TriangleAdj(j);
-			  if ( &tt && tt.link && it < Number(tt)) 
+			  if ( &tt && tt.link && it < GetId(tt)) 
 				 { // an internal edge 
 				  BamgVertex &v0 = t[VerticesOfTriangularEdge[j][0]];
@@ -4678,5 +4678,5 @@
 		/*Check output (Vertex a)*/
 		if (!a)    ISSMERROR("problem while trying to find nearest vertex from a given point. No output found");
-		if (!a->t) ISSMERROR("no triangle is associated to vertex number %i (orphan?)",Number(a)+1);
+		if (!a->t) ISSMERROR("no triangle is associated to vertex number %i (orphan?)",GetId(a)+1);
 		ISSMASSERT(a>=vertices && a<vertices+nbv);
 
@@ -4786,5 +4786,5 @@
 
 			//get current triangle number
-			num = Number(t);
+			num = GetId(t);
 
 			//check that num is in [0 nbt[
@@ -5266,5 +5266,5 @@
 
 						/*Get index of current curve*/
-						int icurveequi= Gh.Number(curve);
+						int icurveequi= Gh.GetId(curve);
 
 						/*For phase 0, check that we are at the begining of the curve only*/
@@ -5363,5 +5363,5 @@
 								}
 								if (!ee.adj[k1]) {
-									ISSMERROR(" adj edge %i, nbe=%i, Gh.vertices=%i",BTh.Number(ee),nbe,Gh.vertices);
+									ISSMERROR(" adj edge %i, nbe=%i, Gh.vertices=%i",BTh.GetId(ee),nbe,Gh.vertices);
 								}
 								pe = ee.adj[k1]; // next edge
Index: /issm/trunk/src/c/objects/Bamg/Mesh.h
===================================================================
--- /issm/trunk/src/c/objects/Bamg/Mesh.h	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/Mesh.h	(revision 5149)
@@ -105,10 +105,10 @@
 			Metric MetricAt (const R2 &) const;
 			GeometricalEdge* ProjectOnCurve( Edge & AB, BamgVertex &  A, BamgVertex & B,double theta, BamgVertex & R,VertexOnEdge & BR,VertexOnGeom & GR);
-			long Number(const Triangle & t) const  { return &t - triangles;}
-			long Number(const Triangle * t) const  { return t - triangles;}
-			long Number(const BamgVertex & t) const  { return &t - vertices;}
-			long Number(const BamgVertex * t) const  { return t - vertices;}
-			long Number(const Edge & t) const  { return &t - edges;}
-			long Number(const Edge * t) const  { return t - edges;}
+			long GetId(const Triangle & t) const  { return &t - triangles;}
+			long GetId(const Triangle * t) const  { return t - triangles;}
+			long GetId(const BamgVertex & t) const  { return &t - vertices;}
+			long GetId(const BamgVertex * t) const  { return t - vertices;}
+			long GetId(const Edge & t) const  { return &t - edges;}
+			long GetId(const Edge * t) const  { return t - edges;}
 			long Number2(const Triangle * t) const  { return t - triangles; }
 			BamgVertex* NearestVertex(Icoor1 i,Icoor1 j) ;
Index: /issm/trunk/src/c/objects/Bamg/SubDomain.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/SubDomain.cpp	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/SubDomain.cpp	(revision 5149)
@@ -18,9 +18,9 @@
 			ISSMERROR("head-Th.triangles<0 || head-Th.triangles>=Th.nbt");
 		}
-		head = ThNew.triangles + Th.Number(head) ; 
+		head = ThNew.triangles + Th.GetId(head) ; 
 		if (edge-Th.edges<0 || edge-Th.edges>=Th.nbe);{
 			ISSMERROR("edge-Th.edges<0 || edge-Th.edges>=Th.nbe");
 		}
-		edge = ThNew.edges+ Th.Number(edge);
+		edge = ThNew.edges+ Th.GetId(edge);
 	}
 	/*}}}*/
Index: /issm/trunk/src/c/objects/Bamg/Triangle.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/Triangle.cpp	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/Triangle.cpp	(revision 5149)
@@ -200,12 +200,12 @@
 	void Triangle::Set(const Triangle & rec,const Mesh & Th ,Mesh & ThNew){ 
 		*this = rec;
-		if ( vertices[0] ) vertices[0] = ThNew.vertices +  Th.Number(vertices[0]);
-		if ( vertices[1] ) vertices[1] = ThNew.vertices +  Th.Number(vertices[1]);
-		if ( vertices[2] ) vertices[2] = ThNew.vertices +  Th.Number(vertices[2]);
-		if(adj[0]) adj[0] =  ThNew.triangles + Th.Number(adj[0]);
-		if(adj[1]) adj[1] =  ThNew.triangles + Th.Number(adj[1]);
-		if(adj[2]) adj[2] =  ThNew.triangles + Th.Number(adj[2]);
+		if ( vertices[0] ) vertices[0] = ThNew.vertices +  Th.GetId(vertices[0]);
+		if ( vertices[1] ) vertices[1] = ThNew.vertices +  Th.GetId(vertices[1]);
+		if ( vertices[2] ) vertices[2] = ThNew.vertices +  Th.GetId(vertices[2]);
+		if(adj[0]) adj[0] =  ThNew.triangles + Th.GetId(adj[0]);
+		if(adj[1]) adj[1] =  ThNew.triangles + Th.GetId(adj[1]);
+		if(adj[2]) adj[2] =  ThNew.triangles + Th.GetId(adj[2]);
 		if (link  >= Th.triangles && link  < Th.triangles + Th.nbt)
-		 link = ThNew.triangles + Th.Number(link);
+		 link = ThNew.triangles + Th.GetId(link);
 	}
 	/*}}}*/
Index: /issm/trunk/src/c/objects/Bamg/VertexOnEdge.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/VertexOnEdge.cpp	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/VertexOnEdge.cpp	(revision 5149)
@@ -15,5 +15,5 @@
 	void VertexOnEdge::Set(const Mesh & Th ,long i,Mesh & ThNew){
 		*this = Th.VertexOnBThEdge[i];  
-		v = ThNew.vertices + Th.Number(v);
+		v = ThNew.vertices + Th.GetId(v);
 	}
 	/*}}}*/
Index: /issm/trunk/src/c/objects/Bamg/VertexOnGeom.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/VertexOnGeom.cpp	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/VertexOnGeom.cpp	(revision 5149)
@@ -16,10 +16,10 @@
 	void VertexOnGeom::Set(const VertexOnGeom & rec,const Mesh & Th ,Mesh & ThNew){
 		*this = rec;  
-		mv = ThNew.vertices + Th.Number(mv);
+		mv = ThNew.vertices + Th.GetId(mv);
 		if (gv)
 		 if (abscisse < 0 )
-		  gv = ThNew.Gh.vertices + Th.Gh.Number(gv);
+		  gv = ThNew.Gh.vertices + Th.Gh.GetId(gv);
 		 else
-		  ge = ThNew.Gh.edges + Th.Gh.Number(ge);
+		  ge = ThNew.Gh.edges + Th.Gh.GetId(ge);
 
 	}
Index: /issm/trunk/src/c/objects/Bamg/VertexOnVertex.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/VertexOnVertex.cpp	(revision 5148)
+++ /issm/trunk/src/c/objects/Bamg/VertexOnVertex.cpp	(revision 5149)
@@ -15,5 +15,5 @@
 	void VertexOnVertex::Set(const Mesh &Th ,long i,Mesh &ThNew) { 
 		*this = Th.VertexOnBThVertex[i];  
-		v     = ThNew.vertices + Th.Number(v);
+		v     = ThNew.vertices + Th.GetId(v);
 	}
 	/*}}}*/
