Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9730)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9731)
@@ -162,4 +162,5 @@
 	MeshVertexonbedEnum,
 	MeshVertexonsurfaceEnum,
+	MeshElements2dEnum,
 	/*}}}*/
 	/*Datasets {{{1*/
@@ -474,5 +475,4 @@
 	ZEnum,
 	EdgesEnum,
-	Elements2dEnum,
 	XEnum,
 	OutputfilenameEnum,
Index: /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9730)
+++ /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9731)
@@ -166,4 +166,5 @@
 		case MeshVertexonbedEnum : return "MeshVertexonbed";
 		case MeshVertexonsurfaceEnum : return "MeshVertexonsurface";
+		case MeshElements2dEnum : return "MeshElements2d";
 		case ConstraintsEnum : return "Constraints";
 		case ElementsEnum : return "Elements";
@@ -417,5 +418,4 @@
 		case ZEnum : return "Z";
 		case EdgesEnum : return "Edges";
-		case Elements2dEnum : return "Elements2d";
 		case XEnum : return "X";
 		case OutputfilenameEnum : return "Outputfilename";
Index: /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp	(revision 9730)
+++ /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp	(revision 9731)
@@ -71,5 +71,5 @@
 	else{
 		/*load elements2d: */
-		iomodel->FetchData(&elements2d,NULL,NULL,Elements2dEnum);
+		iomodel->FetchData(&elements2d,NULL,NULL,MeshElements2dEnum);
 	}
 
Index: /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9730)
+++ /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9731)
@@ -164,4 +164,5 @@
 	else if (strcmp(name,"MeshVertexonbed")==0) return MeshVertexonbedEnum;
 	else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum;
+	else if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
 	else if (strcmp(name,"Constraints")==0) return ConstraintsEnum;
 	else if (strcmp(name,"Elements")==0) return ElementsEnum;
@@ -415,5 +416,4 @@
 	else if (strcmp(name,"Z")==0) return ZEnum;
 	else if (strcmp(name,"Edges")==0) return EdgesEnum;
-	else if (strcmp(name,"Elements2d")==0) return Elements2dEnum;
 	else if (strcmp(name,"X")==0) return XEnum;
 	else if (strcmp(name,"Outputfilename")==0) return OutputfilenameEnum;
Index: /issm/trunk/src/m/classes/mesh.m
===================================================================
--- /issm/trunk/src/m/classes/mesh.m	(revision 9730)
+++ /issm/trunk/src/m/classes/mesh.m	(revision 9731)
@@ -32,4 +32,7 @@
 		vertexonbed         = modelfield('default',NaN,'marshall',true,'format','BooleanMat','mattype',1);
 		vertexonsurface     = modelfield('default',NaN,'marshall',true,'format','BooleanMat','mattype',1);
+		elements2d         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
+		x2d                = modelfield('default',NaN,'marshall',false);
+		y2d                = modelfield('default',NaN,'marshall',false);
 	end
 	methods
@@ -75,23 +78,23 @@
 
 			if obj.dimension==3,
-				disp(sprintf('\n      Elements and nodes of the original 2d mesh:'));
+				disp(sprintf('\n      Elements and vertices of the original 2d mesh:'));
 				fielddisplay(obj,'numberofelements2d','number of elements');
-				fielddisplay(obj,'numberofnodes2d','number of nodes');
-				fielddisplay(obj,'elements2d','index into (x,y,z), coordinates of the nodes');
-				fielddisplay(obj,'x2d','nodes x coordinate');
-				fielddisplay(obj,'y2d','nodes y coordinate');
+				fielddisplay(obj,'numberofverticess2d','number of vertices');
+				fielddisplay(obj,'elements2d','index into (x,y,z), coordinates of the vertices');
+				fielddisplay(obj,'x2d','vertices x coordinate');
+				fielddisplay(obj,'y2d','vertices y coordinate');
 
-				disp(sprintf('\n      Elements and nodes of the extruded 3d mesh:'));
+				disp(sprintf('\n      Elements and vertices of the extruded 3d mesh:'));
 			else
-				disp(sprintf('\n      Elements and nodes:'));
+				disp(sprintf('\n      Elements and vertices:'));
 			end
 			fielddisplay(obj,'numberofelements','number of elements');
-			fielddisplay(obj,'numberofnodes','number of nodes');
-			fielddisplay(obj,'elements','index into (x,y,z), coordinates of the nodes');
+			fielddisplay(obj,'numberofvertices','number of vertices');
+			fielddisplay(obj,'elements','index into (x,y,z), coordinates of the vertices');
 			fielddisplay(obj,'elements_type','element types');
