Index: /issm/trunk/test/Miscellaneous/connectivity/DomainOutline.exp
===================================================================
--- /issm/trunk/test/Miscellaneous/connectivity/DomainOutline.exp	(revision 340)
+++ /issm/trunk/test/Miscellaneous/connectivity/DomainOutline.exp	(revision 340)
@@ -0,0 +1,10 @@
+## Name:DomainOutline
+## Icon:0
+# Points Count  Value
+5 1.000000
+# X pos Y pos
+0 0
+1000000 0
+1000000 1000000
+0 1000000
+0 0
Index: /issm/trunk/test/Miscellaneous/connectivity/Front.exp
===================================================================
--- /issm/trunk/test/Miscellaneous/connectivity/Front.exp	(revision 340)
+++ /issm/trunk/test/Miscellaneous/connectivity/Front.exp	(revision 340)
@@ -0,0 +1,10 @@
+## Name:
+## Icon:0
+# Points Count	Value
+5	1.
+# X pos	Y pos
+-1000 990000
+1001000  990000
+1001000  1001000
+-1000  1001000
+-1000 990000
Index: /issm/trunk/test/Miscellaneous/connectivity/Square.par
===================================================================
--- /issm/trunk/test/Miscellaneous/connectivity/Square.par	(revision 340)
+++ /issm/trunk/test/Miscellaneous/connectivity/Square.par	(revision 340)
@@ -0,0 +1,38 @@
+%Start defining model parameters here
+
+%dynamics
+md.dt=1*md.yts; %1 year
+md.ndt=md.dt*10; 
+md.artificial_diffusivity=1;
+
+hmin=300;
+hmax=1000;
+ymin=min(md.y);
+ymax=max(md.y);
+md.thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin);
+md.bed=-md.rho_ice/md.rho_water*md.thickness;
+md.surface=md.bed+md.thickness;
+
+md.drag_type=2; %0 none 1 plastic 2 viscous
+md.drag=200*ones(md.numberofgrids,1); %q=1.
+%Take care of iceshelves: no basal drag
+pos=find(md.elementoniceshelf);
+md.drag(md.elements(pos,:))=0;
+md.p=ones(md.numberofelements,1);
+md.q=ones(md.numberofelements,1);
+md.viscosity_overshoot=0.3;
+
+md.observed_temperature=(273-20)*ones(md.numberofgrids,1);
+
+md.B=paterson(md.observed_temperature);
+md.n=3*ones(md.numberofelements,1);
+
+%Deal with boundary conditions:
+md=SetIceShelfBC(md,'Front.exp');
+md.dirichletvalues_diag(:,2)=500;
+
+%Parallel options
+md.np=8;
+md.time=50;
+md.waitonlock=1;
+md.debug=1;
Index: /issm/trunk/test/Miscellaneous/connectivity/runme.m
===================================================================
--- /issm/trunk/test/Miscellaneous/connectivity/runme.m	(revision 340)
+++ /issm/trunk/test/Miscellaneous/connectivity/runme.m	(revision 340)
@@ -0,0 +1,65 @@
+%this test computes the time needed for a diagnostic in 2d
+%depending on the connectivity
+
+%connectivity and density
+Connectivity=13:23;
+%Density=5000:1000:9000;  %parallel 2d
+Density=20000:1000:24000;  %parallel 3d
+
+%loop over every case
+count=1;
+time=zeros(length(Density),length(Connectivity));
+numelements=zeros(length(Density));
+numcases=length(Density)*length(Connectivity);
+subplotwidth=ceil(sqrt(length(Density)));
+for i=1:length(Density),
+	for j=1:length(Connectivity),
+		density=Density(i);
+		connectivity=Connectivity(j);
+
+		disp(sprintf('\nSTEP %i/%i : (density=%i, connectivity=%i)\n',count,numcases,density,connectivity));
+
+		%create model
+		md=model;
+		md=mesh(md,'DomainOutline.exp',density);
+		md=geography(md,'all','');
+		md=parameterize(md,'Square.par');
+		md.connectivity=connectivity;
+		md=extrude(md,4,5);
+		md=setelementstype(md,'pattyn','all');
+
+		%diagnostic
+		t1=clock;
+		%md=solve(md,'diagnostic','cielo');
+		md.cluster='wilkes'; md=solve(md,'diagnostic_horiz','cielo');
+		t2=clock;
+
+		%save time
+		time(i,j)=etime(t2,t1);
+		count=count+1;
+
+	end
+	numelements(i)=md.numberofelements;
+end
+
+%display result
+disp(sprintf('\nResults\n'));
+disp(sprintf('   STEP  density  connectivity   time',count));
+for i=1:length(Density),
+	for j=1:length(Connectivity),
+		disp(sprintf(['%4i/%i %i %11i        ' num2str(time(i,j))],count,numcases,Density(i),Connectivity(j)));
+		count=count+1;
+	end
+	[dummy pos]=min(time(i,:));
+
+	%plot results
+	subplot(subplotwidth,subplotwidth,i)
+	plot(Connectivity,time(i,:));
+	hold on
+	plot([Connectivity(1);Connectivity(end)],time(i,pos)*ones(2,1),'-r');
+
+	title(['computation time for '  num2str(numelements(i)) ' elements'],'FontSize',14);
+	xlabel('Connectivity','FontSize',14)
+	ylabel('time (s)','FontSize',14)
+end
+
Index: /issm/trunk/test/Validation/ControlMethods/runme.m
===================================================================
--- /issm/trunk/test/Validation/ControlMethods/runme.m	(revision 339)
+++ /issm/trunk/test/Validation/ControlMethods/runme.m	(revision 340)
@@ -1,5 +1,5 @@
 step=[2];
 division=2;
-density=50000;
+density=70000;
 startup
 
@@ -57,18 +57,20 @@
 
 	%control method
-	md.nsteps=50;
+	md.nsteps=1;
 	md.control_type='B';
 	md.mincontrolconstraint=0;
 	md.maxcontrolconstraint=1.2*10^9;
-	md.plot=1;
-	md.debug=0;
-	md.optscal=10^8*ones(md.nsteps,1);
+	md.plot=0;
+	md.debug=1;
+	md.optscal=10^8*ones(md.nsteps,1); md.optscal(1)=2*10^8;
 	md.fit=0*ones(md.nsteps,1);
-	md.maxiter=10*ones(md.nsteps,1);
-	md.eps_rel=1;
+	md.maxiter=1*ones(md.nsteps,1);
+	md.eps_rel=0.01;
 	md.eps_abs=NaN;
 
-%	md.cluster='wilkes';
+	md.np=1;
+md.cluster='wilkes';
 %	md=solve(md,'control','ice');
-	md=solve(md,'control','cielo');
+md=solve(md,'control','cielo');
+%md=solve(md,'control','macayeal');
 end
