Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9660)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9661)
@@ -83,4 +83,12 @@
 	BalancethicknessStabilizationEnum,
 	BalancethicknessRequestedOutputsEnum,
+	FlowequationIshutterEnum,
+	FlowequationIsmacayealpattynEnum,
+	FlowequationIsstokesEnum,
+	FlowequationElementEquationEnum,
+	FlowequationVertexEquationEnum,
+	FlowequationBorderstokesEnum,
+	FlowequationBorderpattynEnum,
+	FlowequationBordermacayealEnum,
 	/*}}}*/
 	/*Datasets {{{1*/
@@ -432,13 +440,8 @@
 	SpcvyEnum,
 	YEnum,
-	ElementsTypeEnum,
 	PenaltiesEnum,
 	PressureloadEnum,
-	VerticesTypeEnum,
 	SpcvzEnum,
 	NumberOfNodes2DEnum,
-	NodeonstokesEnum,
-	NodeonpattynEnum,
-	NodeonmacayealEnum,
 	ZEnum,
 	PenaltyLockEnum,
@@ -452,7 +455,4 @@
 	NumlayersEnum,
 	DiagnosticRefEnum,
-	IshutterEnum,
-	IsmacayealpattynEnum,
-	IsstokesEnum,
 	StokesreconditioningEnum,
 	LowerelementsEnum,
Index: /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9661)
@@ -87,4 +87,12 @@
 		case BalancethicknessStabilizationEnum : return "BalancethicknessStabilization";
 		case BalancethicknessRequestedOutputsEnum : return "BalancethicknessRequestedOutputs";
+		case FlowequationIshutterEnum : return "FlowequationIshutter";
+		case FlowequationIsmacayealpattynEnum : return "FlowequationIsmacayealpattyn";
+		case FlowequationIsstokesEnum : return "FlowequationIsstokes";
+		case FlowequationElementEquationEnum : return "FlowequationElementEquation";
+		case FlowequationVertexEquationEnum : return "FlowequationVertexEquation";
+		case FlowequationBorderstokesEnum : return "FlowequationBorderstokes";
+		case FlowequationBorderpattynEnum : return "FlowequationBorderpattyn";
+		case FlowequationBordermacayealEnum : return "FlowequationBordermacayeal";
 		case ConstraintsEnum : return "Constraints";
 		case ElementsEnum : return "Elements";
@@ -376,13 +384,8 @@
 		case SpcvyEnum : return "Spcvy";
 		case YEnum : return "Y";
-		case ElementsTypeEnum : return "ElementsType";
 		case PenaltiesEnum : return "Penalties";
 		case PressureloadEnum : return "Pressureload";
-		case VerticesTypeEnum : return "VerticesType";
 		case SpcvzEnum : return "Spcvz";
 		case NumberOfNodes2DEnum : return "NumberOfNodes2D";
-		case NodeonstokesEnum : return "Nodeonstokes";
-		case NodeonpattynEnum : return "Nodeonpattyn";
-		case NodeonmacayealEnum : return "Nodeonmacayeal";
 		case ZEnum : return "Z";
 		case PenaltyLockEnum : return "PenaltyLock";
@@ -396,7 +399,4 @@
 		case NumlayersEnum : return "Numlayers";
 		case DiagnosticRefEnum : return "DiagnosticRef";
-		case IshutterEnum : return "Ishutter";
-		case IsmacayealpattynEnum : return "Ismacayealpattyn";
-		case IsstokesEnum : return "Isstokes";
 		case StokesreconditioningEnum : return "Stokesreconditioning";
 		case LowerelementsEnum : return "Lowerelements";
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp	(revision 9661)
@@ -49,5 +49,5 @@
 
 	/*First fetch data: */
-	iomodel->FetchData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 
 	if(continuous_galerkin){
@@ -88,5 +88,5 @@
 
 	/*Clean fetched data: */
-	iomodel->DeleteData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp	(revision 9661)
@@ -36,5 +36,5 @@
 	
 	/*First fetch data: */
-	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 
 	for (i=0;i<numberofvertices;i++){
@@ -48,5 +48,5 @@
 
 	/*Clean fetched data: */
-	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 	
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 9661)
@@ -26,7 +26,7 @@
 	/*Copy some constants from iomodel */
 	parameters->AddObject(iomodel->CopyConstantObject(DimEnum));
-	parameters->AddObject(iomodel->CopyConstantObject(IshutterEnum));
-	parameters->AddObject(iomodel->CopyConstantObject(IsmacayealpattynEnum));
-	parameters->AddObject(iomodel->CopyConstantObject(IsstokesEnum));
+	parameters->AddObject(iomodel->CopyConstantObject(FlowequationIshutterEnum));
+	parameters->AddObject(iomodel->CopyConstantObject(FlowequationIsmacayealpattynEnum));
+	parameters->AddObject(iomodel->CopyConstantObject(FlowequationIsstokesEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(OutputFrequencyEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(EpsResEnum));
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 9661)
@@ -45,6 +45,6 @@
 	iomodel->Constant(&rho_ice,MaterialsRhoIceEnum);
 	iomodel->Constant(&stokesreconditioning,StokesreconditioningEnum);
-	iomodel->Constant(&isstokes,IsstokesEnum);
-	iomodel->Constant(&ismacayealpattyn,IsmacayealpattynEnum);
+	iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
+	iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
 
 	/*Recover pointer: */
@@ -64,8 +64,8 @@
 	iomodel->FetchData(&spcvy,NULL,NULL,SpcvyEnum);
 	iomodel->FetchData(&spcvz,NULL,NULL,SpcvzEnum);
-	iomodel->FetchData(&nodeonmacayeal,NULL,NULL,NodeonmacayealEnum);
-	if(dim==3)iomodel->FetchData(&nodeonpattyn,NULL,NULL,NodeonpattynEnum);
-	if(dim==3)iomodel->FetchData(&nodeonstokes,NULL,NULL,NodeonstokesEnum);
-	iomodel->FetchData(&vertices_type,NULL,NULL,VerticesTypeEnum);
+	iomodel->FetchData(&nodeonmacayeal,NULL,NULL,FlowequationBordermacayealEnum);
+	if(dim==3)iomodel->FetchData(&nodeonpattyn,NULL,NULL,FlowequationBorderpattynEnum);
+	if(dim==3)iomodel->FetchData(&nodeonstokes,NULL,NULL,FlowequationBorderstokesEnum);
+	iomodel->FetchData(&vertices_type,NULL,NULL,FlowequationVertexEquationEnum);
 	iomodel->FetchData(&surface,NULL,NULL,SurfaceEnum);
 	iomodel->FetchData(&z,NULL,NULL,ZEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 9661)
@@ -42,6 +42,6 @@
 	iomodel->Constant(&dim,DimEnum);
 	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
-	iomodel->Constant(&isstokes,IsstokesEnum);
-	iomodel->Constant(&ismacayealpattyn,IsmacayealpattynEnum);
+	iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
+	iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
 	iomodel->Constant(&numrifts,RiftsNumriftsEnum);
 
@@ -62,5 +62,5 @@
 	iomodel->FetchData(3,PressureloadEnum,ThicknessEnum,BedEnum);
 	iomodel->FetchData(&pressureload,&numberofpressureloads,NULL,PressureloadEnum);
-	iomodel->FetchData(&elements_type,NULL,NULL,ElementsTypeEnum);
+	iomodel->FetchData(&elements_type,NULL,NULL,FlowequationElementEquationEnum);
 
 	/*Initialize counter: */
@@ -126,6 +126,6 @@
 	iomodel->FetchData(&nodeonbed,NULL,NULL,NodeonbedEnum);
 	iomodel->FetchData(&nodeonicesheet,NULL,NULL,MaskVertexongroundediceEnum);
-	iomodel->FetchData(&nodeonstokes,NULL,NULL,NodeonstokesEnum);
-	iomodel->FetchData(&vertices_type,NULL,NULL,VerticesTypeEnum);
+	iomodel->FetchData(&nodeonstokes,NULL,NULL,FlowequationBorderstokesEnum);
+	iomodel->FetchData(&vertices_type,NULL,NULL,FlowequationVertexEquationEnum);
 	iomodel->FetchData(1,ElementsEnum);
 	CreateSingleNodeToElementConnectivity(iomodel);
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 9661)
@@ -26,6 +26,6 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
-	iomodel->Constant(&isstokes,IsstokesEnum);
-	iomodel->Constant(&ismacayealpattyn,IsmacayealpattynEnum);
+	iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
+	iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
 
 	/*Recover pointer: */
@@ -45,6 +45,6 @@
 
 	/*Create nodes: */
-	iomodel->FetchData(9,NodeonbedEnum,NodeonsurfaceEnum,NodeonmacayealEnum,NodeonstokesEnum,
-				MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,VerticesTypeEnum,DiagnosticRefEnum);
+	iomodel->FetchData(9,NodeonbedEnum,NodeonsurfaceEnum,FlowequationBordermacayealEnum,FlowequationBorderstokesEnum,
+				MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticRefEnum);
 	
 	for (i=0;i<numberofvertices;i++){
@@ -58,6 +58,6 @@
 
 	/*Clean fetched data: */
-	iomodel->DeleteData(9,NodeonbedEnum,NodeonsurfaceEnum,NodeonmacayealEnum,NodeonstokesEnum,
-				MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,VerticesTypeEnum,DiagnosticRefEnum);
+	iomodel->DeleteData(9,NodeonbedEnum,NodeonsurfaceEnum,FlowequationBordermacayealEnum,FlowequationBorderstokesEnum,
+				MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticRefEnum);
 
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 9661)
@@ -24,6 +24,6 @@
 
 	/*Fetch constants needed: */
-	iomodel->Constant(&isstokes,IsstokesEnum);
-	iomodel->Constant(&ismacayealpattyn,IsmacayealpattynEnum);
+	iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
+	iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
 	iomodel->Constant(&dim,DimEnum);
 	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
@@ -35,5 +35,5 @@
 
 	/*Fetch data needed: */
-	iomodel->FetchData(2,ElementsEnum,ElementsTypeEnum);
+	iomodel->FetchData(2,ElementsEnum,FlowequationElementEquationEnum);
 
 	/*Update elements: */
@@ -71,5 +71,5 @@
 		iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
 		iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
-		iomodel->FetchDataToInput(elements,NodeonstokesEnum);
+		iomodel->FetchDataToInput(elements,FlowequationBorderstokesEnum);
 	}
 