-			fielddisplay(obj,'x','nodes x coordinate');
-			fielddisplay(obj,'y','nodes y coordinate');
-			fielddisplay(obj,'z','nodes z coordinate');
-			fielddisplay(obj,'edges','edges of the 2d mesh (node1 node2 element1 element2)');
+			fielddisplay(obj,'x','vertices x coordinate');
+			fielddisplay(obj,'y','vertices y coordinate');
+			fielddisplay(obj,'z','vertices z coordinate');
+			fielddisplay(obj,'edges','edges of the 2d mesh (vertex1 vertex2 element1 element2)');
 
 			disp(sprintf('\n      Properties:'));
@@ -99,7 +102,7 @@
 			fielddisplay(obj,'numlayers','number of extrusion layers');
 			fielddisplay(obj,'penalties','penalties list');
-			fielddisplay(obj,'nodeonbed','lower nodes flags list');
+			fielddisplay(obj,'vertexonbed','lower vertices flags list');
 			fielddisplay(obj,'elementonbed','lower elements flags list');
-			fielddisplay(obj,'nodeonsurface','upper nodes flags list');
+			fielddisplay(obj,'vertexonsurface','upper vertices flags list');
 			fielddisplay(obj,'elementonsurface','upper elements flags list');
 		end % }}}
Index: /issm/trunk/src/m/classes/model/model.m
===================================================================
--- /issm/trunk/src/m/classes/model/model.m	(revision 9730)
+++ /issm/trunk/src/m/classes/model/model.m	(revision 9731)
@@ -48,7 +48,4 @@
 		 z                   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
 		 edges               = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
-		 elements2d         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
-		 x2d                = modelfield('default',NaN,'marshall',false);
-		 y2d                = modelfield('default',NaN,'marshall',false);
 
 		 %}}}
@@ -317,4 +314,7 @@
 			 if isfield(structmd,'nodeonsurface'), md.mesh.vertexonsurface=structmd.nodeonsurface; end
 			 if isfield(structmd,'nodeonbed'), md.mesh.vertexonbed=structmd.nodeonbed; end
+			 if isfield(structmd,'elements2d'), md.mesh.elements2d=structmd.elements2d; end
+			 if isfield(structmd,'y2d'), md.mesh.y2d=structmd.y2d; end
+			 if isfield(structmd,'x2d'), md.mesh.x2d=structmd.x2d; end
 
 			 %Field changes
Index: /issm/trunk/src/m/model/PropagateFlagsUntilDistance.m
===================================================================
--- /issm/trunk/src/m/model/PropagateFlagsUntilDistance.m	(revision 9730)
+++ /issm/trunk/src/m/model/PropagateFlagsUntilDistance.m	(revision 9731)
@@ -13,7 +13,7 @@
 %make 3d work in 2d: 
 if md.mesh.dimension==3,
-	md.x=md.x2d;
-	md.y=md.y2d;
-	md.elements=md.elements2d;
+	md.x=md.mesh.x2d;
+	md.y=md.mesh.y2d;
+	md.elements=md.mesh.elements2d;
 end
 
Index: /issm/trunk/src/m/model/SectionValues.m
===================================================================
--- /issm/trunk/src/m/model/SectionValues.m	(revision 9730)
+++ /issm/trunk/src/m/model/SectionValues.m	(revision 9731)
@@ -94,6 +94,6 @@
 	%Get bed and surface for each 2d point, offset to make sure that it is inside the glacier system
 	offset=10^-3;
-	bed=InterpFromMeshToMesh2d(md.elements2d,md.x2d,md.y2d,project2d(md,md.geometry.bed,1),X,Y)+offset;
-	surface=InterpFromMeshToMesh2d(md.elements2d,md.x2d,md.y2d,project2d(md,md.geometry.surface,1),X,Y)-offset;
+	bed=InterpFromMeshToMesh2d(md.mesh.elements2d,md.mesh.x2d,md.mesh.y2d,project2d(md,md.geometry.bed,1),X,Y)+offset;
+	surface=InterpFromMeshToMesh2d(md.mesh.elements2d,md.mesh.x2d,md.mesh.y2d,project2d(md,md.geometry.surface,1),X,Y)-offset;
 
 	%Some useful parameters
Index: /issm/trunk/src/m/model/bedslope.m
===================================================================
--- /issm/trunk/src/m/model/bedslope.m	(revision 9730)
+++ /issm/trunk/src/m/model/bedslope.m	(revision 9731)
@@ -14,6 +14,6 @@
 	numberofelements=md.mesh.numberofelements2d;
 	numberofnodes=md.mesh.numberofvertices2d;
