Index: /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 17395)
+++ /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 17396)
@@ -441,5 +441,5 @@
 	/*Intermediaries */
 	IssmDouble c1,c2,c3,healing,stress_threshold;
-	IssmDouble s_xx,s_xy,s_yy;
+	IssmDouble s_xx,s_xy,s_yy,s1,s2,stmp;
 	IssmDouble J2s,Chi,Psi,PosPsi,NegPsi;
 	IssmDouble damage,sigma_xx,sigma_xy,sigma_yy;
@@ -478,11 +478,20 @@
 		sigma_xy_input->GetInputValue(&sigma_xy,gauss);
 		sigma_yy_input->GetInputValue(&sigma_yy,gauss);
-
+	
+		/*Calculate effective stress components*/
 		s_xx=sigma_xx/(1.-damage);
 		s_xy=sigma_xy/(1.-damage);
 		s_yy=sigma_yy/(1.-damage);
 
+		/*Calculate principal effective stresses*/
+		s1=(s_xx+s_yy)/2.+sqrt(pow((s_xx-s_yy)/2.,2)+pow(s_xy,2));
+		s2=(s_xx+s_yy)/2.-sqrt(pow((s_xx-s_yy)/2.,2)+pow(s_xy,2));
+		if(fabs(s2)>fabs(s1)){stmp=s2; s2=s1; s1=stmp;}
+
 		if(equivstress==0){ /* von Mises */
-			Chi=sqrt(s_xx*s_xx - s_xx*s_yy + s_yy*s_yy + 3*s_xy*s_xy);
+			Chi=sqrt(s1*s1-s1*s2+s2*s2);
+		}
+		else if(equivstress==1){ /* max principal stress */
+			Chi=s1;
 		}
 		Psi=Chi-stress_threshold;
Index: /issm/trunk-jpl/src/m/classes/damage.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/damage.m	(revision 17395)
+++ /issm/trunk-jpl/src/m/classes/damage.m	(revision 17396)
@@ -104,5 +104,5 @@
 				md = checkfield(md,'fieldname','damage.c4','>=',0);
 				md = checkfield(md,'fieldname','damage.stress_threshold','>=',0);
-				md = checkfield(md,'fieldname','damage.equiv_stress','numel',[1],'values',[0]);
+				md = checkfield(md,'fieldname','damage.equiv_stress','numel',[1],'values',[0 1]);
 				md = checkfield(md,'fieldname','damage.requested_outputs','stringrow',1);
 			elseif strcmpi(obj.law,'undamaged'),
@@ -149,5 +149,5 @@
 				fielddisplay(obj,'healing','damage healing parameter');
 				fielddisplay(obj,'stress_threshold','damage stress threshold [Pa]');
-				fielddisplay(obj,'equiv_stress','0: von Mises');
+				fielddisplay(obj,'equiv_stress','0: von Mises, 1: max principal');
 				fielddisplay(obj,'requested_outputs','additional outputs requested');
 			end
Index: /issm/trunk-jpl/src/m/classes/damage.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/damage.py	(revision 17395)
+++ /issm/trunk-jpl/src/m/classes/damage.py	(revision 17396)
@@ -65,5 +65,5 @@
 			s+="%s\n" % fielddisplay(self,"stress_threshold","damage stress threshold [Pa]")
 			s+="%s\n" % fielddisplay(self,"healing","damage healing parameter")
-			s+="%s\n" % fielddisplay(self,"equiv_stresss","0: von Mises")
+			s+="%s\n" % fielddisplay(self,"equiv_stress","0: von Mises, 1: max principal")
 			s+="%s\n" % fielddisplay(self,'requested_outputs','additional outputs requested')
 
@@ -141,5 +141,5 @@
 			md = checkfield(md,'fieldname','damage.stress_threshold','>=',0)
 			md = checkfield(md,'fieldname','damage.healing','>=',0)
-			md = checkfield(md,'fieldname','damage.equiv_stress','numel',[1],'values',[0])
+			md = checkfield(md,'fieldname','damage.equiv_stress','numel',[1],'values',[0,1])
 			md = checkfield(md,'fieldname','damage.requested_outputs','stringrow',1)
 		elif strcmpi(self.law,'undamaged'):
