Index: /issm/trunk-jpl/src/m/classes/qmu.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/qmu.py	(revision 25009)
+++ /issm/trunk-jpl/src/m/classes/qmu.py	(revision 25010)
@@ -27,6 +27,4 @@
         self.params = OrderedStruct()
         self.results = OrderedDict()
-        self.vpartition = float('NaN')
-        self.epartition = float('NaN')
         self.numberofpartitions = 0
         self.numberofresponses = 0
@@ -78,5 +76,5 @@
                 s += "            method :    '%s'\n" % (method.method)
 
-    # params could be have a number of forms (mainly 1 struct or many)
+    # params could have a number of forms (mainly 1 struct or many)
         if type(self.params) == OrderedStruct:
             params = [self.params]
@@ -184,6 +182,4 @@
             WriteData(fid, prefix, 'data', False, 'name', 'md.qmu.mass_flux_segments_present', 'format', 'Boolean')
             return
-        WriteData(fid, prefix, 'object', self, 'fieldname', 'vpartition', 'format', 'DoubleMat', 'mattype', 2)
-        WriteData(fid, prefix, 'object', self, 'fieldname', 'epartition', 'format', 'DoubleMat', 'mattype', 2)
         WriteData(fid, prefix, 'object', self, 'fieldname', 'numberofpartitions', 'format', 'Integer')
         WriteData(fid, prefix, 'object', self, 'fieldname', 'numberofresponses', 'format', 'Integer')
Index: /issm/trunk-jpl/test/NightlyRun/test218.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test218.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test218.py	(revision 25010)
@@ -72,7 +72,6 @@
 
 #partitioning
-md.qmu.numberofpartitions = md.mesh.numberofvertices
-md = partitioner(md, 'package', 'linear', 'npart', md.qmu.numberofpartitions)
-md.qmu.vpartition = md.qmu.vpartition - 1
+npart = md.mesh.numberofvertices
+partition = partitioner(md, 'package', 'linear', 'npart', npart) - 1
 
 #Dakota options
@@ -88,5 +87,5 @@
 	'mean', np.ones(md.mesh.numberofvertices),
 	'stddev', .05 * np.ones(md.mesh.numberofvertices),
-	'partition', md.qmu.vpartition
+	'partition', partition
 	)
 
@@ -121,5 +120,5 @@
 #Fields and tolerances to track changes
 md.qmu.results = md.results.dakota
-md.results.dakota.importancefactors = importancefactors(md, 'scaled_MaterialsRheologyB', 'MaxVel').reshape(-1, 1)
+md.results.dakota.importancefactors = importancefactors(md, 'scaled_MaterialsRheologyB', 'MaxVel', partition).reshape(-1, 1)
 field_names = ['importancefactors']
 field_tolerances = [1e-10]
Index: /issm/trunk-jpl/test/NightlyRun/test234.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test234.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test234.py	(revision 25010)
@@ -38,14 +38,13 @@
 
 #partitioning
-md.qmu.numberofpartitions = 20
-md = partitioner(md, 'package', 'chaco', 'npart', md.qmu.numberofpartitions, 'weighting', 'on')
-md.qmu.vpartition = md.qmu.vpartition - 1
+npart = 20
+partition = partitioner(md, 'package', 'chaco', 'npart', npart, 'weighting', 'on') - 1
 
 #variables
 md.qmu.variables.surface_mass_balance = normal_uncertain.normal_uncertain(
     'descriptor', 'scaled_SmbMassBalance',
-    'mean', np.ones(md.qmu.numberofpartitions),
-    'stddev', .1 * np.ones(md.qmu.numberofpartitions),
-    'partition', md.qmu.vpartition
+    'mean', np.ones(npart),
+    'stddev', .1 * np.ones(npart),
+    'partition', partition
     )
 
Index: /issm/trunk-jpl/test/NightlyRun/test250.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test250.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test250.py	(revision 25010)
@@ -37,5 +37,5 @@
 #partitioning
 md.qmu.numberofpartitions = md.mesh.numberofvertices
-md = partitioner(md, 'package', 'linear')
+partition = partitioner(md, 'package', 'linear', 'npart', md.mesh.numberofvertices) - 1
 md.qmu.vpartition = md.qmu.vpartition - 1
 
@@ -43,7 +43,7 @@
 md.qmu.variables.surface_mass_balance = normal_uncertain.normal_uncertain(
     'descriptor', 'scaled_SmbMassBalance',
-    'mean', np.ones(md.qmu.numberofpartitions),
-    'stddev', .1 * np.ones(md.qmu.numberofpartitions),
-    'partition', md.qmu.vpartition
+    'mean', np.ones(md.mesh.numberofvertices),
+    'stddev', .1 * np.ones(md.mesh.numberofvertices),
+    'partition', partition
     )
 