-	index=md.elements2d;
-	x=md.x2d; y=md.y2d;
+	index=md.mesh.elements2d;
+	x=md.mesh.x2d; y=md.mesh.y2d;
 end
 
Index: /issm/trunk/src/m/model/collapse.m
===================================================================
--- /issm/trunk/src/m/model/collapse.m	(revision 9730)
+++ /issm/trunk/src/m/model/collapse.m	(revision 9731)
@@ -90,10 +90,10 @@
 
 %Initialize with the 2d mesh
-md.x=md.x2d;
-md.y=md.y2d;
-md.z=zeros(size(md.x2d));
+md.x=md.mesh.x2d;
+md.y=md.mesh.y2d;
+md.z=zeros(size(md.mesh.x2d));
 md.mesh.numberofvertices=md.mesh.numberofvertices2d;
 md.mesh.numberofelements=md.mesh.numberofelements2d;
-md.elements=md.elements2d;
+md.elements=md.mesh.elements2d;
 
 %Keep a trace of lower and upper nodes
@@ -102,7 +102,7 @@
 
 %Remove old mesh 
-md.x2d=NaN;
-md.y2d=NaN;
-md.elements2d=NaN;
+md.mesh.x2d=NaN;
+md.mesh.y2d=NaN;
+md.mesh.elements2d=NaN;
 md.mesh.numberofelements2d=md.mesh.numberofelements;
 md.mesh.numberofvertices2d=md.mesh.numberofvertices;
Index: /issm/trunk/src/m/model/divergence.m
===================================================================
--- /issm/trunk/src/m/model/divergence.m	(revision 9730)
+++ /issm/trunk/src/m/model/divergence.m	(revision 9731)
@@ -13,6 +13,6 @@
 	numberofelements=md.mesh.numberofelements2d;
 	numberofnodes=md.mesh.numberofvertices2d;
-	index=md.elements2d;
-	x=md.x2d; y=md.y2d;
+	index=md.mesh.elements2d;
+	x=md.mesh.x2d; y=md.mesh.y2d;
 end
 
Index: /issm/trunk/src/m/model/extrude.m
===================================================================
--- /issm/trunk/src/m/model/extrude.m	(revision 9730)
+++ /issm/trunk/src/m/model/extrude.m	(revision 9731)
@@ -103,7 +103,7 @@
 
 %Save old mesh 
-md.x2d=md.x;
-md.y2d=md.y;
-md.elements2d=md.elements;
+md.mesh.x2d=md.x;
+md.mesh.y2d=md.y;
+md.mesh.elements2d=md.elements;
 md.mesh.numberofelements2d=md.mesh.numberofelements;
 md.mesh.numberofvertices2d=md.mesh.numberofvertices;
Index: /issm/trunk/src/m/model/misfit.m
===================================================================
--- /issm/trunk/src/m/model/misfit.m	(revision 9730)
+++ /issm/trunk/src/m/model/misfit.m	(revision 9731)
@@ -18,7 +18,7 @@
 	vy_obs=md.inversion.vy_obs;
 else
-	elements=md.elements2d;
-	x=md.x2d;
-	y=md.y2d;
+	elements=md.mesh.elements2d;
+	x=md.mesh.x2d;
+	y=md.mesh.y2d;
 	vx=project2d(md,md.initialization.vx,md.mesh.numberoflayers);
 	vy=project2d(md,md.initialization.vy,md.mesh.numberoflayers);
Index: /issm/trunk/src/m/model/modelextract.m
===================================================================
--- /issm/trunk/src/m/model/modelextract.m	(revision 9730)
+++ /issm/trunk/src/m/model/modelextract.m	(revision 9731)
@@ -151,8 +151,8 @@
 		md2.numberofelements2d=length(pos_elem_2d);
 		md2.numberofnodes2d=length(pos_node_2d);
-		md2.elements2d=md1.elements2d(pos_elem_2d,:);
-		md2.elements2d(:,1)=Pnode(md2.elements2d(:,1));
-		md2.elements2d(:,2)=Pnode(md2.elements2d(:,2));
-		md2.elements2d(:,3)=Pnode(md2.elements2d(:,3));
+		md2.mesh.elements2d=md1.mesh.elements2d(pos_elem_2d,:);
+		md2.mesh.elements2d(:,1)=Pnode(md2.mesh.elements2d(:,1));
+		md2.mesh.elements2d(:,2)=Pnode(md2.mesh.elements2d(:,2));
+		md2.mesh.elements2d(:,3)=Pnode(md2.mesh.elements2d(:,3));
 
 		md2.x2d=md1.x(pos_node_2d);
