Index: /issm/trunk-jpl/src/m/classes/flowequation.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/flowequation.m	(revision 15923)
+++ /issm/trunk-jpl/src/m/classes/flowequation.m	(revision 15924)
@@ -11,7 +11,7 @@
 		isHO             = 0;
 		isFS             = 0;
-		fe_SSA           = 0;
-		fe_HO            = 0;
-		fe_FS            = 0;
+		fe_SSA           = '';
+		fe_HO            = '';
+		fe_FS            = '';
 		vertex_equation  = NaN;
 		element_equation = NaN;
@@ -45,13 +45,11 @@
 
 				%2013 July 23rd
-				if isfield(objstruct,'isSIA'),          obj.isSIA     = objstruct.isSIA;         end;
-				if isfield(objstruct,'isSSA'),          obj.isSSA     = objstruct.isSSA;         end;
-				if isfield(objstruct,'isL1L2'),         obj.isL1L2    = objstruct.isL1L2;        end;
-				if isfield(objstruct,'isHO'),           obj.isHO      = objstruct.isHO;          end;
-				if isfield(objstruct,'isFS'),           obj.isFS      = objstruct.isFS;          end;
-				if isfield(objstruct,'fe_FS'),      obj.fe_FS     = objstruct.fe_FS;     end;
-				if isfield(objstruct,'borderSSA'), obj.borderSSA = objstruct.borderSSA;end;
-				if isfield(objstruct,'borderHO'),   obj.borderHO  = objstruct.borderHO;  end;
-				if isfield(objstruct,'borderFS'),   obj.borderFS  = objstruct.borderFS;  end;
+				if isfield(objstruct,'ishutter'),      obj.isSIA     = objstruct.ishutter;       end; 
+				if isfield(objstruct,'ismacayeal'),    obj.isSSA     = objstruct.ismacayeal;     end; 
+				if isfield(objstruct,'ispattyn'),      obj.isHO      = objstruct.ispattyn;       end; 
+				if isfield(objstruct,'isstokes'),      obj.isFS      = objstruct.isstokes;       end; 
+				if isfield(objstruct,'bordermacayeal'),obj.borderSSA = objstruct.bordermacayeal; end; 
+				if isfield(objstruct,'borderpattyn'),  obj.borderHO  = objstruct.borderpattyn;   end; 
+				if isfield(objstruct,'borderstokes'),  obj.borderFS  = objstruct.borderstokes;   end; 
 			end
 
@@ -69,6 +67,12 @@
 		function obj = setdefaultparameters(obj) % {{{
 
+			%P1 for SSA
+			obj.fe_SSA= 'P1';
+
+			%P1 for HO
+			obj.fe_HO= 'P1';
+
 			%MINI condensed element for FS by default
-			obj.fe_FS = 2;
+			obj.fe_FS = 'MINIcondensed';
 		end % }}}
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
@@ -81,7 +85,7 @@
 				md = checkfield(md,'flowequation.isHO','numel',[1],'values',[0 1]);
 				md = checkfield(md,'flowequation.isFS','numel',[1],'values',[0 1]);
-				md = checkfield(md,'flowequation.fe_SSA','numel',[1],'values',[0:3]);
-				md = checkfield(md,'flowequation.fe_HO','numel',[1],'values',[0:5]);
-				md = checkfield(md,'flowequation.fe_FS','numel',[1],'values',[0:4]);
+				md = checkfield(md,'flowequation.fe_SSA','values',{'P1','P1bubble','P1bubblecondensed','P2'});
+				md = checkfield(md,'flowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2'});
+				md = checkfield(md,'flowequation.fe_FS' ,'values',{'P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood'});
 				md = checkfield(md,'flowequation.borderSSA','size',[md.mesh.numberofvertices 1],'values',[0 1]);
 				md = checkfield(md,'flowequation.borderHO','size',[md.mesh.numberofvertices 1],'values',[0 1]);
@@ -115,7 +119,7 @@
 			fielddisplay(obj,'isHO','is the Higher-Order (HO) approximation used ?');
 			fielddisplay(obj,'isFS','are the Full-FS (FS) equations used ?');
-			fielddisplay(obj,'fe_SSA','Finite Element for SSA  0: Lagrange P1 (linear), 1: Lagrange P2 (quadratic), 2: P1+ condensed, 3: P1+');
-			fielddisplay(obj,'fe_HO', 'Finite Element for HO   0: P1xP1, 1: P1xP2, 2: P2xP1, 3: P2xP2, 4: P1+ condensed, 5: P1+');
-			fielddisplay(obj,'fe_FS', 'Finite Element for FS   0: P1P1 (debugging), 1: P1P1GSL (under dev), 2: MINI condensed, 3: MINI, 4: P2P1 (Taylor-Hood)');
+			fielddisplay(obj,'fe_SSA','Finite Element for SSA  ''P1'', ''P1bubble'' ''P1bubblecondensed'' ''P2''');
+			fielddisplay(obj,'fe_HO', 'Finite Element for HO   ''P1'' ''P1bubble'' ''P1bubblecondensed'' ''P1xP2'' ''P2xP1'' ''P2''');
+			fielddisplay(obj,'fe_FS', 'Finite Element for FS   ''P1P1'' (debugging only) ''P1P1GLS'' ''MINIcondensed'' ''MINI'' ''TaylorHood''');
 			fielddisplay(obj,'vertex_equation','flow equation for each vertex');
 			fielddisplay(obj,'element_equation','flow equation for each element');
@@ -131,7 +135,7 @@
 			WriteData(fid,'object',obj,'fieldname','isHO','format','Boolean');
 			WriteData(fid,'object',obj,'fieldname','isFS','format','Boolean');
