Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 5124)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 5125)
@@ -83,12 +83,12 @@
 	NoneAnalysisEnum,
 	/*}}}*/
-	/*Formulations {{{1*/
-	FormulationEnum,
-	HutterFormulationEnum,
-	MacAyealFormulationEnum,
-	MacAyealPattynFormulationEnum,
-	NoneFormulationEnum,
-	PattynFormulationEnum,
-	StokesFormulationEnum,
+	/*Approximations {{{1*/
+	ApproximationEnum,
+	HutterApproximationEnum,
+	MacAyealApproximationEnum,
+	MacAyealPattynApproximationEnum,
+	NoneApproximationEnum,
+	PattynApproximationEnum,
+	StokesApproximationEnum,
 	/*}}}*/
 	/*Objects {{{1*/
@@ -144,6 +144,4 @@
 	ElementResultEnum,
 	ExternalResultEnum,
-	/*Rgb: */
-	RgbEnum,
 	/*Spc: */
 	SpcEnum,
Index: /issm/trunk/src/c/EnumDefinitions/EnumToString.cpp
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumToString.cpp	(revision 5124)
+++ /issm/trunk/src/c/EnumDefinitions/EnumToString.cpp	(revision 5125)
@@ -74,11 +74,11 @@
 		case SteadystateAnalysisEnum : return "SteadystateAnalysis";
 		case NoneAnalysisEnum : return "NoneAnalysis";
-		case FormulationEnum : return "Formulation";
-		case HutterFormulationEnum : return "HutterFormulation";
-		case MacAyealFormulationEnum : return "MacAyealFormulation";
-		case MacAyealPattynFormulationEnum : return "MacAyealPattynFormulation";
-		case NoneFormulationEnum : return "NoneFormulation";
-		case PattynFormulationEnum : return "PattynFormulation";
-		case StokesFormulationEnum : return "StokesFormulation";
+		case ApproximationEnum : return "Approximation";
+		case HutterApproximationEnum : return "HutterApproximation";
+		case MacAyealApproximationEnum : return "MacAyealApproximation";
+		case MacAyealPattynApproximationEnum : return "MacAyealPattynApproximation";
+		case NoneApproximationEnum : return "NoneApproximation";
+		case PattynApproximationEnum : return "PattynApproximation";
+		case StokesApproximationEnum : return "StokesApproximation";
 		case ObjectEnum : return "Object";
 		case HookEnum : return "Hook";
@@ -125,5 +125,4 @@
 		case ElementResultEnum : return "ElementResult";
 		case ExternalResultEnum : return "ExternalResult";
-		case RgbEnum : return "Rgb";
 		case SpcEnum : return "Spc";
 		case GeographyEnum : return "Geography";
Index: /issm/trunk/src/c/EnumDefinitions/StringToEnum.cpp
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/StringToEnum.cpp	(revision 5124)
+++ /issm/trunk/src/c/EnumDefinitions/StringToEnum.cpp	(revision 5125)
@@ -72,11 +72,11 @@
 	else if (strcmp(name,"SteadystateAnalysis")==0) return SteadystateAnalysisEnum;
 	else if (strcmp(name,"NoneAnalysis")==0) return NoneAnalysisEnum;
-	else if (strcmp(name,"Formulation")==0) return FormulationEnum;
-	else if (strcmp(name,"HutterFormulation")==0) return HutterFormulationEnum;
-	else if (strcmp(name,"MacAyealFormulation")==0) return MacAyealFormulationEnum;
-	else if (strcmp(name,"MacAyealPattynFormulation")==0) return MacAyealPattynFormulationEnum;
-	else if (strcmp(name,"NoneFormulation")==0) return NoneFormulationEnum;
-	else if (strcmp(name,"PattynFormulation")==0) return PattynFormulationEnum;
-	else if (strcmp(name,"StokesFormulation")==0) return StokesFormulationEnum;
+	else if (strcmp(name,"Approximation")==0) return ApproximationEnum;
+	else if (strcmp(name,"HutterApproximation")==0) return HutterApproximationEnum;
+	else if (strcmp(name,"MacAyealApproximation")==0) return MacAyealApproximationEnum;
+	else if (strcmp(name,"MacAyealPattynApproximation")==0) return MacAyealPattynApproximationEnum;
+	else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
+	else if (strcmp(name,"PattynApproximation")==0) return PattynApproximationEnum;
+	else if (strcmp(name,"StokesApproximation")==0) return StokesApproximationEnum;
 	else if (strcmp(name,"Object")==0) return ObjectEnum;
 	else if (strcmp(name,"Hook")==0) return HookEnum;