Index: /issm/trunk-jpl/test/NightlyRun/test251.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test251.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test251.py	(revision 25010)
@@ -37,7 +37,5 @@
 
 #partitioning
-md.qmu.numberofpartitions = md.mesh.numberofvertices
-md = partitioner(md, 'package', 'linear')
-md.qmu.vpartition = md.qmu.vpartition - 1
+partition = partitioner(md, 'package', 'linear', 'npart', md.mesh.numberofvertices) - 1
 
 #variables
@@ -46,5 +44,5 @@
     'mean', np.ones(md.qmu.numberofpartitions),
     'stddev', 100 * np.ones(md.qmu.numberofpartitions),
-    'partition', md.qmu.vpartition
+    'partition', partition
     )
 
Index: /issm/trunk-jpl/test/NightlyRun/test412.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test412.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test412.py	(revision 25010)
@@ -19,7 +19,5 @@
 
 #partitioning
-md.qmu.numberofpartitions = md.mesh.numberofvertices
-md = partitioner(md, 'package', 'linear', 'npart', md.qmu.numberofpartitions)
-md.qmu.vpartition = md.qmu.vpartition - 1
+md = partitioner(md, 'package', 'linear', 'npart', md.mesh.numberofvertices) - 1
 md.qmu.isdakota = 1
 
@@ -40,5 +38,5 @@
     'mean', np.ones(md.mesh.numberofvertices),
     'stddev', .01 * np.ones(md.mesh.numberofvertices),
-    'partition', md.qmu.vpartition
+    'partition', partition
     )
 
@@ -70,5 +68,5 @@
 #Fields and tolerances to track changes
 md.qmu.results = md.results.dakota
-md.results.dakota.importancefactors = importancefactors(md, 'scaled_FrictionCoefficient', 'MaxVel').T
+md.results.dakota.importancefactors = importancefactors(md, 'scaled_FrictionCoefficient', 'MaxVel', partition).T
 field_names = ['importancefactors']
 field_tolerances = [1e-10]
Index: /issm/trunk-jpl/test/NightlyRun/test413.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test413.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test413.py	(revision 25010)
@@ -24,6 +24,5 @@
 #partitioning
 md.qmu.numberofpartitions = 20
-md = partitioner(md, 'package', 'chaco', 'npart', md.qmu.numberofpartitions, 'weighting', 'on')
-md.qmu.vpartition = md.qmu.vpartition - 1
+partition = partitioner(md, 'package', 'chaco', 'npart', npart, 'weighting', 'on') - 1
 
 #variables
@@ -35,7 +34,7 @@
 md.qmu.variables.drag_coefficient = normal_uncertain.normal_uncertain(
     'descriptor', 'scaled_FrictionCoefficient',
-    'mean', np.ones(md.qmu.numberofpartitions),
-    'stddev', .01 * np.ones(md.qmu.numberofpartitions),
-    'partition', md.qmu.vpartition
+    'mean', np.ones(npart),
+    'stddev', .01 * np.ones(npart),
+    'partition', partition
     )
 
@@ -69,5 +68,5 @@
 #Fields and tolerances to track changes
 md.qmu.results = md.results.dakota
-md.results.dakota.importancefactors = importancefactors(md, 'scaled_FrictionCoefficient', 'MaxVel').T
+md.results.dakota.importancefactors = importancefactors(md, 'scaled_FrictionCoefficient', 'MaxVel', partition).T
 field_names = ['importancefactors']
 field_tolerances = [1e-10]
Index: /issm/trunk-jpl/test/NightlyRun/test414.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test414.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test414.py	(revision 25010)
@@ -32,14 +32,13 @@
 
 #partitioning
-md.qmu.numberofpartitions = 20
-md = partitioner(md, 'package', 'chaco', 'npart', md.qmu.numberofpartitions, 'weighting', 'on')
-md.qmu.vpartition = md.qmu.vpartition - 1
+npart = 20
+partition = partitioner(md, 'package', 'chaco', 'npart', npart, 'weighting', 'on') - 1
 
 #variables
 md.qmu.variables.drag_coefficient = normal_uncertain.normal_uncertain(
     'descriptor', 'scaled_FrictionCoefficient',
-    'mean', np.ones(md.qmu.numberofpartitions),
-    'stddev', .01 * np.ones(md.qmu.numberofpartitions),
-    'partition', md.qmu.vpartition
+    'mean', np.ones(npart),
+    'stddev', .01 * np.ones(npart),
+    'partition', partition
     )
 
