Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9676)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9677)
@@ -91,4 +91,7 @@
 	FlowequationBorderpattynEnum,
 	FlowequationBordermacayealEnum,
+	SteadystateRequestedOutputsEnum,
+	SteadystateReltolEnum,
+	SteadystateMaxiterEnum,
 	/*}}}*/
 	/*Datasets {{{1*/
@@ -470,5 +473,4 @@
 	NumberOfResponsesEnum,
 
-	MaxSteadystateIterationsEnum,
 	RequestedOutputsEnum,
 	NumRequestedOutputsEnum,
Index: /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9676)
+++ /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9677)
@@ -95,4 +95,7 @@
 		case FlowequationBorderpattynEnum : return "FlowequationBorderpattyn";
 		case FlowequationBordermacayealEnum : return "FlowequationBordermacayeal";
+		case SteadystateRequestedOutputsEnum : return "SteadystateRequestedOutputs";
+		case SteadystateReltolEnum : return "SteadystateReltol";
+		case SteadystateMaxiterEnum : return "SteadystateMaxiter";
 		case ConstraintsEnum : return "Constraints";
 		case ElementsEnum : return "Elements";
@@ -413,5 +416,4 @@
 		case WaitonlockEnum : return "Waitonlock";
 		case NumberOfResponsesEnum : return "NumberOfResponses";
-		case MaxSteadystateIterationsEnum : return "MaxSteadystateIterations";
 		case RequestedOutputsEnum : return "RequestedOutputs";
 		case NumRequestedOutputsEnum : return "NumRequestedOutputs";
Index: /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 9676)
+++ /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 9677)
@@ -34,5 +34,6 @@
 	parameters->AddObject(iomodel->CopyConstantObject(EpsAbsEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(MaxNonlinearIterationsEnum));
-	parameters->AddObject(iomodel->CopyConstantObject(MaxSteadystateIterationsEnum));
+	parameters->AddObject(iomodel->CopyConstantObject(SteadystateReltolEnum));
+	parameters->AddObject(iomodel->CopyConstantObject(SteadystateMaxiterEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(ConstantsYtsEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(TimesteppingTimeStepEnum));
Index: /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9676)
+++ /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9677)
@@ -93,4 +93,7 @@
 	else if (strcmp(name,"FlowequationBorderpattyn")==0) return FlowequationBorderpattynEnum;
 	else if (strcmp(name,"FlowequationBordermacayeal")==0) return FlowequationBordermacayealEnum;
+	else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum;
+	else if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum;
+	else if (strcmp(name,"SteadystateMaxiter")==0) return SteadystateMaxiterEnum;
 	else if (strcmp(name,"Constraints")==0) return ConstraintsEnum;
 	else if (strcmp(name,"Elements")==0) return ElementsEnum;
@@ -411,5 +414,4 @@
 	else if (strcmp(name,"Waitonlock")==0) return WaitonlockEnum;
 	else if (strcmp(name,"NumberOfResponses")==0) return NumberOfResponsesEnum;
-	else if (strcmp(name,"MaxSteadystateIterations")==0) return MaxSteadystateIterationsEnum;
 	else if (strcmp(name,"RequestedOutputs")==0) return RequestedOutputsEnum;
 	else if (strcmp(name,"NumRequestedOutputs")==0) return NumRequestedOutputsEnum;
Index: /issm/trunk/src/c/solutions/steadystate_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/steadystate_core.cpp	(revision 9676)
+++ /issm/trunk/src/c/solutions/steadystate_core.cpp	(revision 9677)
@@ -20,5 +20,5 @@
 	int dim;
 	int solution_type;
-	int max_steadystate_iterations;
+	int maxiter;
 	bool control_analysis;
 	
@@ -27,5 +27,5 @@
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
-	femmodel->parameters->FindParam(&max_steadystate_iterations,MaxSteadystateIterationsEnum);
+	femmodel->parameters->FindParam(&maxiter,SteadystateMaxiterEnum);
 
 	/*intialize counters: */
@@ -44,6 +44,6 @@
 			if(steadystateconvergence(femmodel)) break;
 		}