-			WriteData(fid,'object',obj,'fieldname','fe_SSA','format','Integer');
-			WriteData(fid,'object',obj,'fieldname','fe_HO','format','Integer');
-			WriteData(fid,'object',obj,'fieldname','fe_FS','format','Integer');
+			WriteData(fid,'enum',FlowequationFeSSAEnum(),'data',StringToEnum(obj.fe_SSA),'format','Integer');
+			WriteData(fid,'enum',FlowequationFeHOEnum() ,'data',StringToEnum(obj.fe_HO) ,'format','Integer');
+			WriteData(fid,'enum',FlowequationFeFSEnum() ,'data',StringToEnum(obj.fe_FS) ,'format','Integer');
 			WriteData(fid,'object',obj,'fieldname','borderSSA','format','DoubleMat','mattype',1);
 			WriteData(fid,'object',obj,'fieldname','borderHO','format','DoubleMat','mattype',1);
Index: /issm/trunk-jpl/src/m/classes/flowequation.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/flowequation.py	(revision 15923)
+++ /issm/trunk-jpl/src/m/classes/flowequation.py	(revision 15924)
@@ -21,7 +21,7 @@
 		self.isHO             = 0
 		self.isFS             = 0
-		self.fe_SSA           = 0
-		self.fe_HO            = 0
-		self.fe_FS            = 0
+		self.fe_SSA           = ''
+		self.fe_HO            = ''
+		self.fe_FS            = ''
 		self.vertex_equation  = float('NaN')
 		self.element_equation = float('NaN')
@@ -42,7 +42,7 @@
 		string="%s\n%s"%(string,fielddisplay(self,'isHO',"is the Higher-Order (HO) approximation used ?"))
 		string="%s\n%s"%(string,fielddisplay(self,'isFS',"are the Full-FS (FS) equations used ?"))
-		string="%s\n%s"%(string,fielddisplay(self,'fe_SSA',"Finite Element for SSA   0: Lagrange P1 (linear), 1: Lagrange P2 (quadratic)"))
-		string="%s\n%s"%(string,fielddisplay(self,'fe_HO' ,"Finite Element for HO   0: P1xP1, 1: P1xP2, 2: P2xP1, 3: P2xP2"))
-		string="%s\n%s"%(string,fielddisplay(self,'fe_FS' ,"Finite Element for FS   0: P1P1 (debugging), 1: P1P1GSL (under dev), 2: MINI condensed, 3: MINI, 4: P2P1 (Taylor-Hood)"))
+		string="%s\n%s"%(string,fielddisplay(self,'fe_SSA',"Finite Element for SSA: 'P1', 'P1bubble' 'P1bubblecondensed' 'P2'"))
+		string="%s\n%s"%(string,fielddisplay(self,'fe_HO' ,"Finite Element for HO:  'P1' 'P1bubble' 'P1bubblecondensed' 'P1xP2' 'P2xP1' 'P2'"))
+		string="%s\n%s"%(string,fielddisplay(self,'fe_FS' ,"Finite Element for FS:  'P1P1' (debugging only) 'P1P1GLS' 'MINIcondensed' 'MINI' 'TaylorHood'"))
 		string="%s\n%s"%(string,fielddisplay(self,'vertex_equation',"flow equation for each vertex"))
 		string="%s\n%s"%(string,fielddisplay(self,'element_equation',"flow equation for each element"))
@@ -54,6 +54,12 @@
 	def setdefaultparameters(self): # {{{
 
-		#MINI element for FS by default
-		self.fe_FS=2
+		#P1 for SSA
+		self.fe_SSA= 'P1';
+
+		#P1 for HO
+		self.fe_HO= 'P1';
+
+		#MINI condensed element for FS by default
+		self.fe_FS = 'MINIcondensed';
 
 		return self
@@ -67,7 +73,7 @@
 			md = checkfield(md,'flowequation.isHO','numel',[1],'values',[0,1])
 			md = checkfield(md,'flowequation.isFS','numel',[1],'values',[0,1])
-			md = checkfield(md,'flowequation.fe_SSA','numel',[1],'values',[0,1])
-			md = checkfield(md,'flowequation.fe_HO','numel',[1],'values',numpy.arange(0,3+1))
-			md = checkfield(md,'flowequation.fe_FS','numel',[1],'values',numpy.arange(0,4+1))
+			md = checkfield(md,'flowequation.fe_SSA','values',['P1','P1bubble','P1bubblecondensed','P2'])
+			md = checkfield(md,'flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2'])
+			md = checkfield(md,'flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood'])
 			md = checkfield(md,'flowequation.borderSSA','size',[md.mesh.numberofvertices],'values',[0,1])
 			md = checkfield(md,'flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1])
@@ -95,7 +101,7 @@
 		WriteData(fid,'object',self,'fieldname','isHO','format','Boolean')
 		WriteData(fid,'object',self,'fieldname','isFS','format','Boolean')
-		WriteData(fid,'object',self,'fieldname','fe_SSA','format','Integer')
-		WriteData(fid,'object',self,'fieldname','fe_HO','format','Integer')
-		WriteData(fid,'object',self,'fieldname','fe_FS','format','Integer')
+		WriteData(fid,'enum',FlowequationFeSSAEnum(),'data',StringToEnum(self.fe_SSA)[0],'format','Integer')
+		WriteData(fid,'enum',FlowequationFeHOEnum() ,'data',StringToEnum(self.fe_HO)[0] ,'format','Integer')
+		WriteData(fid,'enum',FlowequationFeFSEnum() ,'data',StringToEnum(self.fe_FS)[0] ,'format','Integer')
 		WriteData(fid,'object',self,'fieldname','borderSSA','format','DoubleMat','mattype',1)
 		WriteData(fid,'object',self,'fieldname','borderHO','format','DoubleMat','mattype',1)