Index: /issm/trunk-jpl/test/NightlyRun/test417.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test417.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test417.py	(revision 25010)
@@ -32,14 +32,14 @@
 
 #partitioning
-md.qmu.numberofpartitions = 20
-md = partitioner(md, 'package', 'chaco', 'npart', md.qmu.numberofpartitions, 'weighting', 'on')
-md.qmu.vpartition = md.qmu.vpartition - 1
+npart = 20
+partition = partitioner(md, 'package', 'chaco', 'npart', npart, 'weighting', 'on') - 1
+md.qmu.isdakota = 1
 
 #variables
 md.qmu.variables.drag_coefficient = normal_uncertain.normal_uncertain(
     'descriptor', 'scaled_FrictionCoefficient',
-    'mean', np.ones(md.qmu.numberofpartitions),
-    'stddev', .01 * np.ones(md.qmu.numberofpartitions),
-    'partition', md.qmu.vpartition
+    'mean', np.ones(npart),
+    'stddev', .01 * np.ones(npart),
+    'partition', partition
     )
 
@@ -59,9 +59,9 @@
 md.qmu.mass_flux_profile_directory = getcwd()
 
-#method
+# nond_sampling study
 md.qmu.method = dakota_method.dakota_method('nond_samp')
 md.qmu.method = dmeth_params_set(md.qmu.method, 'seed', 1234, 'samples', 20, 'sample_type', 'lhs')
 
-#parameters
+# parameters
 md.qmu.params.interval_type = 'forward'
 md.qmu.params.direct = True
@@ -75,10 +75,4 @@
     md.qmu.params.analysis_driver = 'stressbalance'
     md.qmu.params.evaluation_concurrency = 1
-
-#partitioning
-md.qmu.numberofpartitions = 20
-md = partitioner(md, 'package', 'chaco', 'npart', md.qmu.numberofpartitions, 'weighting', 'on')
-md.qmu.vpartition = md.qmu.vpartition - 1
-md.qmu.isdakota = 1
 
 md.stressbalance.reltol = 10**-5  #tighten for qmu analyses
Index: /issm/trunk-jpl/test/NightlyRun/test418.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test418.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test418.py	(revision 25010)
@@ -22,7 +22,7 @@
 
 #partitioning
-md.qmu.numberofpartitions = 100
+npart = 100
 
-# Partitioner seamd to generate the following message,
+# Partitioner seamed to generate the following message,
 #
 #	corrupted size vs. prev_size
@@ -36,11 +36,10 @@
 # - Run valgrind and fix the above
 #
-md = partitioner(md, 'package', 'chaco', 'npart', md.qmu.numberofpartitions)
-md.qmu.vpartition = md.qmu.vpartition - 1
+partition = partitioner(md, 'package', 'chaco', 'npart', npart) - 1
 
 vector = np.arange(1, 1 + md.mesh.numberofvertices, 1).reshape(-1, 1)
 # double check this before committing:
-vector_on_partition = AreaAverageOntoPartition(md, vector)
-vector_on_nodes = vector_on_partition[md.qmu.vpartition]
+vector_on_partition = AreaAverageOntoPartition(md, vector, partition)
+vector_on_nodes = vector_on_partition[partition + 1]
 
 field_names = ['vector_on_nodes']
Index: /issm/trunk-jpl/test/NightlyRun/test420.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test420.m	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test420.m	(revision 25010)
@@ -48,5 +48,5 @@
 
 %test on thickness
-h=zeros(part,1);
+h=zeros(npart,1);
 for i=1:npart,
 	h(i)=md.qmu.results.dresp_out(i).mean;
Index: /issm/trunk-jpl/test/NightlyRun/test420.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test420.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test420.py	(revision 25010)
@@ -17,7 +17,6 @@
 
 #partitioning
-md.qmu.numberofpartitions = 10
-md = partitioner(md, 'package', 'chaco', 'npart', md.qmu.numberofpartitions)
-md.qmu.vpartition = md.qmu.vpartition - 1
+npart = 10
+partition = partitioner(md, 'package', 'chaco', 'npart', npart) - 1
 md.qmu.isdakota = 1
 
@@ -38,5 +37,5 @@
 md.qmu.responses.MaxVel = response_function.response_function(
     'descriptor', 'scaled_Thickness',
-    'partition', md.qmu.vpartition
+    'partition', partition
     )
 
@@ -65,10 +64,10 @@
 
 #test on thickness
-h = np.zeros((md.qmu.numberofpartitions, ))
-for i in range(md.qmu.numberofpartitions):
+h = np.zeros(npart)
+for i in range(npart):
     h[i] = md.qmu.results.dresp_out[i].mean
 
 #project onto grid