-		if(step>max_steadystate_iterations){
-			_printf_(VerboseSolution(),"%s%i%s\n","   maximum number steadystate iterations ",max_steadystate_iterations," reached");
+		if(step>maxiter){
+			_printf_(VerboseSolution(),"%s%i%s\n","   maximum number steadystate iterations ",maxiter," reached");
 			break;
 		}
Index: /issm/trunk/src/c/solutions/steadystateconvergence.cpp
===================================================================
--- /issm/trunk/src/c/solutions/steadystateconvergence.cpp	(revision 9676)
+++ /issm/trunk/src/c/solutions/steadystateconvergence.cpp	(revision 9677)
@@ -31,5 +31,5 @@
 
 	/*retrieve parameters: */
-	femmodel->parameters->FindParam(&convergencecriterionvalue[0],EpsRelEnum);
+	femmodel->parameters->FindParam(&convergencecriterionvalue[0],SteadystateReltolEnum);
 	
 	/*figure out convergence at the input level, because we don't have the solution vectors!: */
Index: /issm/trunk/src/m/classes/model/model.m
===================================================================
--- /issm/trunk/src/m/classes/model/model.m	(revision 9676)
+++ /issm/trunk/src/m/classes/model/model.m	(revision 9677)
@@ -33,4 +33,5 @@
 		 balancethickness = modelfield('default',0,'marshall',true);
 		 flowequation = modelfield('default',0,'marshall',true);
+		 steadystate = modelfield('default',0,'marshall',true);
 
 		 %FIXME: all other fields should belong to other classes
@@ -120,5 +121,4 @@
 		 eps_abs                  = modelfield('default',0,'marshall',true,'format','Double');
 		 max_nonlinear_iterations = modelfield('default',0,'marshall',true,'format','Integer');
-		 max_steadystate_iterations = modelfield('default',0,'marshall',true,'format','Integer');
 		 connectivity             = modelfield('default',0,'marshall',true,'format','Integer');
 		 viscosity_overshoot      = modelfield('default',0,'marshall',true,'format','Double');
@@ -379,4 +379,6 @@
 			 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
+			 if isfield(structmd,'eps_rel'), md.flowequation.reltol=structmd.eps_rel; end
+			 if isfield(structmd,'max_steadystate_iterations'), md.flowequation.maxiter=structmd.max_steadystate_iterations; end
 
 			 %Field changes
@@ -503,4 +505,5 @@
 			 md.balancethickness=balancethickness;
 			 md.flowequation=flowequation;
+			 md.steadystate=steadystate;
 
 			 %Solver parameters
@@ -518,7 +521,4 @@
 			 md.max_nonlinear_iterations=100;
 			 
-			 %maximum of steady state iterations
-			 md.max_steadystate_iterations=100;
-
 			 %the connectivity is the avergaded number of nodes linked to a
 			 %given node through an edge. This connectivity is used to initially
Index: /issm/trunk/src/m/classes/steadystate.m
===================================================================
--- /issm/trunk/src/m/classes/steadystate.m	(revision 9677)
+++ /issm/trunk/src/m/classes/steadystate.m	(revision 9677)
@@ -0,0 +1,44 @@
+%STEADYSTATE class definition
+%
+%   Usage:
+%      steadystate=steadystate();
+
+classdef steadystate
+	properties (SetAccess=public) 
+		reltol            = modelfield('default',0,'marshall',true,'format','Double');
+		maxiter           = modelfield('default',0,'marshall',true,'format','Integer');
+		requested_outputs = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
+	end
+	methods
+		function obj = steadystate(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
+
+			%maximum of steady state iterations
+			obj.maxiter=100;
+
+			%Relative tolerance for the steadystate convertgence
+			obj.reltol=0.01;
+		end % }}}
+	end
+end
Index: sm/trunk/src/m/enum/MaxSteadystateIterationsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MaxSteadystateIterationsEnum.m	(revision 9676)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaxSteadystateIterationsEnum()
-%MAXSTEADYSTATEITERATIONSENUM - Enum of MaxSteadystateIterations
-%
-%   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=MaxSteadystateIterationsEnum()
-
-macro=StringToEnum('MaxSteadystateIterations');
Index: /issm/trunk/src/m/enum/SteadystateMaxiterEnum.m
===================================================================
--- /issm/trunk/src/m/enum/SteadystateMaxiterEnum.m	(revision 9677)
+++ /issm/trunk/src/m/enum/SteadystateMaxiterEnum.m	(revision 9677)
@@ -0,0 +1,11 @@
+function macro=SteadystateMaxiterEnum()
+%STEADYSTATEMAXITERENUM - Enum of SteadystateMaxiter
+%
+%   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=SteadystateMaxiterEnum()
+
+macro=StringToEnum('SteadystateMaxiter');
Index: /issm/trunk/src/m/enum/SteadystateReltolEnum.m
===================================================================
--- /issm/trunk/src/m/enum/SteadystateReltolEnum.m	(revision 9677)
+++ /issm/trunk/src/m/enum/SteadystateReltolEnum.m	(revision 9677)
@@ -0,0 +1,11 @@
+function macro=SteadystateReltolEnum()
+%STEADYSTATERELTOLENUM - Enum of SteadystateReltol
+%
+%   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=SteadystateReltolEnum()
+
+macro=StringToEnum('SteadystateReltol');
Index: /issm/trunk/src/m/enum/SteadystateRequestedOutputsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/SteadystateRequestedOutputsEnum.m	(revision 9677)
+++ /issm/trunk/src/m/enum/SteadystateRequestedOutputsEnum.m	(revision 9677)
@@ -0,0 +1,11 @@
+function macro=SteadystateRequestedOutputsEnum()
+%STEADYSTATEREQUESTEDOUTPUTSENUM - Enum of SteadystateRequestedOutputs
+%
+%   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=SteadystateRequestedOutputsEnum()
+
+macro=StringToEnum('SteadystateRequestedOutputs');
Index: /issm/trunk/src/m/solutions/steadystateconvergence.m
===================================================================
--- /issm/trunk/src/m/solutions/steadystateconvergence.m	(revision 9676)
+++ /issm/trunk/src/m/solutions/steadystateconvergence.m	(revision 9677)
@@ -10,5 +10,5 @@
 
 	%Retrieve parameters
