Index: /issm/trunk-jpl/src/m/classes/damage.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/damage.m	(revision 18042)
+++ /issm/trunk-jpl/src/m/classes/damage.m	(revision 18043)
@@ -9,5 +9,5 @@
 		isdamage            = 0;
 		D                   = NaN;
-		law                 = '';
+		law                 = NaN;
 		spcdamage           = NaN; 
 		max_damage          = NaN;
@@ -109,5 +109,5 @@
 			obj.isdamage=0;
 			obj.D=0;
-			obj.law='undamaged';
+			obj.law=0;
 			
 			obj.max_damage=1-1e-5; %if damage reaches 1, solve becomes singular, as viscosity becomes nil
@@ -148,5 +148,5 @@
 			md = checkfield(md,'fieldname','damage.isdamage','values',[1,0]);
 			if obj.isdamage,
-				md = checkfield(md,'fieldname','damage.law','values',{'undamaged','pralong'});
+				md = checkfield(md,'fieldname','damage.law','numel',[1],'values',[0,1,2]);
 				md = checkfield(md,'fieldname','damage.D','>=',0,'<=',obj.max_damage,'size',[md.mesh.numberofvertices 1]);
 				md = checkfield(md,'fieldname','damage.spcdamage','forcing',1);
@@ -160,5 +160,5 @@
 			end
 
-			if strcmpi(obj.law,'pralong'),
+			if (obj.law==1 | obj.law==2),
 				md = checkfield(md,'fieldname','damage.healing','>=',0);
 				md = checkfield(md,'fieldname','damage.c1','>=',0);
@@ -169,5 +169,5 @@
 				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'),
+			elseif (obj.law>0),
 				if (solution==DamageEvolutionSolutionEnum),
 					error('Invalid evolution law (md.damage.law) for a damage solution');
@@ -191,5 +191,5 @@
 			fielddisplay(obj,'isdamage','is damage mechanics being used? {true,false}');
 			if obj.isdamage,
-				fielddisplay(obj,'law','damage law (string) from {''undamaged'',''pralong''}');
+				fielddisplay(obj,'law','damage law {''0: undamaged'',''1: pralong''}');
 				fielddisplay(obj,'D','damage tensor (scalar)');
 				fielddisplay(obj,'spcdamage','damage constraints (NaN means no constraint)');
@@ -204,5 +204,5 @@
 			end
 
-			if strcmpi(obj.law,'pralong'),
+			if (obj.law==1 | obj.law==2),
 				fielddisplay(obj,'c1','damage parameter 1');
 				fielddisplay(obj,'c2','damage parameter 2');
@@ -220,5 +220,5 @@
 			WriteData(fid,'object',obj,'fieldname','isdamage','format','Boolean');
 			if obj.isdamage,
-				WriteData(fid,'object',obj,'fieldname','law','format','String');
+				WriteData(fid,'object',obj,'fieldname','law','format','Integer');
 				WriteData(fid,'object',obj,'fieldname','D','format','DoubleMat','mattype',1);
 				WriteData(fid,'object',obj,'fieldname','spcdamage','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
@@ -233,5 +233,5 @@
 			end
 	
-			if strcmpi(obj.law,'pralong'),
+			if (obj.law==1 | obj.law==2),
 				WriteData(fid,'object',obj,'fieldname','c1','format','Double');
 				WriteData(fid,'object',obj,'fieldname','c2','format','Double');
Index: /issm/trunk-jpl/src/m/classes/damage.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/damage.py	(revision 18042)
+++ /issm/trunk-jpl/src/m/classes/damage.py	(revision 18043)
@@ -19,5 +19,5 @@
 		self.isdamage           = 0.
 		self.D						= float('NaN')
-		self.law						= ''
+		self.law						= float('NaN')
 		self.spcdamage				= float('NaN')
 		self.max_damage			= float('NaN')
@@ -53,5 +53,5 @@
 		if self.isdamage:
 			s+="%s\n" % fielddisplay(self,"D","damage tensor (scalar for now)")
-			s+="%s\n" % fielddisplay(self,"law","damage law (string) from ['undamaged','pralong']")
+			s+="%s\n" % fielddisplay(self,"law","damage law ['0: undamaged','1: pralong']")
 			s+="%s\n" % fielddisplay(self,"spcdamage","damage constraints (NaN means no constraint)")
 			s+="%s\n" % fielddisplay(self,"max_damage","maximum possible damage (0<=max_damage<1)")
@@ -64,5 +64,5 @@
 			s+="%s\n" % fielddisplay(self,"penalty_factor","scaling exponent (default is 3)")
 
-		if (self.law=='pralong'):
+		if self.law== 1 or self.law == 2:
 			s+="%s\n" % fielddisplay(self,"c1","damage parameter 1 ")
 			s+="%s\n" % fielddisplay(self,"c2","damage parameter 2 ")
@@ -81,5 +81,5 @@
 		self.isdamage=0
 		self.D=0
-		self.law='undamaged'
+		self.law=0
 
 		self.max_damage=1-1e-5 #if damage reaches 1, solve becomes singular, as viscosity becomes nil
@@ -132,5 +132,5 @@
 			md = checkfield(md,'fieldname','damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices])
 			md = checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0)
-			md = checkfield(md,'fieldname','damage.law','values',['undamaged','pralong'])
+			md = checkfield(md,'fieldname','damage.law','numel',[1],'values',[0,1,2])
 			md = checkfield(md,'fieldname','damage.spcdamage','forcing',1)
 			md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0,1,2])
@@ -141,5 +141,5 @@
 			md = checkfield(md,'fieldname','damage.penalty_threshold','>=0',0)
 
-		if self.law == 'pralong':
+		if self.law == 1 or self.law == 2:
 			md = checkfield(md,'fieldname','damage.healing','>=',0)
 			md = checkfield(md,'fieldname','damage.c1','>=',0)
@@ -151,5 +151,5 @@
 			md = checkfield(md,'fieldname','damage.equiv_stress','numel',[1],'values',[0,1])
 			md = checkfield(md,'fieldname','damage.requested_outputs','stringrow',1)
-		elif m.strcmpi(self.law,'undamaged'):
+		elif self.law != 0:
 			if (solution==DamageEvolutionSolutionEnum):
 				raise RuntimeError('Invalid evolution law (md.damage.law) for a damage solution')
@@ -162,5 +162,5 @@
 		if self.isdamage:
 			WriteData(fid,'object',self,'fieldname','D','format','DoubleMat','mattype',1)
-			WriteData(fid,'object',self,'fieldname','law','format','String')
+			WriteData(fid,'object',self,'fieldname','law','format','Integer')
 			WriteData(fid,'object',self,'fieldname','spcdamage','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1)
 			WriteData(fid,'object',self,'fieldname','max_damage','format','Double')
@@ -172,5 +172,5 @@
 			WriteData(fid,'object',self,'fieldname','penalty_factor','format','Double')
 
-		if self.law=='pralong':
+		if self.law==1 or self.law==2:
 			WriteData(fid,'object',self,'fieldname','c1','format','Double')
 			WriteData(fid,'object',self,'fieldname','c2','format','Double')
