Index: /issm/trunk/src/ad/validation/Update/Square.exp
===================================================================
--- /issm/trunk/src/ad/validation/Update/Square.exp	(revision 10328)
+++ /issm/trunk/src/ad/validation/Update/Square.exp	(revision 10328)
@@ -0,0 +1,10 @@
+## Name:domainoutline
+## Icon:0
+# Points Count  Value
+5 1.
+# X pos Y pos
+0 0
+1000000 0
+1000000 1000000
+0 1000000
+0 0
Index: /issm/trunk/src/ad/validation/Update/update.m
===================================================================
--- /issm/trunk/src/ad/validation/Update/update.m	(revision 10328)
+++ /issm/trunk/src/ad/validation/Update/update.m	(revision 10328)
@@ -0,0 +1,25 @@
+tolerance=1e-13;
+
+md=setmesh(model,'Exp/Square.exp',150000);
+md=setmask(md,'all','');
+md=parameterize(md,'Par/SquareShelfConstrained.par');
+md=setflowequation(md,'macayeal','all');
+md.cluster=generic('name',oshostname(),'np',3);
+
+md.autodiff.analysis=true;
+md.autodiff.forward=true;
+md.verbose=verbose('solution',true);
+
+md=solve(md,PrognosticSolutionEnum);
+
+s=load('Archive/archive.mat'); h0=s.Archive110_field1;
+h=PatchToVec(md.results.PrognosticSolution.Thickness);
+
+error_diff=full(max(abs(h-h0))/(max(abs(h0))+eps));
+
+if (error_diff>tolerance);
+	disp(sprintf(['\n\n\nERROR   difference: %-7.2g > %7.2g \n\n\n'],error_diff,tolerance));
+else
+	disp(sprintf(['\n\n\nSUCCESS difference: %-7.2g < %7.2g \n\n\n'],error_diff,tolerance));
+end
+
Index: /issm/trunk/src/ad/validation/validation.m
===================================================================
--- /issm/trunk/src/ad/validation/validation.m	(revision 10328)
+++ /issm/trunk/src/ad/validation/validation.m	(revision 10328)
@@ -0,0 +1,23 @@
+tolerance=1e-13;
+
+md=model;
+md.cluster=generic('name',oshostname(),'np',3);
+md.miscellaneous.name='validation';
+
+
+%launch solution directly: 
+!source validation.queue
+
+md=loadresultsfromdisk(md,'validation.outbin');
+
+s=load('Archive/archive.mat'); h0=s.Archive110_field1;
+h=PatchToVec(md.results.PrognosticSolution.Thickness);
+
+error_diff=full(max(abs(h-h0))/(max(abs(h0))+eps));
+
+if (error_diff>tolerance);
+	disp(sprintf(['\n\n\nERROR   difference: %-7.2g > %7.2g \n\n\n'],error_diff,tolerance));
+else
+	disp(sprintf(['\n\n\nSUCCESS difference: %-7.2g < %7.2g \n\n\n'],error_diff,tolerance));
+end
+