@@ -123,5 +123,4 @@
 	else if (strcmp(name,"ElementResult")==0) return ElementResultEnum;
 	else if (strcmp(name,"ExternalResult")==0) return ExternalResultEnum;
-	else if (strcmp(name,"Rgb")==0) return RgbEnum;
 	else if (strcmp(name,"Spc")==0) return SpcEnum;
 	else if (strcmp(name,"Geography")==0) return GeographyEnum;
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 5124)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 5125)
@@ -56,5 +56,5 @@
 		
 		/*Do not create ice front if Hutter or Stokes elements*/
-		if ((int)*(iomodel->elements_type+2*element+0)==(HutterFormulationEnum || StokesFormulationEnum)) continue;
+		if ((int)*(iomodel->elements_type+2*element+0)==(HutterApproximationEnum || StokesApproximationEnum)) continue;
 
 		/*Create and  add load: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp	(revision 5124)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp	(revision 5125)
@@ -56,5 +56,5 @@
 	
 		/*Do not create ice front if it is not a Stokes element*/
-		if ((int)*(iomodel->elements_type+2*element+1)!=StokesFormulationEnum){ 
+		if ((int)*(iomodel->elements_type+2*element+1)!=StokesApproximationEnum){ 
 			continue;
 		}
Index: /issm/trunk/src/c/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 5124)
+++ /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 5125)
@@ -1908,8 +1908,18 @@
 	//elements of type 3 are macayeal type penta. we collapse the formulation on their base.
 	if(iomodel->elements_type){
-		if (*(iomodel->elements_type+2*index+0)==MacAyealFormulationEnum) 
-		 this->inputs->AddInput(new BoolInput(CollapseEnum,true));
-		else
-		 this->inputs->AddInput(new BoolInput(CollapseEnum,false));
+		if (*(iomodel->elements_type+2*index+0)==MacAyealApproximationEnum){
+			this->inputs->AddInput(new BoolInput(CollapseEnum,true));
+			this->inputs->AddInput(new IntInput(ApproximationEnum,MacAyealApproximationEnum));
+		}
+		else{
+			this->inputs->AddInput(new BoolInput(CollapseEnum,false));
+			if (*(iomodel->elements_type+2*index+0)==PattynApproximationEnum){
+				this->inputs->AddInput(new IntInput(ApproximationEnum,PattynApproximationEnum));
+			}
+			else if (*(iomodel->elements_type+2*index+0)==MacAyealPattynApproximationEnum){
+				this->inputs->AddInput(new IntInput(ApproximationEnum,MacAyealPattynApproximationEnum));
+			}
+			else ISSMERROR("Approximation type %i (%s) not supported yet",*(iomodel->elements_type+2*index+0),EnumToString(*(iomodel->elements_type+2*index+0)));
+		}
 	}
 
@@ -1917,5 +1927,5 @@
 	if(analysis_type==DiagnosticStokesAnalysisEnum){
 		ISSMASSERT(iomodel->elements_type);
-		if(iomodel->elements_type[2*index+1]==StokesFormulationEnum)
+		if(iomodel->elements_type[2*index+1]==StokesApproximationEnum)
 		 this->inputs->AddInput(new BoolInput(IsStokesEnum,true));
 		else
Index: /issm/trunk/src/c/objects/Loads/Icefront.cpp
===================================================================
--- /issm/trunk/src/c/objects/Loads/Icefront.cpp	(revision 5124)
+++ /issm/trunk/src/c/objects/Loads/Icefront.cpp	(revision 5125)
@@ -60,8 +60,8 @@
 
 	if (in_analysis_type==DiagnosticHorizAnalysisEnum){
-		if ((int)*(iomodel->elements_type+2*element+0)==MacAyealFormulationEnum){ //this is a collapsed 3d element, icefront will be 2d
+		if ((int)*(iomodel->elements_type+2*element+0)==MacAyealApproximationEnum){ //this is a collapsed 3d element, icefront will be 2d
 			icefront_type=SegmentIcefrontEnum;
 		}
-		else if ((int)*(iomodel->elements_type+2*element+0)==PattynFormulationEnum){ //this is a real 3d element, icefront will be 3d.
+		else if ((int)*(iomodel->elements_type+2*element+0)==PattynApproximationEnum){ //this is a real 3d element, icefront will be 3d.
 			icefront_type=QuadIceFrontEnum;
 			icefront_node_ids[2]=iomodel->nodecounter+(int)*(iomodel->pressureload+segment_width*i+2);