Index: /issm/trunk/src/m/model/partition/AreaAverageOntoPartition.m
===================================================================
--- /issm/trunk/src/m/model/partition/AreaAverageOntoPartition.m	(revision 9730)
+++ /issm/trunk/src/m/model/partition/AreaAverageOntoPartition.m	(revision 9731)
@@ -16,7 +16,7 @@
 	md3d=md;
 	
-	md.elements=md.elements2d;
-	md.x=md.x2d;
-	md.y=md.y2d;
+	md.elements=md.mesh.elements2d;
+	md.x=md.mesh.x2d;
+	md.y=md.mesh.y2d;
 	md.mesh.numberofvertices=md.mesh.numberofvertices2d;
 	md.mesh.numberofelements=md.mesh.numberofelements2d;
Index: /issm/trunk/src/m/model/partition/partitioner.m
===================================================================
--- /issm/trunk/src/m/model/partition/partitioner.m	(revision 9730)
+++ /issm/trunk/src/m/model/partition/partitioner.m	(revision 9731)
@@ -34,7 +34,7 @@
 	%extrude the partition vector vertically. 
 	md3d=md; %save  for later
-	md.elements=md.elements2d;
-	md.x=md.x2d;
-	md.y=md.y2d;
+	md.elements=md.mesh.elements2d;
+	md.x=md.mesh.x2d;
+	md.y=md.mesh.y2d;
 	md.mesh.numberofvertices=md.mesh.numberofvertices2d;
 	md.mesh.numberofelements=md.mesh.numberofelements2d;
Index: /issm/trunk/src/m/model/plot/plot_section.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_section.m	(revision 9730)
+++ /issm/trunk/src/m/model/plot/plot_section.m	(revision 9731)
@@ -32,5 +32,5 @@
 md3d=md;
 if exist(options,'layer')
-	md.x=md.x2d; md.y=md.y2d; md.elements=md.elements2d; md.mesh.dimension=2;
+	md.x=md.mesh.x2d; md.y=md.mesh.y2d; md.elements=md.mesh.elements2d; md.mesh.dimension=2;
 end
 
Index: /issm/trunk/src/m/model/plot/processmesh.m
===================================================================
--- /issm/trunk/src/m/model/plot/processmesh.m	(revision 9730)
+++ /issm/trunk/src/m/model/plot/processmesh.m	(revision 9731)
@@ -17,12 +17,12 @@
 	if ~strcmpi(getfieldvalue(options,'coord','xy'),'latlon'),
 		x=md.x;
-		x2d=md.x2d;
+		x2d=md.mesh.x2d;
 		y=md.y;
-		y2d=md.y2d;
+		y2d=md.mesh.y2d;
 	else
 		x=md.mesh.long;
-		x2d=md.x2d;
+		x2d=md.mesh.x2d;
 		y=md.mesh.lat;
-		y2d=md.y2d;
+		y2d=md.mesh.y2d;
 	end
 
@@ -37,5 +37,5 @@
 
 
-	elements2d=md.elements2d;
+	elements2d=md.mesh.elements2d;
 	elements=md.elements;
 
Index: /issm/trunk/src/m/model/slope.m
===================================================================
--- /issm/trunk/src/m/model/slope.m	(revision 9730)
+++ /issm/trunk/src/m/model/slope.m	(revision 9731)
@@ -14,6 +14,6 @@
 	numberofelements=md.mesh.numberofelements2d;
 	numberofnodes=md.mesh.numberofvertices2d;
-	index=md.elements2d;
-	x=md.x2d; y=md.y2d;
+	index=md.mesh.elements2d;
+	x=md.mesh.x2d; y=md.mesh.y2d;
 end
 
Index: /issm/trunk/test/NightlyRun/test136.m
===================================================================
--- /issm/trunk/test/NightlyRun/test136.m	(revision 9730)
+++ /issm/trunk/test/NightlyRun/test136.m	(revision 9731)
@@ -6,5 +6,6 @@
 md.initialization.vy=md.initialization.vy+400;
 md=setflowequation(md,'macayeal','all');
-md.cluster=generic('name',oshostname(),'np',3);
+md.cluster=generic('name',oshostname(),'np',1);
+md.debug.valgrind=1;
 md=solve(md,BalancethicknessSolutionEnum);
 