-thickness = h[(md.qmu.vpartition).flatten()]
+thickness = h[(md.qmu.vpartition + 1).flatten()]
 
 #Fields and tolerances to track changes
Index: /issm/trunk-jpl/test/NightlyRun/test440.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test440.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test440.py	(revision 25010)
@@ -18,7 +18,6 @@
 
 #partitioning
-md.qmu.numberofpartitions = md.mesh.numberofvertices
-md = partitioner(md, 'package', 'linear')
-md.qmu.vpartition = md.qmu.vpartition - 1
+npart = md.mesh.numberofvertices
+partition = partitioner(md, 'package', 'linear', 'npart', npart) - 1
 md.qmu.isdakota = 1
 
@@ -39,5 +38,5 @@
 md.qmu.responses.MaxVel = response_function.response_function(
     'descriptor', 'scaled_Thickness',
-    'partition', md.qmu.vpartition
+    'partition', partition
     )
 
@@ -66,10 +65,10 @@
 
 #test on thickness
-h = np.zeros(md.qmu.numberofpartitions)
-for i in range(md.qmu.numberofpartitions):
+h = np.zeros(npart)
+for i in range(npart):
     h[i] = md.qmu.results.dresp_out[i].mean
 
 #project onto grid
-thickness = h[md.qmu.vpartition]
+thickness = h[partition]
 
 #Fields and tolerances to track changes
Index: /issm/trunk-jpl/test/NightlyRun/test444.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test444.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test444.py	(revision 25010)
@@ -66,7 +66,6 @@
 
 #partitioning
-md.qmu.numberofpartitions = 10
-md = partitioner(md, 'package', 'chaco', 'npart', md.qmu.numberofpartitions, 'weighting', 'on')
-md.qmu.vpartition = md.qmu.vpartition - 1
+npart = 10
+partition = partitioner(md, 'package', 'chaco', 'npart', npart, 'weighting', 'on') - 1
 md.qmu.isdakota = 1
 
@@ -74,7 +73,7 @@
 md.qmu.variables.drag_coefficient = normal_uncertain.normal_uncertain(
     'descriptor', 'scaled_BasalforcingsFloatingiceMeltingRate',
-    'mean', np.ones(md.qmu.numberofpartitions),
-    'stddev', .1 * np.ones(md.qmu.numberofpartitions),
-    'partition', md.qmu.vpartition
+    'mean', np.ones(npart),
+    'stddev', .1 * np.ones(npart),
+    'partition', partition
     )
 
@@ -110,10 +109,4 @@
     md.qmu.params.evaluation_concurrency = 1
 
-#partitioning
-md.qmu.numberofpartitions = 10
-md = partitioner(md, 'package', 'chaco', 'npart', md.qmu.numberofpartitions, 'weighting', 'on')
-md.qmu.vpartition = md.qmu.vpartition - 1
-md.qmu.isdakota = 1
-
 md.stressbalance.reltol = 10**-5  #tighten for qmu analyses
 
Index: /issm/trunk-jpl/test/NightlyRun/test445.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test445.py	(revision 25009)
+++ /issm/trunk-jpl/test/NightlyRun/test445.py	(revision 25010)
@@ -35,7 +35,6 @@
 
 #partitioning
-md.qmu.numberofpartitions = 10
-md = partitioner(md, 'package', 'chaco', 'npart', md.qmu.numberofpartitions, 'weighting', 'on')
-md.qmu.vpartition = md.qmu.vpartition - 1
+npart = 10
+partitioner = partitioner(md, 'package', 'chaco', 'npart', npart, 'weighting', 'on') - 1
 md.qmu.isdakota = 1
 
@@ -43,13 +42,13 @@
 md.qmu.variables.neff = normal_uncertain.normal_uncertain(
     'descriptor', 'scaled_FrictionEffectivePressure',
-    'mean', np.ones(md.qmu.numberofpartitions),
-    'stddev', .05 * np.ones(md.qmu.numberofpartitions),
-    'partition', md.qmu.vpartition
+    'mean', np.ones(npart),
+    'stddev', .05 * npart),
+    'partition', partition
     )
 md.qmu.variables.geoflux = normal_uncertain.normal_uncertain(
     'descriptor', 'scaled_BasalforcingsGeothermalflux',
-    'mean', np.ones(md.qmu.numberofpartitions),
-    'stddev', .05 * np.ones(md.qmu.numberofpartitions),
-    'partition', md.qmu.vpartition
+    'mean', np.ones(npart),
+    'stddev', .05 * np.ones(npart),
+    'partition', partition
     )
 
