Index: /issm/trunk/src/c/Container/Vertices.cpp
===================================================================
--- /issm/trunk/src/c/Container/Vertices.cpp	(revision 6230)
+++ /issm/trunk/src/c/Container/Vertices.cpp	(revision 6231)
@@ -43,31 +43,4 @@
 
 /*Numerics management*/
-/*FUNCTION Vertices::CreatePartitioningVector{{{1*/
-void  Vertices::CreatePartitioningVector(Vec* ppartition,int numberofobjects){
-
-	int i;
-
-	/*output: */
-	Vec partition=NULL;
-
-	/*Create partition vector: */
-	partition=NewVec(numberofobjects);
-
-	/*Go through all objects, and ask each object to plug its doflist in 
-	 * partition: */
-
-	for(i=0;i<this->Size();i++){
-		Vertex* vertex=(Vertex*)this->GetObjectByOffset(i);
-		vertex->CreatePartition(partition);
-	}
-
-	/*Assemble the petsc vector: */
-	VecAssemblyBegin(partition);
-	VecAssemblyEnd(partition);
-
-	/*Assign output pointers: */
-	*ppartition=partition;
-}
-/*}}}*/
 /*FUNCTION Vertices::DistributeDofs{{{1*/
 void  Vertices::DistributeDofs(int numberofobjects,int numberofdofsperobject){
Index: /issm/trunk/src/c/Container/Vertices.h
===================================================================
--- /issm/trunk/src/c/Container/Vertices.h	(revision 6230)
+++ /issm/trunk/src/c/Container/Vertices.h	(revision 6231)
@@ -26,5 +26,4 @@
 		/*}}}*/
 		/*numerics: {{{1*/
-		void  CreatePartitioningVector(Vec* ppartition,int numobjects);
 		void  DistributeDofs(int numberofnodes,int numdofspernode);
 		void  FlagClones(int numberofnodes);
Index: /issm/trunk/src/c/modules/AverageOntoPartitionx/AverageOntoPartitionx.cpp
===================================================================
--- /issm/trunk/src/c/modules/AverageOntoPartitionx/AverageOntoPartitionx.cpp	(revision 6230)
+++ /issm/trunk/src/c/modules/AverageOntoPartitionx/AverageOntoPartitionx.cpp	(revision 6231)
@@ -19,5 +19,5 @@
 
 			
-void AverageOntoPartitionx(double** paverage, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,double* vertex_response,Vec vertex_cluster_partition){
+void AverageOntoPartitionx(double** paverage, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,double* vertex_response){
 
 	int     i,j,k;
@@ -25,7 +25,5 @@
 
 	int     qmu_npart;
-	double *qmu_part_nocluster = NULL;
 	double *qmu_part  = NULL;
-	double* partition=NULL; //serial version of vertex_cluster_partition
 	int     numberofvertices;
 
@@ -36,7 +34,6 @@
 	double* average=NULL;
 
-	/*First, recover qmu partition of vertices. Careful, do not confuse with vertex_cluster_partition, which is just used to distribute vertices 
-	 * onto cpus in a cluter: */
-	if(!parameters->FindParam(&qmu_part_nocluster,&dummy,QmuPartEnum))ISSMERROR(" could not find qmu partition vector");
+	/*First, recover qmu partition of vertices: */
+	if(!parameters->FindParam(&qmu_part,&dummy,QmuPartEnum))ISSMERROR(" could not find qmu partition vector");
 
 	/*Some parameters: */
@@ -44,14 +41,5 @@
 	parameters->FindParam(&qmu_npart,QmuNPartEnum);
 
-	/*serialize vertex_cluster_partition: */
-	VecToMPISerial(&partition,vertex_cluster_partition);
-
-	/*Use partition vector to repartition qmu_part_nocluster, which is ordered for use on a serial machine, not a cluster: */
-	qmu_part=(double*)xmalloc(numberofvertices*sizeof(double));
-	for(k=0;k<numberofvertices;k++) qmu_part[(int)(partition[k])]=qmu_part_nocluster[k];
-
-	/*Ok, now we have a qmu partition (into separate areas) that takes into account the parallelism of the cluster. 
-	 *We want to use this vector, and the vector of responses, to average onto the separate areas. The result will 
-	 be a npart sized vector. */
+	/*average onto the separate areas. The result will be a npart sized vector. */
 
 	/*allocate: */
@@ -80,6 +68,4 @@
 
 	/*Free ressources:*/
-	xfree((void**)&partition);
-	xfree((void**)&qmu_part_nocluster);
 	xfree((void**)&qmu_part);
 	VecFree(&partition_contributions);
Index: /issm/trunk/src/c/modules/AverageOntoPartitionx/AverageOntoPartitionx.h
===================================================================
--- /issm/trunk/src/c/modules/AverageOntoPartitionx/AverageOntoPartitionx.h	(revision 6230)
+++ /issm/trunk/src/c/modules/AverageOntoPartitionx/AverageOntoPartitionx.h	(revision 6231)
@@ -9,5 +9,5 @@
 #include "../../Container/Container.h"
 
-void AverageOntoPartitionx(double** average, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,double* vertex_response,Vec vertex_cluster_partition);
+void AverageOntoPartitionx(double** average, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,double* vertex_response);
 
 #endif  /* _AVERAGEONTOPARTITIONXX_H */
Index: /issm/trunk/src/c/modules/DakotaResponsesx/DakotaResponsesx.cpp
===================================================================
--- /issm/trunk/src/c/modules/DakotaResponsesx/DakotaResponsesx.cpp	(revision 6230)
+++ /issm/trunk/src/c/modules/DakotaResponsesx/DakotaResponsesx.cpp	(revision 6231)
@@ -18,5 +18,5 @@
 
 
-void DakotaResponsesx(double* d_responses,Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads,Materials* materials, Parameters* parameters,Vec vertex_cluster_partition,char** responses_descriptors,int numresponsedescriptors,int d_numresponses){
+void DakotaResponsesx(double* d_responses,Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads,Materials* materials, Parameters* parameters,char** responses_descriptors,int numresponsedescriptors,int d_numresponses){
 
 	int        i,j,k;
@@ -54,5 +54,5 @@
 
 			/*Now, average it onto the partition grids: */
-			AverageOntoPartitionx(&qmu_response,elements,nodes,vertices,loads,materials,parameters,vertex_response,vertex_cluster_partition);
+			AverageOntoPartitionx(&qmu_response,elements,nodes,vertices,loads,materials,parameters,vertex_response);
 
 			/*Copy onto our dakota responses: */
Index: /issm/trunk/src/c/modules/DakotaResponsesx/DakotaResponsesx.h
===================================================================
--- /issm/trunk/src/c/modules/DakotaResponsesx/DakotaResponsesx.h	(revision 6230)
+++ /issm/trunk/src/c/modules/DakotaResponsesx/DakotaResponsesx.h	(revision 6231)
@@ -9,5 +9,5 @@
 #include "../../Container/Container.h"
 
-void DakotaResponsesx(double* d_responses,Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads,Materials* materials, Parameters* parameters,Vec vertex_cluster_partition,char** responses_descriptors,int numresponsedescriptors,int d_numresponses);
+void DakotaResponsesx(double* d_responses,Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads,Materials* materials, Parameters* parameters,char** responses_descriptors,int numresponsedescriptors,int d_numresponses);
 
 #endif  /* _DAKOTARESPONSESXX_H */
Index: /issm/trunk/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp
===================================================================
--- /issm/trunk/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp	(revision 6230)
+++ /issm/trunk/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp	(revision 6231)
@@ -10,5 +10,5 @@
 #include "../modules.h"
 
-void  InputUpdateFromDakotax(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials*  materials,Parameters* parameters,Vec vec_partition,double* variables,char* *variables_descriptors,int numvariables){
+void  InputUpdateFromDakotax(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials*  materials,Parameters* parameters,double* variables,char* *variables_descriptors,int numvariables){
 
 	int     i,j,k;
@@ -18,26 +18,16 @@
 	int     numberofvertices;
 	int     qmu_npart;
-	double *qmu_part_serial = NULL;
 	double *qmu_part  = NULL;
 
 	double* distributed_values=NULL;
 	double* parameter=NULL;
-	double* parameter_serial=NULL;
 	char*   descriptor=NULL;
 	char    root[50]; //root name of variable, ex: DragCoefficent, RhoIce, etc ...
-	double* partition=NULL; //serial version of vec_partition
 
 	/*retrieve parameters: */
 	parameters->FindParam(&verbose,VerboseEnum);
 	parameters->FindParam(&qmu_npart,QmuNPartEnum);
-	parameters->FindParam(&qmu_part_serial,&dummy,QmuPartEnum);
+	parameters->FindParam(&qmu_part,&dummy,QmuPartEnum);
 	numberofvertices=vertices->NumberOfVertices();
-
-	/*serialize partition vector: */
-	VecToMPISerial(&partition,vec_partition);
-
-	/*Use partition vector to repartition qmu_part, which is ordered in a serial way: */
-	qmu_part=(double*)xmalloc(numberofvertices*sizeof(double));
-	for(k=0;k<numberofvertices;k++) qmu_part[(int)(partition[k])]=qmu_part_serial[k];
 
 	/*Go through all dakota descriptors, ex: "rho_ice","thermal_conductivity","thickness1","thickness2", etc ..., and 
@@ -62,12 +52,8 @@
 
 			/*Now, pick up the parameter corresponding to root: */
-			if(!parameters->FindParam(&parameter_serial,NULL,StringToEnum(root))){
+			if(!parameters->FindParam(&parameter,NULL,StringToEnum(root))){
 				ISSMERROR("%s%s"," could not find Qmu parameter: ",root);
 			}
 
-			/*repartition parameter: */
-			parameter=(double*)xmalloc(numberofvertices*sizeof(double));
-			for(k=0;k<numberofvertices;k++) parameter[(int)(partition[k])]=parameter_serial[k];
-			
 			/*We've got the parameter, we need to update it using qmu_part (a partitioning vector), and the distributed_values: */
 			for(k=0;k<numberofvertices;k++){
@@ -95,5 +81,4 @@
 			/*Free allocations: */
 			xfree((void**)&parameter);
-			xfree((void**)&parameter_serial);
 			xfree((void**)&distributed_values);
 		}
@@ -111,7 +96,5 @@
 
 	/*Free ressources:*/
-	xfree((void**)&partition);
 	xfree((void**)&qmu_part);
-	xfree((void**)&qmu_part_serial);
 
 }
Index: /issm/trunk/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.h
===================================================================
--- /issm/trunk/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.h	(revision 6230)
+++ /issm/trunk/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.h	(revision 6231)
@@ -9,5 +9,5 @@
 #include "../../Container/Container.h"
 
-void  InputUpdateFromDakotax(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials*  materials,Parameters* parameters,Vec partition,double* variables,char* *variables_descriptors,int numvariables);
+void  InputUpdateFromDakotax(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials*  materials,Parameters* parameters,double* variables,char* *variables_descriptors,int numvariables);
 
 #endif  /* _INPUTUPDATEFROMDAKOTAXX_H */
Index: /issm/trunk/src/c/modules/Qmux/SpawnCoreParallel.cpp
===================================================================
--- /issm/trunk/src/c/modules/Qmux/SpawnCoreParallel.cpp	(revision 6230)
+++ /issm/trunk/src/c/modules/Qmux/SpawnCoreParallel.cpp	(revision 6231)
@@ -65,5 +65,5 @@
 
 	/*Modify core inputs in objects contained in femmodel, to reflect the dakota variables inputs: */
-	InputUpdateFromDakotax(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,femmodel->partition,d_variables,d_variables_descriptors,d_numvariables);
+	InputUpdateFromDakotax(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,d_variables,d_variables_descriptors,d_numvariables);
 
 	/*Determine solution sequence: */
@@ -77,5 +77,5 @@
 	/*compute responses: */
 	if(verbose)_printf_("compute dakota responses:\n");
-	DakotaResponsesx(d_responses,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,femmodel->partition,responses_descriptors,numresponsedescriptors,d_numresponses);
+	DakotaResponsesx(d_responses,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,responses_descriptors,numresponsedescriptors,d_numresponses);
 	
 	/*Free ressources:*/
Index: /issm/trunk/src/c/modules/VerticesDofx/VerticesDofx.cpp
===================================================================
--- /issm/trunk/src/c/modules/VerticesDofx/VerticesDofx.cpp	(revision 6230)
+++ /issm/trunk/src/c/modules/VerticesDofx/VerticesDofx.cpp	(revision 6231)
@@ -1,4 +1,4 @@
 /*!\file VerticesDofx
- * \brief: establish degrees of freedom for all vertices, and return partitioning vector. Do only once.
+ * \brief: establish degrees of freedom for all vertices: */
  */
 
@@ -10,5 +10,5 @@
 #include "../../EnumDefinitions/EnumDefinitions.h"
 
-void VerticesDofx( Vec* ppartition, Vec* ptpartition, Vertices* vertices, Parameters* parameters) {
+void VerticesDofx( Vertices* vertices, Parameters* parameters) {
 
 	int i;
@@ -20,10 +20,4 @@
 	/*intermediary: */
 	int  numberofvertices;
-
-	/*output: */
-	Vec partition=NULL;
-	Vec tpartition=NULL;
-
-	if(*ppartition) return; //do not create partition vector twice! we only have on set of vertices
 
 	/*figure out how many vertices we have: */
@@ -38,13 +32,3 @@
 	vertices->DistributeDofs(numberofvertices,1); //only 1 dof per vertex.
 
-	/*Now that dofs have been distributed, create partitioning vector and its transpose: */
-	vertices->CreatePartitioningVector(&partition,numberofvertices);
-
-	/*Transpose partition into tpartition: */
-	VecTranspose(&tpartition,partition);
-
-	/*Assign output pointers: */
-	*ppartition=partition;
-	*ptpartition=tpartition;
-	
 }
Index: /issm/trunk/src/c/modules/VerticesDofx/VerticesDofx.h
===================================================================
--- /issm/trunk/src/c/modules/VerticesDofx/VerticesDofx.h	(revision 6230)
+++ /issm/trunk/src/c/modules/VerticesDofx/VerticesDofx.h	(revision 6231)
@@ -10,5 +10,5 @@
 
 /* local prototypes: */
-void VerticesDofx( Vec* partition, Vec* ptpartition,Vertices* vertices, Parameters* parameters);
+void VerticesDofx( Vertices* vertices, Parameters* parameters);
 
 #endif  /* _VERTICESDOFX_H */
Index: /issm/trunk/src/c/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 6230)
+++ /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 6231)
@@ -3961,4 +3961,12 @@
 }
 /*}}}*/
+/*FUNCTION Penta::GetSidList{{{1*/
+void  Penta::GetSidList(int* sidlist){
+
+	int i;
+	for(i=0;i<NUMVERTICES;i++) doflist[i]=nodes[i]->GetSidList();
+
+}
+/*}}}*/
 /*FUNCTION Penta::GetElementType {{{1*/
 int Penta::GetElementType(){
Index: /issm/trunk/src/c/objects/Elements/Penta.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.h	(revision 6230)
+++ /issm/trunk/src/c/objects/Elements/Penta.h	(revision 6231)
@@ -184,4 +184,5 @@
 		void	  GetDofList(int** pdoflist,int approximation_enum,int setenum);
 		void	  GetDofList1(int* doflist);
+		void      GetSidList(int* sidlist);
 		int     GetElementType(void);
 		void    GetParameterListOnVertices(double* pvalue,int enumtype);
Index: /issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 6230)
+++ /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 6231)
@@ -470,5 +470,5 @@
 			/*Get values on the 3 vertices*/
 			for (i=0;i<3;i++){
-				values[i]=vector[this->nodes[i]->GetVertexDof()];
+				values[i]=vector[this->nodes[i]->GetSidList()]; //careful, vector of values here is not parallel distributed, but serial distributed (from a serial Dakota core!)
 			}
 
@@ -696,5 +696,5 @@
 
 	/*Figure out the average for this element: */
-	this->GetDofList1(&offset[0]);
+	this->GetSidList(&offset[0]);
 	mean=0;
 	for(i=0;i<NUMVERTICES;i++){
@@ -4561,4 +4561,12 @@
 }
 /*}}}*/
+/*FUNCTION Tria::GetSidList {{{1*/
+void  Tria::GetSidList(int* sidlist){
+
+	int i;
+	for(i=0;i<NUMVERTICES;i++) doflist[i]=nodes[i]->GetSidList();
+
+}
+/*}}}*/
 /*FUNCTION Tria::GetParameterListOnVertices(double* pvalue,int enumtype) {{{1*/
 void Tria::GetParameterListOnVertices(double* pvalue,int enumtype){
Index: /issm/trunk/src/c/objects/Elements/Tria.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.h	(revision 6230)
+++ /issm/trunk/src/c/objects/Elements/Tria.h	(revision 6231)
@@ -165,4 +165,5 @@
 		void	  GetDofList(int** pdoflist,int approximation_enum,int setenum);
 		void	  GetDofList1(int* doflist);
+		void      GetSidList(int* sidlist);
 		void    GetParameterListOnVertices(double* pvalue,int enumtype);
 		void    GetParameterListOnVertices(double* pvalue,int enumtype,double defaultvalue);
Index: /issm/trunk/src/c/objects/FemModel.cpp
===================================================================
--- /issm/trunk/src/c/objects/FemModel.cpp	(revision 6230)
+++ /issm/trunk/src/c/objects/FemModel.cpp	(revision 6231)
@@ -32,6 +32,4 @@
 	this->analysis_counter=nummodels-1; //point to last analysis_type carried out.
 	this->results=new DataSet(); //not initialized by CreateDataSets
-	this->partition=NULL;
-	this->tpartition=NULL;
 	
 	/*Dynamically allocate whatever is a list of length nummodels: */
@@ -55,6 +53,8 @@
 		this->SetCurrentConfiguration(analysis_type);
 	
-		_printf_("      create vertex degrees of freedom\n");
-		VerticesDofx(&partition,&tpartition,vertices,parameters);
+		if(i==0){
+			_printf_("      create vertex degrees of freedom\n");
+			VerticesDofx(vertices,parameters); //only call once, we only have one set of vertices
+		}
 
 		_printf_("      resolve node constraints\n");
@@ -91,6 +91,4 @@
 	delete parameters;
 	delete results;
-	VecFree(&partition);
-	VecFree(&tpartition);
 
 	for(i=0;i<nummodels;i++){
Index: /issm/trunk/src/c/objects/FemModel.h
===================================================================
--- /issm/trunk/src/c/objects/FemModel.h	(revision 6230)
+++ /issm/trunk/src/c/objects/FemModel.h	(revision 6231)
@@ -36,7 +36,4 @@
 		DataSet*            results; //results that cannot be fit into the elements (such as one time constants, arrays, strings, etc ...)
 
-		Vec                 partition; //one partitioning for all elements
-		Vec                 tpartition;
-		
 		//multiple  sets of matrices/vectors for each analysis_type. m stands for multiple
 		NodeSets**           m_nodesets; //boundary conditions dof sets
Index: /issm/trunk/src/c/objects/Materials/Matice.cpp
===================================================================
--- /issm/trunk/src/c/objects/Materials/Matice.cpp	(revision 6230)
+++ /issm/trunk/src/c/objects/Materials/Matice.cpp	(revision 6231)
@@ -626,5 +626,5 @@
 				case TriaEnum:
 					double values[3];
-					for (int i=0;i<3;i++) values[i]=vector[((Tria*)element)->nodes[i]->GetVertexDof()];
+					for (int i=0;i<3;i++) values[i]=vector[((Tria*)element)->nodes[i]->GetSidList()]; //use sid list, to index into serial oriented vector 
 					this->inputs->AddInput(new TriaVertexInput(name,values));
 					return;
Index: /issm/trunk/src/c/objects/Node.cpp
===================================================================
--- /issm/trunk/src/c/objects/Node.cpp	(revision 6230)
+++ /issm/trunk/src/c/objects/Node.cpp	(revision 6231)
@@ -395,4 +395,14 @@
 }
 /*}}}*/
+/*FUNCTION Node::GetSidList{{{1*/
+int  Node::GetSidList(void){
+
+	Vertex* vertex=NULL;
+
+	vertex=(Vertex*)this->hvertex->delivers();
+
+	return vertex->sid;
+}
+/*}}}*/
 /*FUNCTION Node::GetLocalDofList{{{1*/
 void  Node::GetLocalDofList(int* outdoflist,int approximation_enum,int setenum){
@@ -946,9 +956,2 @@
 }
 /*}}}*/
-/*FUNCTION Node::CreatePartition{{{1*/
-void  Node::CreatePartition(Vec partition){ 
-
-	ISSMERROR(" not supported yet!");
-	return;
-}
-/*}}}*/
Index: /issm/trunk/src/c/objects/Node.h
===================================================================
--- /issm/trunk/src/c/objects/Node.h	(revision 6230)
+++ /issm/trunk/src/c/objects/Node.h	(revision 6231)
@@ -84,4 +84,5 @@
 		void  GetLocalDofList(int* poutdoflist,int approximation_enum,int setenum);
 		int   GetDofList1(void);
+		int   GetSidList(void);
 		double GetX();
 		double GetY();
@@ -100,5 +101,4 @@
 		void  UpdateCloneDofs(int* alltruerows,int ncols,int setenum);
 		void  SetClone(int* minranks);
-		void  CreatePartition(Vec partition);
 		/*}}}*/
 };
Index: /issm/trunk/src/c/objects/Vertex.cpp
===================================================================
--- /issm/trunk/src/c/objects/Vertex.cpp	(revision 6230)
+++ /issm/trunk/src/c/objects/Vertex.cpp	(revision 6231)
@@ -255,17 +255,4 @@
 }
 /*}}}*/
-/*FUNCTION Vertex::CreatePartition{{{1*/
-void  Vertex::CreatePartition(Vec partition){ 
-
-	double   value;
-
-	value=(double)this->dof;
-	ISSMASSERT(value>=0);
-
-	VecSetValues(partition,1,&sid,&value,INSERT_VALUES);
-
-	return;
-}
-/*}}}*/
 
 /*Vertex management: */
Index: /issm/trunk/src/c/objects/Vertex.h
===================================================================
--- /issm/trunk/src/c/objects/Vertex.h	(revision 6230)
+++ /issm/trunk/src/c/objects/Vertex.h	(revision 6231)
@@ -56,5 +56,4 @@
 		void  UpdateCloneDofs(int* allborderdofs);
 		void  SetClone(int* minranks);
-		void  CreatePartition(Vec partition);
 		/*}}}*/
 		/*Vertex management: {{{1*/
Index: /issm/trunk/src/m/solutions/NewFemModel.m
===================================================================
--- /issm/trunk/src/m/solutions/NewFemModel.m	(revision 6230)
+++ /issm/trunk/src/m/solutions/NewFemModel.m	(revision 6231)
@@ -31,7 +31,7 @@
 		femmodel=SetCurrentConfiguration(femmodel,analysis_type);
 
-		displaystring(md.verbose,'%s','      generating vertices degrees of freedom');
-		if ~isfield(femmodel,'part'),
-			[femmodel.vertices,femmodel.part,femmodel.tpart]=VerticesDof(femmodel.vertices, femmodel.parameters); %do not create partition vector twice! we only have one set of vertices!
+		if i==1, %only  create vertices dofs once!
+			displaystring(md.verbose,'%s','      generating vertices degrees of freedom');
+			femmodel.vertices=VerticesDof(femmodel.vertices, femmodel.parameters); 
 		end
 
Index: /issm/trunk/src/m/solutions/SpawnCore.m
===================================================================
--- /issm/trunk/src/m/solutions/SpawnCore.m	(revision 6230)
+++ /issm/trunk/src/m/solutions/SpawnCore.m	(revision 6231)
@@ -15,5 +15,5 @@
 
 %first update the inputs to the femmodel using the variables provided to us by dakota.
-[femmodel.elements femmodel.loads femmodel.materials]=InputUpdateFromDakota(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,femmodel.part,variables,variabledescriptors);
+[femmodel.elements femmodel.loads femmodel.materials]=InputUpdateFromDakota(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,variables,variabledescriptors);
 
 %now run the core solution
@@ -23,3 +23,3 @@
 
 %now process the results to get response function values
-responses=DakotaResponses(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,femmodel.part,responsedescriptors);
+responses=DakotaResponses(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,responsedescriptors);
Index: /issm/trunk/src/mex/DakotaResponses/DakotaResponses.cpp
===================================================================
--- /issm/trunk/src/mex/DakotaResponses/DakotaResponses.cpp	(revision 6230)
+++ /issm/trunk/src/mex/DakotaResponses/DakotaResponses.cpp	(revision 6231)
@@ -16,5 +16,4 @@
 	Materials*  materials=NULL;
 	Parameters* parameters=NULL;
-	Vec         node_partition=NULL;
 	double*     responses=NULL;
 	char**      responses_descriptors=NULL;
@@ -38,8 +37,4 @@
 	FetchData((DataSet**)&materials,MATERIALSIN);
 	FetchParams(&parameters,PARAMETERSIN);
-	FetchData(&node_partition,NODEPARTITION);
-
-	/*shit partition by 1 (matlab to c indexing): */
-	VecShift(node_partition,-1.0); 
 
 	/*number of responses: */
@@ -66,5 +61,5 @@
 	
 	/*!Generate internal degree of freedom numbers: */
-	DakotaResponsesx(responses,elements,nodes, vertices,loads,materials, parameters, node_partition,responses_descriptors,numresponsedescriptors,numresponses);
+	DakotaResponsesx(responses,elements,nodes, vertices,loads,materials, parameters, responses_descriptors,numresponsedescriptors,numresponses);
 
 	/*write output datasets: */
Index: /issm/trunk/src/mex/DakotaResponses/DakotaResponses.h
===================================================================
--- /issm/trunk/src/mex/DakotaResponses/DakotaResponses.h	(revision 6230)
+++ /issm/trunk/src/mex/DakotaResponses/DakotaResponses.h	(revision 6231)
@@ -24,6 +24,5 @@
 #define MATERIALSIN (mxArray*)prhs[4]
 #define PARAMETERSIN (mxArray*)prhs[5]
-#define NODEPARTITION (mxArray*)prhs[6]
-#define RESPONSESDESCRIPTORS (mxArray*)prhs[7]
+#define RESPONSESDESCRIPTORS (mxArray*)prhs[6]
 
 /* serial output macros: */
@@ -34,5 +33,5 @@
 #define NLHS  1
 #undef NRHS
-#define NRHS  8
+#define NRHS  7
 
 #endif  /* _DAKOTARESPONSES_H */
Index: /issm/trunk/src/mex/InputUpdateFromDakota/InputUpdateFromDakota.cpp
===================================================================
--- /issm/trunk/src/mex/InputUpdateFromDakota/InputUpdateFromDakota.cpp	(revision 6230)
+++ /issm/trunk/src/mex/InputUpdateFromDakota/InputUpdateFromDakota.cpp	(revision 6231)
@@ -22,5 +22,4 @@
 	int         numvariables;
 	mxArray*    pfield=NULL;
-	Vec         partition=NULL;
 
 	/*Boot module: */
@@ -37,6 +36,4 @@
 	FetchData((DataSet**)&materials,MATERIALSIN);
 	FetchParams(&parameters,PARAMETERSIN);
-	FetchData(&partition,PARTITION);
-	VecShift(partition,-1.0); //get partition onto "c" indexing
 	/*dakota input: */
 	FetchData(&variables,&numvariables,VARIABLES);
@@ -60,5 +57,5 @@
 
 	/*!Generate internal degree of freedom numbers: */
-	InputUpdateFromDakotax(elements,nodes,vertices,loads, materials,parameters,partition,variables,variables_descriptors,numvariables);
+	InputUpdateFromDakotax(elements,nodes,vertices,loads, materials,parameters,variables,variables_descriptors,numvariables);
 
 	/*write output datasets: */
@@ -74,5 +71,4 @@
 	delete materials;
 	delete parameters;
-	VecFree(&partition);
 
 	xfree((void**)&variables);
Index: /issm/trunk/src/mex/InputUpdateFromDakota/InputUpdateFromDakota.h
===================================================================
--- /issm/trunk/src/mex/InputUpdateFromDakota/InputUpdateFromDakota.h	(revision 6230)
+++ /issm/trunk/src/mex/InputUpdateFromDakota/InputUpdateFromDakota.h	(revision 6231)
@@ -24,7 +24,6 @@
 #define MATERIALSIN (mxArray*)prhs[4]
 #define PARAMETERSIN (mxArray*)prhs[5]
-#define PARTITION (mxArray*)prhs[6]
-#define VARIABLES (mxArray*)prhs[7]
-#define VARIABLESDESCRIPTORS (mxArray*)prhs[8]
+#define VARIABLES (mxArray*)prhs[6]
+#define VARIABLESDESCRIPTORS (mxArray*)prhs[7]
 
 /* serial output macros: */
@@ -37,5 +36,5 @@
 #define NLHS  3
 #undef NRHS
-#define NRHS  9
+#define NRHS  8
 
 #endif  /* _UPDATEINPUTSFROMDAKOTA_H */
Index: /issm/trunk/src/mex/VerticesDof/VerticesDof.cpp
===================================================================
--- /issm/trunk/src/mex/VerticesDof/VerticesDof.cpp	(revision 6230)
+++ /issm/trunk/src/mex/VerticesDof/VerticesDof.cpp	(revision 6231)
@@ -11,8 +11,4 @@
 	Parameters* parameters=NULL;
 
-	/* output datasets: */
-	Vec partition=NULL;
-	Vec tpartition=NULL;
-
 	/*Boot module: */
 	MODULEBOOT();
@@ -26,20 +22,12 @@
 
 	/*!Generate internal degree of freedom numbers: */
-	VerticesDofx(&partition, &tpartition, vertices, parameters); 
-
-	/*partition and tpartition should be incremented by 1: */
-	VecShift(partition,1.0); //matlab indexing starts at 1.
-	VecShift(tpartition,1.0);
+	VerticesDofx(vertices, parameters); 
 
 	/*write output datasets: */
 	WriteData(VERTICES,vertices);
-	WriteData(PARTITION,partition);
-	WriteData(TPARTITION,tpartition);
 
 	/*Free ressources: */
 	delete vertices;
 	delete parameters;
-	VecFree(&partition);
-	VecFree(&tpartition);
 
 	/*end module: */
@@ -50,5 +38,5 @@
 {
 	_printf_("\n");
-	_printf_("   usage: [vertices,part,tpart] = %s(vertices,parameters);\n",__FUNCT__);
+	_printf_("   usage: [vertices] = %s(vertices,parameters);\n",__FUNCT__);
 	_printf_("\n");
 }
Index: /issm/trunk/src/mex/VerticesDof/VerticesDof.h
===================================================================
--- /issm/trunk/src/mex/VerticesDof/VerticesDof.h	(revision 6230)
+++ /issm/trunk/src/mex/VerticesDof/VerticesDof.h	(revision 6231)
@@ -22,10 +22,8 @@
 /* serial output macros: */
 #define VERTICES (mxArray**)&plhs[0]
-#define PARTITION (mxArray**)&plhs[1]
-#define TPARTITION (mxArray**)&plhs[2]
 
 /* serial arg counts: */
 #undef NLHS
-#define NLHS  3
+#define NLHS  1
 #undef NRHS
 #define NRHS  2