@@ -95,4 +95,4 @@
 	
 	/*Free data: */
-	iomodel->DeleteData(2,ElementsEnum,ElementsTypeEnum);
+	iomodel->DeleteData(2,ElementsEnum,FlowequationElementEquationEnum);
 }
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 9661)
@@ -30,5 +30,5 @@
 	iomodel->Constant(&yts,ConstantsYtsEnum);
 	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
-	iomodel->Constant(&ishutter,IshutterEnum);
+	iomodel->Constant(&ishutter,FlowequationIshutterEnum);
 
 	/*Create constraints if they do not exist yet*/
@@ -42,5 +42,5 @@
 
 	/*Fetch data: */
-	iomodel->FetchData(3,SpcvxEnum,SpcvyEnum,VerticesTypeEnum);
+	iomodel->FetchData(3,SpcvxEnum,SpcvyEnum,FlowequationVertexEquationEnum);
 
 	/*Initialize conunter*/
@@ -51,5 +51,5 @@
 		/*keep only this partition's nodes:*/
 		if((iomodel->my_vertices[i])){
-			if (!(int)iomodel->Data(VerticesTypeEnum)[i]==HutterApproximationEnum){
+			if (!(int)iomodel->Data(FlowequationVertexEquationEnum)[i]==HutterApproximationEnum){
 
 				constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,DiagnosticHutterAnalysisEnum));
@@ -74,5 +74,5 @@
 
 	/*Free data: */
-	iomodel->DeleteData(3,SpcvxEnum,SpcvyEnum,VerticesTypeEnum);
+	iomodel->DeleteData(3,SpcvxEnum,SpcvyEnum,FlowequationVertexEquationEnum);
 	
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp	(revision 9661)
@@ -26,5 +26,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
-	iomodel->Constant(&ishutter,IshutterEnum);
+	iomodel->Constant(&ishutter,FlowequationIshutterEnum);
 
 	/*Recover pointer: */
@@ -44,5 +44,5 @@
 
 	/*First fetch data: */
-	iomodel->FetchData(7,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,ElementsEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(7,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,ElementsEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 	CreateNumberNodeToElementConnectivity(iomodel);
 
@@ -57,5 +57,5 @@
 
 	/*Clean fetched data: */
-	iomodel->DeleteData(7,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,ElementsEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(7,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,ElementsEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp	(revision 9661)
@@ -22,10 +22,10 @@
 	/*Fetch data needed: */
 	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
-	iomodel->Constant(&ishutter,IshutterEnum);
+	iomodel->Constant(&ishutter,FlowequationIshutterEnum);
 
 	/*Now, is the flag hutter on? otherwise, do nothing: */
 	if (!ishutter)return;
 
-	iomodel->FetchData(2,ElementsEnum,ElementsTypeEnum);
+	iomodel->FetchData(2,ElementsEnum,FlowequationElementEquationEnum);
 
 	/*Update elements: */
@@ -43,4 +43,4 @@
 	
 	/*Free data: */
-	iomodel->DeleteData(2,ElementsEnum,ElementsTypeEnum);
+	iomodel->DeleteData(2,ElementsEnum,FlowequationElementEquationEnum);
 }
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 9661)
@@ -41,5 +41,5 @@
 
 	/*Fetch data: */
-	iomodel->FetchData(2,SpcvzEnum,NodeonstokesEnum);
+	iomodel->FetchData(2,SpcvzEnum,FlowequationBorderstokesEnum);
 
 	/*Initialize counter*/
@@ -52,5 +52,5 @@
 		if(iomodel->my_vertices[i]){
 
-			if ((int)iomodel->Data(NodeonstokesEnum)[i]){
+			if ((int)iomodel->Data(FlowequationBorderstokesEnum)[i]){
 				constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,DiagnosticVertAnalysisEnum)); //spc to zero as vertical velocity is done in Horiz for Stokes
 				count++;
@@ -66,5 +66,5 @@
 
 	/*Free data: */
-	iomodel->DeleteData(2,SpcvzEnum,NodeonstokesEnum);
+	iomodel->DeleteData(2,SpcvzEnum,FlowequationBorderstokesEnum);
 
 	cleanup_and_return:
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp	(revision 9661)
@@ -44,5 +44,5 @@
 	
 	/*First fetch data: */
-	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 
 	for (i=0;i<numberofvertices;i++){
@@ -56,5 +56,5 @@
 
 	/*Clean fetched data: */
-	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 	
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp	(revision 9661)
@@ -36,5 +36,5 @@
 
 	/*Create nodes and vertices: */
-	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 
 	for (i=0;i<numberofvertices;i++){
@@ -48,5 +48,5 @@
 
 	/*Clean fetched data: */
-	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 	
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp	(revision 9661)
@@ -49,5 +49,5 @@
 	iomodel->FetchDataToInput(elements,ElementonsurfaceEnum);
 	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
-	iomodel->FetchDataToInput(elements,ElementsTypeEnum);
+	iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp	(revision 9661)
@@ -36,5 +36,5 @@
 
 	/*Create nodes and vertices: */
-	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 	for (i=0;i<numberofvertices;i++){
 
@@ -45,5 +45,5 @@
 		}
 	}
-	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 	
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp	(revision 9661)
@@ -42,5 +42,5 @@
 	iomodel->FetchDataToInput(elements,ElementonsurfaceEnum);
 	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
-	iomodel->FetchDataToInput(elements,ElementsTypeEnum);
+	iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp	(revision 9661)
@@ -36,5 +36,5 @@
 
 	/*First fetch data: */
-	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 	for (i=0;i<numberofvertices;i++){
 
@@ -46,5 +46,5 @@
 		}
 	}
-	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp	(revision 9661)
@@ -50,5 +50,5 @@
 	iomodel->FetchDataToInput(elements,ElementonsurfaceEnum);
 	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
-	iomodel->FetchDataToInput(elements,ElementsTypeEnum);
+	iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp	(revision 9661)
@@ -49,5 +49,5 @@
 
 	/*First fetch data: */
-	iomodel->FetchData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 	if(continuous_galerkin){
 
@@ -88,5 +88,5 @@
 
 	/*Clean fetched data: */
-	iomodel->DeleteData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp	(revision 9661)
@@ -36,5 +36,5 @@
 	
 	/*First fetch data: */
-	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 
 	for (i=0;i<numberofvertices;i++){
@@ -49,5 +49,5 @@
 
 	/*Clean fetched data: */
-	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 	
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp	(revision 9661)
@@ -36,5 +36,5 @@
 
 	/*Create nodes and vertices: */
-	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 
 	for (i=0;i<numberofvertices;i++){
@@ -48,5 +48,5 @@
 
 	/*Clean fetched data: */
-	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
 	
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp	(revision 9661)
@@ -51,5 +51,5 @@
 	iomodel->FetchDataToInput(elements,ElementonsurfaceEnum);
 	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
-	iomodel->FetchDataToInput(elements,ElementsTypeEnum);
+	iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
Index: /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9660)
+++ /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9661)
@@ -85,4 +85,12 @@
 	else if (strcmp(name,"BalancethicknessStabilization")==0) return BalancethicknessStabilizationEnum;
 	else if (strcmp(name,"BalancethicknessRequestedOutputs")==0) return BalancethicknessRequestedOutputsEnum;
+	else if (strcmp(name,"FlowequationIshutter")==0) return FlowequationIshutterEnum;
+	else if (strcmp(name,"FlowequationIsmacayealpattyn")==0) return FlowequationIsmacayealpattynEnum;
+	else if (strcmp(name,"FlowequationIsstokes")==0) return FlowequationIsstokesEnum;
+	else if (strcmp(name,"FlowequationElementEquation")==0) return FlowequationElementEquationEnum;
+	else if (strcmp(name,"FlowequationVertexEquation")==0) return FlowequationVertexEquationEnum;
+	else if (strcmp(name,"FlowequationBorderstokes")==0) return FlowequationBorderstokesEnum;
+	else if (strcmp(name,"FlowequationBorderpattyn")==0) return FlowequationBorderpattynEnum;
+	else if (strcmp(name,"FlowequationBordermacayeal")==0) return FlowequationBordermacayealEnum;
 	else if (strcmp(name,"Constraints")==0) return ConstraintsEnum;
 	else if (strcmp(name,"Elements")==0) return ElementsEnum;
@@ -374,13 +382,8 @@
 	else if (strcmp(name,"Spcvy")==0) return SpcvyEnum;
 	else if (strcmp(name,"Y")==0) return YEnum;
-	else if (strcmp(name,"ElementsType")==0) return ElementsTypeEnum;
 	else if (strcmp(name,"Penalties")==0) return PenaltiesEnum;
 	else if (strcmp(name,"Pressureload")==0) return PressureloadEnum;
-	else if (strcmp(name,"VerticesType")==0) return VerticesTypeEnum;
 	else if (strcmp(name,"Spcvz")==0) return SpcvzEnum;
 	else if (strcmp(name,"NumberOfNodes2D")==0) return NumberOfNodes2DEnum;
-	else if (strcmp(name,"Nodeonstokes")==0) return NodeonstokesEnum;
-	else if (strcmp(name,"Nodeonpattyn")==0) return NodeonpattynEnum;
-	else if (strcmp(name,"Nodeonmacayeal")==0) return NodeonmacayealEnum;
 	else if (strcmp(name,"Z")==0) return ZEnum;
 	else if (strcmp(name,"PenaltyLock")==0) return PenaltyLockEnum;
@@ -394,7 +397,4 @@
 	else if (strcmp(name,"Numlayers")==0) return NumlayersEnum;
 	else if (strcmp(name,"DiagnosticRef")==0) return DiagnosticRefEnum;
-	else if (strcmp(name,"Ishutter")==0) return IshutterEnum;
-	else if (strcmp(name,"Ismacayealpattyn")==0) return IsmacayealpattynEnum;
-	else if (strcmp(name,"Isstokes")==0) return IsstokesEnum;
 	else if (strcmp(name,"Stokesreconditioning")==0) return StokesreconditioningEnum;
 	else if (strcmp(name,"Lowerelements")==0) return LowerelementsEnum;
Index: /issm/trunk/src/c/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 9660)
+++ /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 9661)
@@ -5213,31 +5213,31 @@
 
 	//Need to know the type of approximation for this element
-	if(iomodel->Data(ElementsTypeEnum)){
-		if (*(iomodel->Data(ElementsTypeEnum)+index)==MacAyealApproximationEnum){
+	if(iomodel->Data(FlowequationElementEquationEnum)){
+		if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==MacAyealApproximationEnum){
 			this->inputs->AddInput(new IntInput(ApproximationEnum,MacAyealApproximationEnum));
 		}
-		else if (*(iomodel->Data(ElementsTypeEnum)+index)==PattynApproximationEnum){
+		else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==PattynApproximationEnum){
 			this->inputs->AddInput(new IntInput(ApproximationEnum,PattynApproximationEnum));
 		}
-		else if (*(iomodel->Data(ElementsTypeEnum)+index)==MacAyealPattynApproximationEnum){
+		else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==MacAyealPattynApproximationEnum){
 			this->inputs->AddInput(new IntInput(ApproximationEnum,MacAyealPattynApproximationEnum));
 		}
-		else if (*(iomodel->Data(ElementsTypeEnum)+index)==HutterApproximationEnum){
+		else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==HutterApproximationEnum){
 			this->inputs->AddInput(new IntInput(ApproximationEnum,HutterApproximationEnum));
 		}
-		else if (*(iomodel->Data(ElementsTypeEnum)+index)==StokesApproximationEnum){
+		else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==StokesApproximationEnum){
 			this->inputs->AddInput(new IntInput(ApproximationEnum,StokesApproximationEnum));
 		}
-		else if (*(iomodel->Data(ElementsTypeEnum)+index)==MacAyealStokesApproximationEnum){
+		else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==MacAyealStokesApproximationEnum){
 			this->inputs->AddInput(new IntInput(ApproximationEnum,MacAyealStokesApproximationEnum));
 		}
-		else if (*(iomodel->Data(ElementsTypeEnum)+index)==PattynStokesApproximationEnum){
+		else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==PattynStokesApproximationEnum){
 			this->inputs->AddInput(new IntInput(ApproximationEnum,PattynStokesApproximationEnum));
 		}
-		else if (*(iomodel->Data(ElementsTypeEnum)+index)==NoneApproximationEnum){
+		else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==NoneApproximationEnum){
 			this->inputs->AddInput(new IntInput(ApproximationEnum,NoneApproximationEnum));
 		}
 		else{
-			_error_("Approximation type %s not supported yet",EnumToStringx((int)*(iomodel->Data(ElementsTypeEnum)+index)));
+			_error_("Approximation type %s not supported yet",EnumToStringx((int)*(iomodel->Data(FlowequationElementEquationEnum)+index)));
 		}
 	}
@@ -7506,5 +7506,5 @@
 	iomodel->Constant(&stabilization,PrognosticStabilizationEnum);
 	iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
-	iomodel->Constant(&isstokes,IsstokesEnum);
+	iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
 	iomodel->Constant(&beta,MaterialsBetaEnum);
 	iomodel->Constant(&heatcapacity,MaterialsHeatcapacityEnum);
@@ -7583,10 +7583,10 @@
 				}
 			}
-			if(*(iomodel->Data(ElementsTypeEnum)+index)==PattynStokesApproximationEnum){
+			if(*(iomodel->Data(FlowequationElementEquationEnum)+index)==PattynStokesApproximationEnum){
 				/*Create VzPattyn and VzStokes Enums*/
-				if(iomodel->Data(VzEnum) && iomodel->Data(NodeonstokesEnum)){
-					for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->Data(NodeonstokesEnum)[penta_vertex_ids[i]-1];
+				if(iomodel->Data(VzEnum) && iomodel->Data(FlowequationBorderstokesEnum)){
+					for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->Data(FlowequationBorderstokesEnum)[penta_vertex_ids[i]-1];
 					this->inputs->AddInput(new PentaVertexInput(VzStokesEnum,nodeinputs));
-					for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*(1-iomodel->Data(NodeonstokesEnum)[penta_vertex_ids[i]-1]);
+					for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*(1-iomodel->Data(FlowequationBorderstokesEnum)[penta_vertex_ids[i]-1]);
 					this->inputs->AddInput(new PentaVertexInput(VzPattynEnum,nodeinputs));
 				}
@@ -7597,10 +7597,10 @@
 				}
 			}
-			if(*(iomodel->Data(ElementsTypeEnum)+index)==MacAyealStokesApproximationEnum){
+			if(*(iomodel->Data(FlowequationElementEquationEnum)+index)==MacAyealStokesApproximationEnum){
 				/*Create VzMacAyeal and VzStokes Enums*/
-				if(iomodel->Data(VzEnum) && iomodel->Data(NodeonstokesEnum)){
-					for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->Data(NodeonstokesEnum)[penta_vertex_ids[i]-1];
+				if(iomodel->Data(VzEnum) && iomodel->Data(FlowequationBorderstokesEnum)){
+					for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->Data(FlowequationBorderstokesEnum)[penta_vertex_ids[i]-1];
 					this->inputs->AddInput(new PentaVertexInput(VzStokesEnum,nodeinputs));
-					for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*(1-iomodel->Data(NodeonstokesEnum)[penta_vertex_ids[i]-1]);
+					for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*(1-iomodel->Data(FlowequationBorderstokesEnum)[penta_vertex_ids[i]-1]);
 					this->inputs->AddInput(new PentaVertexInput(VzMacAyealEnum,nodeinputs));
 				}
Index: /issm/trunk/src/c/objects/Node.cpp
===================================================================
--- /issm/trunk/src/c/objects/Node.cpp	(revision 9660)
+++ /issm/trunk/src/c/objects/Node.cpp	(revision 9661)
@@ -46,5 +46,5 @@
 
 	/*indexing:*/
-	DistributeNumDofs(&this->indexing,analysis_type,iomodel->Data(VerticesTypeEnum)+io_index); //number of dofs per node
+	DistributeNumDofs(&this->indexing,analysis_type,iomodel->Data(FlowequationVertexEquationEnum)+io_index); //number of dofs per node
 	gsize=this->indexing.gsize;
 
@@ -59,5 +59,5 @@
 	if (iomodel->Data(MaskVertexongroundediceEnum)) this->inputs->AddInput(new BoolInput(MaskVertexongroundediceEnum,(IssmBool)iomodel->Data(MaskVertexongroundediceEnum)[io_index]));
 	if (iomodel->numbernodetoelementconnectivity) this->inputs->AddInput(new IntInput(NumberNodeToElementConnectivityEnum,(IssmInt)iomodel->numbernodetoelementconnectivity[io_index]));
-	if (analysis_type==DiagnosticHorizAnalysisEnum) this->inputs->AddInput(new IntInput(ApproximationEnum,(IssmInt)iomodel->Data(VerticesTypeEnum)[io_index]));
+	if (analysis_type==DiagnosticHorizAnalysisEnum) this->inputs->AddInput(new IntInput(ApproximationEnum,(IssmInt)iomodel->Data(FlowequationVertexEquationEnum)[io_index]));
 	
 	/*set single point constraints: */
@@ -76,14 +76,14 @@
 			/*We have a  3d mesh, we may have collapsed elements, hence dead nodes. Freeze them out: */
 			if (!iomodel->Data(NodeonbedEnum)) _error_("iomodel->nodeonbed is NULL");
-			if (!iomodel->Data(VerticesTypeEnum)) _error_("iomodel->vertices_type is NULL");
-			if (iomodel->Data(VerticesTypeEnum)[io_index]==MacAyealApproximationEnum && !iomodel->Data(NodeonbedEnum)[io_index]){
+			if (!iomodel->Data(FlowequationVertexEquationEnum)) _error_("iomodel->vertices_type is NULL");
+			if (iomodel->Data(FlowequationVertexEquationEnum)[io_index]==MacAyealApproximationEnum && !iomodel->Data(NodeonbedEnum)[io_index]){
 				for(k=1;k<=gsize;k++) this->FreezeDof(k);
 			}
-			if (iomodel->Data(VerticesTypeEnum)[io_index]==MacAyealPattynApproximationEnum && iomodel->Data(NodeonmacayealEnum)[io_index]){
+			if (iomodel->Data(FlowequationVertexEquationEnum)[io_index]==MacAyealPattynApproximationEnum && iomodel->Data(FlowequationBordermacayealEnum)[io_index]){
 				if(!iomodel->Data(NodeonbedEnum)[io_index]){
 					for(k=1;k<=gsize;k++) this->FreezeDof(k);
 				}
 			}
-			if (iomodel->Data(VerticesTypeEnum)[io_index]==MacAyealStokesApproximationEnum && iomodel->Data(NodeonmacayealEnum)[io_index]){
+			if (iomodel->Data(FlowequationVertexEquationEnum)[io_index]==MacAyealStokesApproximationEnum && iomodel->Data(FlowequationBordermacayealEnum)[io_index]){
 				if(!iomodel->Data(NodeonbedEnum)[io_index]){
 					for(k=1;k<=2;k++) this->FreezeDof(k);
@@ -92,5 +92,5 @@
 		}
 		/*spc all nodes on hutter*/
-		if (iomodel->Data(VerticesTypeEnum)[io_index]==HutterApproximationEnum){
+		if (iomodel->Data(FlowequationVertexEquationEnum)[io_index]==HutterApproximationEnum){
 			for(k=1;k<=gsize;k++){
 				this->FreezeDof(k);
@@ -102,7 +102,7 @@
 	/*Diagnostic Hutter*/
 	if (analysis_type==DiagnosticHutterAnalysisEnum){
-		if (!iomodel->Data(VerticesTypeEnum)) _error_("iomodel->vertices_type is NULL");
+		if (!iomodel->Data(FlowequationVertexEquationEnum)) _error_("iomodel->vertices_type is NULL");
 		/*Constrain all nodes that are not Hutter*/
-		if (!iomodel->Data(VerticesTypeEnum)[io_index]==HutterApproximationEnum){
+		if (!iomodel->Data(FlowequationVertexEquationEnum)[io_index]==HutterApproximationEnum){
 			for(k=1;k<=gsize;k++){
 				this->FreezeDof(k);
Index: /issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp	(revision 9660)
+++ /issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp	(revision 9661)
@@ -21,5 +21,5 @@
 
 	/*retrieve parameters:*/
-	femmodel->parameters->FindParam(&isstokes,IsstokesEnum);
+	femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
Index: /issm/trunk/src/c/solutions/control_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/control_core.cpp	(revision 9660)
+++ /issm/trunk/src/c/solutions/control_core.cpp	(revision 9661)
@@ -56,5 +56,5 @@
 	femmodel->parameters->FindParam(&dim,DimEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
-	femmodel->parameters->FindParam(&isstokes,IsstokesEnum);
+	femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum);
 	femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
 
Index: /issm/trunk/src/c/solutions/diagnostic_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/diagnostic_core.cpp	(revision 9660)
+++ /issm/trunk/src/c/solutions/diagnostic_core.cpp	(revision 9661)
@@ -27,7 +27,7 @@
 	/* recover parameters:*/
 	femmodel->parameters->FindParam(&dim,DimEnum);
-	femmodel->parameters->FindParam(&ishutter,IshutterEnum);
-	femmodel->parameters->FindParam(&ismacayealpattyn,IsmacayealpattynEnum);
-	femmodel->parameters->FindParam(&isstokes,IsstokesEnum);
+	femmodel->parameters->FindParam(&ishutter,FlowequationIshutterEnum);
+	femmodel->parameters->FindParam(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
+	femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum);
 	femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
Index: /issm/trunk/src/c/solutions/objectivefunctionC.cpp
===================================================================
--- /issm/trunk/src/c/solutions/objectivefunctionC.cpp	(revision 9660)
+++ /issm/trunk/src/c/solutions/objectivefunctionC.cpp	(revision 9661)
@@ -37,5 +37,5 @@
 
 	/*Recover parameters: */
-	femmodel->parameters->FindParam(&isstokes,IsstokesEnum);
+	femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum);
 	femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
Index: /issm/trunk/src/m/classes/flowequation.m
===================================================================
--- /issm/trunk/src/m/classes/flowequation.m	(revision 9661)
+++ /issm/trunk/src/m/classes/flowequation.m	(revision 9661)
@@ -0,0 +1,44 @@
+%FLOWEQUATION class definition
+%
+%   Usage:
+%      flowequation=flowequation();
+
+classdef flowequation
+	properties (SetAccess=public) 
+		ismacayealpattyn     = modelfield('default',0,'marshall',true,'format','Boolean');
+		ishutter             = modelfield('default',0,'marshall',true,'format','Boolean');
+		isstokes             = modelfield('default',0,'marshall',true,'format','Boolean');
+		vertex_equation      = modelfield('default',NaN,'marshall',true,'preprocess','marshallapproximations','format','DoubleMat','mattype',1);
+		element_equation     = modelfield('default',NaN,'marshall',true,'preprocess','marshallapproximations','format','DoubleMat','mattype',2);
+		bordermacayeal       = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
+		borderpattyn         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
+		borderstokes         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
+	end
+	methods
+		function obj = flowequation(varargin) % {{{
+			switch nargin
+				case 0
+					obj=setdefaultparameters(obj);
+				case 1
+					in=varargin{1};
+					if (isa(in,'numeric') & in==0),
+						% requesting templates do nothing
+					else
+						error('constructor not supported');
+					end 
+				otherwise
+					error('constructor not supported');
+			end
+		end % }}}
+		function obj = setdefaultparameters(obj) % {{{
+
+			%first, use the defaults provided by the properties definition above. 
+			fieldnames=fields(obj);
+			for i=1:length(fieldnames),
+				fieldname=fieldnames{i};
+				obj.(fieldname)=obj.(fieldname).default;
+			end
+
+		end % }}}
+	end
+end
Index: /issm/trunk/src/m/classes/model/model.m
===================================================================
--- /issm/trunk/src/m/classes/model/model.m	(revision 9660)
+++ /issm/trunk/src/m/classes/model/model.m	(revision 9661)
@@ -32,4 +32,5 @@
 		 qmu = modelfield('default',0,'marshall',true);
 		 balancethickness = modelfield('default',0,'marshall',true);
+		 flowequation = modelfield('default',0,'marshall',true);
 
 		 %FIXME: all other fields should belong to other classes
@@ -40,6 +41,4 @@
 		 numberofnodes       = modelfield('default',0,'marshall',true,'format','Integer');
 		 elements            = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',2);
-		 elements_type       = modelfield('default',NaN,'marshall',true,'preprocess','marshallapproximations','format','DoubleMat','mattype',2);
-		 vertices_type       = modelfield('default',NaN,'marshall',true,'preprocess','marshallapproximations','format','DoubleMat','mattype',1);
 		 x                   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
 		 y                   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
@@ -60,14 +59,4 @@
 		 long       = modelfield('default',NaN,'marshall',false);
 		 hemisphere = modelfield('default',NaN,'marshall',false);
-
-		 %Elements type
-		 ishutter             = modelfield('default',0,'marshall',true,'format','Boolean');
-		 ismacayealpattyn     = modelfield('default',0,'marshall',true,'format','Boolean');
-		 isstokes             = modelfield('default',0,'marshall',true,'format','Boolean');
-
-		 %Nodes
-		 nodeonmacayeal       = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
-		 nodeonpattyn         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
-		 nodeonstokes         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
 
 		 %Stokes
@@ -384,4 +373,9 @@
 			 if isfield(structmd,'artificial_diffusivity'), md.balancethickness.stabilization=structmd.artificial_diffusivity; end
 			 if isfield(structmd,'dhdt'), md.balancethickness.thickening_rate=structmd.dhdt; end
+			 if isfield(structmd,'ismacayealpattyn'), md.flowequation.ismacayealpattyn=structmd.ismacayealpattyn; end
+			 if isfield(structmd,'ishutter'), md.flowequation.ishutter=structmd.ishutter; end
+			 if isfield(structmd,'isstokes'), md.flowequation.isstokes=structmd.isstokes; end
+			 if isfield(structmd,'elements_type'), md.flowequation.element_equation=structmd.elements_type; end
+			 if isfield(structmd,'vertices_type'), md.flowequation.vertex_equation=structmd.vertices_type; end
 
 			 %Field changes
@@ -507,4 +501,5 @@
 			 md.qmu=qmu;
 			 md.balancethickness=balancethickness;
+			 md.flowequation=flowequation;
 
 			 %Solver parameters
Index: sm/trunk/src/m/enum/ElementsTypeEnum.m
===================================================================
--- /issm/trunk/src/m/enum/ElementsTypeEnum.m	(revision 9660)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=ElementsTypeEnum()
-%ELEMENTSTYPEENUM - Enum of ElementsType
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=ElementsTypeEnum()
-
-macro=StringToEnum('ElementsType');
Index: /issm/trunk/src/m/enum/FlowequationBordermacayealEnum.m
===================================================================
--- /issm/trunk/src/m/enum/FlowequationBordermacayealEnum.m	(revision 9661)
+++ /issm/trunk/src/m/enum/FlowequationBordermacayealEnum.m	(revision 9661)
@@ -0,0 +1,11 @@
+function macro=FlowequationBordermacayealEnum()
+%FLOWEQUATIONBORDERMACAYEALENUM - Enum of FlowequationBordermacayeal
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=FlowequationBordermacayealEnum()
+
+macro=StringToEnum('FlowequationBordermacayeal');
Index: /issm/trunk/src/m/enum/FlowequationBorderpattynEnum.m
===================================================================
--- /issm/trunk/src/m/enum/FlowequationBorderpattynEnum.m	(revision 9661)
+++ /issm/trunk/src/m/enum/FlowequationBorderpattynEnum.m	(revision 9661)
@@ -0,0 +1,11 @@
+function macro=FlowequationBorderpattynEnum()
+%FLOWEQUATIONBORDERPATTYNENUM - Enum of FlowequationBorderpattyn
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=FlowequationBorderpattynEnum()
+
+macro=StringToEnum('FlowequationBorderpattyn');
Index: /issm/trunk/src/m/enum/FlowequationBorderstokesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/FlowequationBorderstokesEnum.m	(revision 9661)
+++ /issm/trunk/src/m/enum/FlowequationBorderstokesEnum.m	(revision 9661)
@@ -0,0 +1,11 @@
+function macro=FlowequationBorderstokesEnum()
+%FLOWEQUATIONBORDERSTOKESENUM - Enum of FlowequationBorderstokes
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=FlowequationBorderstokesEnum()
+
+macro=StringToEnum('FlowequationBorderstokes');
Index: /issm/trunk/src/m/enum/FlowequationElementEquationEnum.m
===================================================================
--- /issm/trunk/src/m/enum/FlowequationElementEquationEnum.m	(revision 9661)
+++ /issm/trunk/src/m/enum/FlowequationElementEquationEnum.m	(revision 9661)
@@ -0,0 +1,11 @@
+function macro=FlowequationElementEquationEnum()
+%FLOWEQUATIONELEMENTEQUATIONENUM - Enum of FlowequationElementEquation
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=FlowequationElementEquationEnum()
+
+macro=StringToEnum('FlowequationElementEquation');
Index: /issm/trunk/src/m/enum/FlowequationIshutterEnum.m
===================================================================
--- /issm/trunk/src/m/enum/FlowequationIshutterEnum.m	(revision 9661)
+++ /issm/trunk/src/m/enum/FlowequationIshutterEnum.m	(revision 9661)
@@ -0,0 +1,11 @@
+function macro=FlowequationIshutterEnum()
+%FLOWEQUATIONISHUTTERENUM - Enum of FlowequationIshutter
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=FlowequationIshutterEnum()
+
+macro=StringToEnum('FlowequationIshutter');
Index: /issm/trunk/src/m/enum/FlowequationIsmacayealpattynEnum.m
===================================================================
--- /issm/trunk/src/m/enum/FlowequationIsmacayealpattynEnum.m	(revision 9661)
+++ /issm/trunk/src/m/enum/FlowequationIsmacayealpattynEnum.m	(revision 9661)
@@ -0,0 +1,11 @@
+function macro=FlowequationIsmacayealpattynEnum()
+%FLOWEQUATIONISMACAYEALPATTYNENUM - Enum of FlowequationIsmacayealpattyn
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=FlowequationIsmacayealpattynEnum()
+
+macro=StringToEnum('FlowequationIsmacayealpattyn');
Index: /issm/trunk/src/m/enum/FlowequationIsstokesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/FlowequationIsstokesEnum.m	(revision 9661)
+++ /issm/trunk/src/m/enum/FlowequationIsstokesEnum.m	(revision 9661)
@@ -0,0 +1,11 @@
+function macro=FlowequationIsstokesEnum()
+%FLOWEQUATIONISSTOKESENUM - Enum of FlowequationIsstokes
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=FlowequationIsstokesEnum()
+
+macro=StringToEnum('FlowequationIsstokes');
Index: /issm/trunk/src/m/enum/FlowequationVertexEquationEnum.m
===================================================================
--- /issm/trunk/src/m/enum/FlowequationVertexEquationEnum.m	(revision 9661)
+++ /issm/trunk/src/m/enum/FlowequationVertexEquationEnum.m	(revision 9661)
@@ -0,0 +1,11 @@
+function macro=FlowequationVertexEquationEnum()
+%FLOWEQUATIONVERTEXEQUATIONENUM - Enum of FlowequationVertexEquation
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=FlowequationVertexEquationEnum()
+
+macro=StringToEnum('FlowequationVertexEquation');
Index: sm/trunk/src/m/enum/IshutterEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IshutterEnum.m	(revision 9660)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=IshutterEnum()
-%ISHUTTERENUM - Enum of Ishutter
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=IshutterEnum()
-
-macro=StringToEnum('Ishutter');
Index: sm/trunk/src/m/enum/IsmacayealpattynEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsmacayealpattynEnum.m	(revision 9660)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=IsmacayealpattynEnum()
-%ISMACAYEALPATTYNENUM - Enum of Ismacayealpattyn
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=IsmacayealpattynEnum()
-
-macro=StringToEnum('Ismacayealpattyn');
Index: sm/trunk/src/m/enum/IsstokesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IsstokesEnum.m	(revision 9660)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=IsstokesEnum()
-%ISSTOKESENUM - Enum of Isstokes
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=IsstokesEnum()
-
-macro=StringToEnum('Isstokes');
Index: sm/trunk/src/m/enum/NodeonhutterEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NodeonhutterEnum.m	(revision 9660)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NodeonhutterEnum()
-%NODEONHUTTERENUM - Enum of Nodeonhutter
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=NodeonhutterEnum()
-
-macro=StringToEnum('Nodeonhutter');
Index: sm/trunk/src/m/enum/NodeonmacayealEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NodeonmacayealEnum.m	(revision 9660)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NodeonmacayealEnum()
-%NODEONMACAYEALENUM - Enum of Nodeonmacayeal
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=NodeonmacayealEnum()
-
-macro=StringToEnum('Nodeonmacayeal');
Index: sm/trunk/src/m/enum/NodeonpattynEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NodeonpattynEnum.m	(revision 9660)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NodeonpattynEnum()
-%NODEONPATTYNENUM - Enum of Nodeonpattyn
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=NodeonpattynEnum()
-
-macro=StringToEnum('Nodeonpattyn');
Index: sm/trunk/src/m/enum/NodeonstokesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NodeonstokesEnum.m	(revision 9660)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NodeonstokesEnum()
-%NODEONSTOKESENUM - Enum of Nodeonstokes
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=NodeonstokesEnum()
-
-macro=StringToEnum('Nodeonstokes');
Index: sm/trunk/src/m/enum/VerticesTypeEnum.m
===================================================================
--- /issm/trunk/src/m/enum/VerticesTypeEnum.m	(revision 9660)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=VerticesTypeEnum()
-%VERTICESTYPEENUM - Enum of VerticesType
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=VerticesTypeEnum()
-
-macro=StringToEnum('VerticesType');
Index: /issm/trunk/src/m/model/collapse.m
===================================================================
--- /issm/trunk/src/m/model/collapse.m	(revision 9660)
+++ /issm/trunk/src/m/model/collapse.m	(revision 9661)
@@ -47,6 +47,6 @@
 
 %elementstype
-if ~isnan(md.elements_type)
-	md.elements_type=project2d(md,md.elements_type,1);
+if ~isnan(md.flowequation.element_equation)
+	md.flowequation.element_equation=project2d(md,md.flowequation.element_equation,1);
 end	
 
Index: /issm/trunk/src/m/model/extrude.m
===================================================================
--- /issm/trunk/src/m/model/extrude.m	(revision 9660)
+++ /issm/trunk/src/m/model/extrude.m	(revision 9661)
@@ -154,15 +154,15 @@
 
 %elementstype
-if ~isnan(md.elements_type)
-	oldelements_type=md.elements_type;
-	md.elements_type=zeros(number_el3d,1);
-	md.elements_type=project3d(md,'vector',oldelements_type,'type','element');
+if ~isnan(md.flowequation.element_equation)
+	oldelements_type=md.flowequation.element_equation;
+	md.flowequation.element_equation=zeros(number_el3d,1);
+	md.flowequation.element_equation=project3d(md,'vector',oldelements_type,'type','element');
 end
 
 %verticestype
-if ~isnan(md.vertices_type)
-	oldvertices_type=md.vertices_type;
-	md.vertices_type=zeros(number_nodes3d,1);
-	md.vertices_type=project3d(md,'vector',oldvertices_type,'type','node');
+if ~isnan(md.flowequation.vertex_equation)
+	oldvertices_type=md.flowequation.vertex_equation;
+	md.flowequation.vertex_equation=zeros(number_nodes3d,1);
+	md.flowequation.vertex_equation=project3d(md,'vector',oldvertices_type,'type','node');
 end
 
Index: /issm/trunk/src/m/model/ismodelselfconsistent.m
===================================================================
--- /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 9660)
+++ /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 9661)
@@ -209,6 +209,6 @@
 		message(['model not consistent: model ' md.miscellaneous.name ' control_type field should be a cell of strings']);
 	end
-	if ~ismember(md.control_type,{'Dhdt' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'Vx' 'Vy'});
-		message(['model not consistent: model ' md.miscellaneous.name ' control_type field should be ''Dhdt'' ''FrictionCoefficient'' ''MaterialsRheologyBbar'' ''Vx'' ''Vy''']);
+	if ~ismember(md.control_type,{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'Vx' 'Vy'});
+		message(['model not consistent: model ' md.miscellaneous.name ' control_type field should be ''BalancethicknessThickeningRate'' ''FrictionCoefficient'' ''MaterialsRheologyBbar'' ''Vx'' ''Vy''']);
 	end
 
@@ -387,5 +387,5 @@
 			%CHECK THAT ROTATION IS IN THE (X,Y) PLANE FOR 2D MODELS
 			if md.dim==2,
-				pos=find(sum(isnan(md.diagnostic_ref),2)==0  & md.vertices_type==2);
+				pos=find(sum(isnan(md.diagnostic_ref),2)==0  & md.flowequation.vertex_equation==2);
 				if any(md.diagnostic_ref(pos,3:5)~=0);
 					message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. The rotation should be in the (x,y) plane for 2D diagnostic models (nodeonmacayeal)']);
@@ -401,13 +401,13 @@
 
 			%ELEMENTSTYPE
-			%Check the size of elements_type
-			fields={'elements_type'};
+			%Check the size of flowequation.element_equation
+			fields={'flowequation.element_equation'};
 			checksize(md,fields,[md.numberofelements 1]);
-			%Check the values of elements_type
-			checkvalues(md,{'elements_type'},[0:7]);
+			%Check the values of flowequation.element_equation
+			checkvalues(md,{'flowequation.element_equation'},[0:7]);
 			if (md.dim==2),
-				checkvalues(md,{'elements_type'},[1 2]);
-			end
-			if (md.ismacayealpattyn==0 && md.ishutter==0 && md.isstokes==0),
+				checkvalues(md,{'flowequation.element_equation'},[1 2]);
+			end
+			if (md.flowequation.ismacayealpattyn==0 && md.flowequation.ishutter==0 && md.flowequation.isstokes==0),
 				message(['model not consistent: no elements type set for this model. at least one of ismacayealpattyn, ishutter and isstokes need to be =1']);
 			end
@@ -415,12 +415,12 @@
 			%VERTICESTYPE
 			%Check the size of verticess_type
-			fields={'vertices_type'};
+			fields={'flowequation.vertex_equation'};
 			checksize(md,fields,[md.numberofnodes 1]);
-			%Check the values of vertices_type
-			checkvalues(md,{'vertices_type'},[0:7]);
+			%Check the values of flowequation.vertex_equation
+			checkvalues(md,{'flowequation.vertex_equation'},[0:7]);
 			if (md.dim==2),
-				checkvalues(md,{'vertices_type'},[1 2]);
-			end
-			if (md.ismacayealpattyn==0 && md.ishutter==0 && md.isstokes==0),
+				checkvalues(md,{'flowequation.vertex_equation'},[1 2]);
+			end
+			if (md.flowequation.ismacayealpattyn==0 && md.flowequation.ishutter==0 && md.flowequation.isstokes==0),
 				message(['model not consistent: no elements type set for this model. at least one of ismacayealpattyn, ishutter and isstokes need to be =1']);
 			end
@@ -435,5 +435,5 @@
 			% {{{2
 			%HUTTER ON ICESHELF WARNING
-			if any(md.elements_type==1 & md.mask.elementonfloatingice),
+			if any(md.flowequation.element_equation==1 & md.mask.elementonfloatingice),
 				disp(sprintf('\n !!! Warning: Hutter''s model is not consistent on ice shelves !!!\n'));
 			end
Index: /issm/trunk/src/m/model/mechanicalproperties.m
===================================================================
--- /issm/trunk/src/m/model/mechanicalproperties.m	(revision 9660)
+++ /issm/trunk/src/m/model/mechanicalproperties.m	(revision 9661)
@@ -20,5 +20,5 @@
 	error('only 2d model supported yet');
 end
-if any(md.elements_type~=2),
+if any(md.flowequation.element_equation~=2),
 	disp('Warning: the model has some non macayeal elements. These will be treated like MacAyeal''s elements');
 end
Index: /issm/trunk/src/m/model/mesh/rifts/meshprocessoutsiderifts.m
===================================================================
--- /issm/trunk/src/m/model/mesh/rifts/meshprocessoutsiderifts.m	(revision 9660)
+++ /issm/trunk/src/m/model/mesh/rifts/meshprocessoutsiderifts.m	(revision 9661)
@@ -88,5 +88,5 @@
 md.nodeonboundary=zeros(length(md.x),1); md.nodeonboundary(md.segments(:,1:2))=1;
 md.rifts.numrifts=length(md.rifts.riftstruct);
-md.elements_type=3*ones(md.numberofelements,1);
+md.flowequation.element_equation=3*ones(md.numberofelements,1);
 md.nodeonbed=ones(md.numberofnodes,1);
 md.nodeonsurface=ones(md.numberofnodes,1);
Index: /issm/trunk/src/m/model/mesh/rifts/meshprocessrifts.m
===================================================================
--- /issm/trunk/src/m/model/mesh/rifts/meshprocessrifts.m	(revision 9660)
+++ /issm/trunk/src/m/model/mesh/rifts/meshprocessrifts.m	(revision 9661)
@@ -36,5 +36,5 @@
 md.nodeonboundary=zeros(length(md.x),1); md.nodeonboundary(md.segments(:,1:2))=1;
 md.rifts.numrifts=length(md.rifts.riftstruct);
-md.elements_type=3*ones(md.numberofelements,1);
+md.flowequation.element_equation=3*ones(md.numberofelements,1);
 md.nodeonbed=ones(md.numberofnodes,1);
 md.nodeonsurface=ones(md.numberofnodes,1);
Index: /issm/trunk/src/m/model/plot/plot_elementstype.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_elementstype.m	(revision 9660)
+++ /issm/trunk/src/m/model/plot/plot_elementstype.m	(revision 9661)
@@ -9,5 +9,5 @@
 %process data and model
 [x y z elements is2d isplanet]=processmesh(md,[],options);
-[data datatype]=processdata(md,md.elements_type,options);
+[data datatype]=processdata(md,md.flowequation.element_equation,options);
 
 %edgecolor?
Index: /issm/trunk/src/m/model/setelementstype.m
===================================================================
--- /issm/trunk/src/m/model/setelementstype.m	(revision 9660)
+++ /issm/trunk/src/m/model/setelementstype.m	(revision 9661)
@@ -68,22 +68,22 @@
 
 %add in model who is who
-md.elements_type=zeros(md.numberofelements,1);
+md.flowequation.element_equation=zeros(md.numberofelements,1);
 
 %1: Hutter elements
 nodeonhutter=zeros(md.numberofnodes,1);
 nodeonhutter(md.elements(find(hutterflag),:))=1;
-md.elements_type(find(hutterflag))=1;
+md.flowequation.element_equation(find(hutterflag))=1;
 
 %2: MacAyeal elements
 nodeonmacayeal=zeros(md.numberofnodes,1);
 nodeonmacayeal(md.elements(find(macayealflag),:))=1;
-md.nodeonmacayeal=nodeonmacayeal;
-md.elements_type(find(macayealflag))=2;
+md.flowequation.bordermacayeal=nodeonmacayeal;
+md.flowequation.element_equation(find(macayealflag))=2;
 
 %3: Pattyn elements
 nodeonpattyn=zeros(md.numberofnodes,1);
 nodeonpattyn(md.elements(find(pattynflag),:))=1;
-md.nodeonpattyn=nodeonpattyn;
-md.elements_type(find(pattynflag))=3;
+md.flowequation.borderpattyn=nodeonpattyn;
+md.flowequation.element_equation(find(pattynflag))=3;
 
 %4: Stokes elements
@@ -98,6 +98,6 @@
 nodeonstokes=zeros(md.numberofnodes,1);
 nodeonstokes(md.elements(find(stokesflag),:))=1;
-md.nodeonstokes=nodeonstokes;
-md.elements_type(find(stokesflag))=4;
+md.flowequation.borderstokes=nodeonstokes;
+md.flowequation.element_equation(find(stokesflag))=4;
 
 %Then complete with NoneApproximation or the other model used if there is no stokes
@@ -106,14 +106,14 @@
 		pattynflag(~stokesflag)=1;
 		nodeonpattyn(md.elements(find(pattynflag),:))=1;
-		md.nodeonpattyn=nodeonpattyn;
-		md.elements_type(find(~stokesflag))=3;
+		md.flowequation.borderpattyn=nodeonpattyn;
+		md.flowequation.element_equation(find(~stokesflag))=3;
 	elseif any(macayealflag), %fill with macayeal
 		macayealflag(~stokesflag)=1;
 		nodeonmacayeal(md.elements(find(macayealflag),:))=1;
-		md.nodeonmacayeal=nodeonmacayeal;
-		md.elements_type(find(~stokesflag))=2;
+		md.flowequation.bordermacayeal=nodeonmacayeal;
+		md.flowequation.element_equation(find(~stokesflag))=2;
 	else %fill with none 
 	%5: None elements (non Stokes)
-		md.elements_type(find(~stokesflag))=0;
+		md.flowequation.element_equation(find(~stokesflag))=0;
 	end
 end
@@ -151,8 +151,8 @@
 		nodeonmacayeal=zeros(md.numberofnodes,1);
 		nodeonmacayeal(md.elements(find(macayealflag),:))=1;
-		md.nodeonmacayeal=nodeonmacayeal;
+		md.flowequation.bordermacayeal=nodeonmacayeal;
 
 		%Create MacaAyealPattynApproximation where needed
-		md.elements_type(find(macayealpattynflag))=5;
+		md.flowequation.element_equation(find(macayealpattynflag))=5;
 
 		%Now recreate nodeonmacayeal and nodeonmacayealpattyn
@@ -170,8 +170,8 @@
 		nodeonstokes=zeros(md.numberofnodes,1);
 		nodeonstokes(md.elements(find(stokesflag),:))=1;
-		md.nodeonstokes=nodeonstokes;
+		md.flowequation.borderstokes=nodeonstokes;
 
 		%Create MacaAyealPattynApproximation where needed
-		md.elements_type(find(pattynstokesflag))=7;
+		md.flowequation.element_equation(find(pattynstokesflag))=7;
 
 		%Now recreate nodeonpattynstokes
@@ -190,8 +190,8 @@
 		nodeonstokes=zeros(md.numberofnodes,1);
 		nodeonstokes(md.elements(find(stokesflag),:))=1;
-		md.nodeonstokes=nodeonstokes;
+		md.flowequation.borderstokes=nodeonstokes;
 
 		%Create MacaAyeal Approximation where needed
-		md.elements_type(find(macayealstokesflag))=6;
+		md.flowequation.element_equation(find(macayealstokesflag))=6;
 
 		%Now recreate nodeonmacayealstokes
@@ -204,34 +204,34 @@
 
 %Create vertices_type
-md.vertices_type=zeros(md.numberofnodes,1);
+md.flowequation.vertex_equation=zeros(md.numberofnodes,1);
 pos=find(nodeonhutter);
-md.vertices_type(pos)=1;
+md.flowequation.vertex_equation(pos)=1;
 pos=find(nodeonmacayeal);
-md.vertices_type(pos)=2;
+md.flowequation.vertex_equation(pos)=2;
 pos=find(nodeonpattyn);
-md.vertices_type(pos)=3;
+md.flowequation.vertex_equation(pos)=3;
 pos=find(nodeonhutter);
-md.vertices_type(pos)=1;
+md.flowequation.vertex_equation(pos)=1;
 pos=find(nodeonpattyn & nodeonmacayeal);
-md.vertices_type(pos)=3;
+md.flowequation.vertex_equation(pos)=3;
 pos=find(nodeonmacayealpattyn);
-md.vertices_type(pos)=5;
+md.flowequation.vertex_equation(pos)=5;
 pos=find(nodeonstokes);
-md.vertices_type(pos)=4;
+md.flowequation.vertex_equation(pos)=4;
 if any(stokesflag),
 	pos=find(~nodeonstokes);
 	if(~any(pattynflag) & ~any(macayealflag)),
-		md.vertices_type(pos)=0;
+		md.flowequation.vertex_equation(pos)=0;
 	end
 end
 pos=find(nodeonpattynstokes);
-md.vertices_type(pos)=7;
+md.flowequation.vertex_equation(pos)=7;
 pos=find(nodeonmacayealstokes);
-md.vertices_type(pos)=6;
+md.flowequation.vertex_equation(pos)=6;
 
 %figure out solution types
-md.ishutter=double(any(md.elements_type==1));
-md.ismacayealpattyn=double(any(md.elements_type==2 | md.elements_type==3));
-md.isstokes=double(any(md.elements_type==4));
-
-end
+md.flowequation.ishutter=double(any(md.flowequation.element_equation==1));
+md.flowequation.ismacayealpattyn=double(any(md.flowequation.element_equation==2 | md.flowequation.element_equation==3));
+md.flowequation.isstokes=double(any(md.flowequation.element_equation==4));
+
+end
Index: /issm/trunk/src/m/solutions/diagnostic_core.m
===================================================================
--- /issm/trunk/src/m/solutions/diagnostic_core.m	(revision 9660)
+++ /issm/trunk/src/m/solutions/diagnostic_core.m	(revision 9661)
@@ -12,7 +12,7 @@
 	%recover parameters common to all solutions
 	dim=femmodel.parameters.Dim;
-	ishutter=femmodel.parameters.Ishutter;
-	ismacayealpattyn=femmodel.parameters.Ismacayealpattyn;
-	isstokes=femmodel.parameters.Isstokes;
+	ishutter=femmodel.parameters.FlowequationIshutter;
+	ismacayealpattyn=femmodel.parameters.FlowequationIsmacayealpattyn;
+	isstokes=femmodel.parameters.FlowequationIsstokes;
 	dakota_analysis=femmodel.parameters.QmuIsdakota;
 	control_analysis=femmodel.parameters.ControlAnalysis;