-	convergencecriterionvalue=femmodel.parameters.EpsRel;
+	convergencecriterionvalue=femmodel.parameters.SteadystateReltol;
 	velocityenums=[VxEnum;VxPicardEnum;VyEnum;VyPicardEnum;VzEnum;VzPicardEnum;PressureEnum;PressurePicardEnum]; %pairs of enums (new and old) on which to carry out the converence tests
 	temperatureenums=[TemperatureEnum;TemperatureOldEnum];
Index: /issm/trunk/template
===================================================================
--- /issm/trunk/template	(revision 9676)
+++ /issm/trunk/template	(revision 9677)
@@ -51,23 +51,4 @@
 	  thickness_coeff -> rename hydrostatic_ratio (change ThicknessCorrection.m accordingly)
 }}}
-flowequation{{{
-	private: 
-		ishutter
-		ismacayealpattyn
-		isstokes
-
-		elements_type -> change to element_equation
-		vertices_type -> rename to vertex_equation
-		
-		elementonhutter ->delete
-		elementonmacayeal->delete
-		elementonpattyn->delete
-		elementonstokes->delete
-
-		nodeonhutter ->delete
-		nodeonmacayeal->delete
-		nodeonpattyn->delete
-		nodeonstokes->delete
-}}}
 initialization{{{
 	vx
@@ -99,9 +80,4 @@
 	penalty_lock -> rename rift_penalty_lock 
 	min_mechanical_constraints -> rename  rift_penalty_threshold
-	requested_outputs
-}}}
-steadystate{{{
-	eps_rel -> rename following PETSc: reltol
-	max_steadystate_iterations -> rename maxiter
 	requested_outputs
 }}}
Index: /issm/trunk/test/Par/79North.par
===================================================================
--- /issm/trunk/test/Par/79North.par	(revision 9676)
+++ /issm/trunk/test/Par/79North.par	(revision 9677)
@@ -39,4 +39,5 @@
 md.eps_res=0.05;
 md.eps_rel=0.005;
+md.steadystate.reltol=0.005;
 md.eps_abs=NaN;
 
Index: /issm/trunk/test/Par/Pig.par
===================================================================
--- /issm/trunk/test/Par/Pig.par	(revision 9676)
+++ /issm/trunk/test/Par/Pig.par	(revision 9677)
@@ -36,4 +36,5 @@
 md.eps_res=0.05;
 md.eps_rel=1;
+md.steadystate.reltol=1;
 md.eps_abs=NaN;
 
Index: /issm/trunk/test/Par/RoundSheetShelf.par
===================================================================
--- /issm/trunk/test/Par/RoundSheetShelf.par	(revision 9676)
+++ /issm/trunk/test/Par/RoundSheetShelf.par	(revision 9677)
@@ -64,4 +64,5 @@
 md.eps_res=0.05;
 md.eps_rel=0.05;
+md.steadystate.reltol=0.05;
 md.eps_abs=NaN;
 md.timestepping.time_step=.1;
Index: /issm/trunk/test/Par/SquareSheetConstrained.par
===================================================================
--- /issm/trunk/test/Par/SquareSheetConstrained.par	(revision 9676)
+++ /issm/trunk/test/Par/SquareSheetConstrained.par	(revision 9677)
@@ -37,4 +37,5 @@
 md.waitonlock=30;
 md.eps_res=0.05;
+md.steadystate.reltol=0.05;
 md.eps_rel=0.05;
 md.eps_abs=NaN;
Index: /issm/trunk/test/Par/SquareSheetShelf.par
===================================================================
--- /issm/trunk/test/Par/SquareSheetShelf.par	(revision 9676)
+++ /issm/trunk/test/Par/SquareSheetShelf.par	(revision 9677)
@@ -44,4 +44,5 @@
 md.waitonlock=30;
 md.eps_res=0.05;
+md.steadystate.reltol=0.05;
 md.eps_rel=0.05;
 md.eps_abs=NaN;
Index: /issm/trunk/test/Par/SquareShelf.par
===================================================================
--- /issm/trunk/test/Par/SquareShelf.par	(revision 9676)
+++ /issm/trunk/test/Par/SquareShelf.par	(revision 9677)
@@ -37,4 +37,5 @@
 md.verbose=verbose(0);
 md.eps_res=0.10;
+md.steadystate.reltol=0.02;
 md.eps_rel=0.02;
 md.eps_abs=NaN;
Index: /issm/trunk/test/Par/SquareShelfConstrained.par
===================================================================
--- /issm/trunk/test/Par/SquareShelfConstrained.par	(revision 9676)
+++ /issm/trunk/test/Par/SquareShelfConstrained.par	(revision 9677)
@@ -42,4 +42,5 @@
 md.eps_res=0.05;
 md.eps_rel=0.05;
+md.steadystate.reltol=0.05;
 md.eps_abs=NaN;
 md.timestepping.time_step=1;
