Index: /issm/trunk/src/c/Container/DataSet.cpp
===================================================================
--- /issm/trunk/src/c/Container/DataSet.cpp	(revision 6410)
+++ /issm/trunk/src/c/Container/DataSet.cpp	(revision 6411)
@@ -536,63 +536,2 @@
 }
 /*}}}*/
-/*FUNCTION DataSet::Configure{{{1*/
-void DataSet::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){
-
-	vector<Object*>::iterator object;
-	Element* element=NULL;
-	Load* load=NULL;
-	Node* node=NULL;
-	Material* material=NULL;
-
-	for ( object=objects.begin() ; object < objects.end(); object++ ){
-
-		if(EnumIsElement((*object)->Enum())){
-
-			element=(Element*)(*object);
-			element->Configure(elements,loads,nodes,materials,parameters);
-		}
-		if(EnumIsLoad((*object)->Enum())){
-			load=(Load*)(*object);
-			load->Configure(elements,loads,nodes,vertices,materials,parameters);
-		}
-
-		if((*object)->Enum()==NodeEnum){
-			node=(Node*)(*object);
-			node->Configure(nodes,vertices);
-		}
-		if (EnumIsMaterial((*object)->Enum())){
-			material=(Material*)(*object);
-			material->Configure(elements);
-		}
-	}
-
-}
-/*}}}*/
-/*FUNCTION DataSet::SetCurrentConfiguration{{{1*/
-void DataSet::SetCurrentConfiguration(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){
-
-	vector<Object*>::iterator object;
-	Element* element=NULL;
-	Load* load=NULL;
-	Node* node=NULL;
-
-	for ( object=objects.begin() ; object < objects.end(); object++ ){
-
-		if(EnumIsElement((*object)->Enum())){
-
-			element=(Element*)(*object);
-			element->SetCurrentConfiguration(elements,loads,nodes,materials,parameters);
-		}
-		if(EnumIsLoad((*object)->Enum())){
-			load=(Load*)(*object);
-			load->SetCurrentConfiguration(elements,loads,nodes,vertices,materials,parameters);
-		}
-
-		if((*object)->Enum()==NodeEnum){
-			node=(Node*)(*object);
-			node->SetCurrentConfiguration(nodes,vertices);
-		}
-	}
-
-}
-/*}}}*/
Index: /issm/trunk/src/c/Container/DataSet.h
===================================================================
--- /issm/trunk/src/c/Container/DataSet.h	(revision 6410)
+++ /issm/trunk/src/c/Container/DataSet.h	(revision 6411)
@@ -55,6 +55,4 @@
 		int   Size();
 		void  clear();
-		void  Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters);
-		void  SetCurrentConfiguration(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters);
 		Object* GetObjectByOffset(int offset);
 		Object* GetObjectById(int* poffset,int eid);
Index: /issm/trunk/src/c/Container/Elements.cpp
===================================================================
--- /issm/trunk/src/c/Container/Elements.cpp	(revision 6410)
+++ /issm/trunk/src/c/Container/Elements.cpp	(revision 6411)
@@ -45,11 +45,24 @@
 
 /*Object management*/
+/*FUNCTION Elements::Configure{{{1*/
+void Elements::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){
+
+	vector<Object*>::iterator object;
+	Element* element=NULL;
+
+	for ( object=objects.begin() ; object < objects.end(); object++ ){
+
+		element=(Element*)(*object);
+		element->Configure(elements,loads,nodes,materials,parameters);
+
+	}
+
+}
+/*}}}*/
 /*FUNCTION Elements::ProcessResultsUnits{{{1*/
 void Elements::ProcessResultsUnits(void){
 
-	int i;
-
 	//Process results to be output in the correct units
-	for(i=0;i<this->Size();i++){
+	for(int i=0;i<this->Size();i++){
 		Element* element=(Element*)this->GetObjectByOffset(i);
 		element->ProcessResultsUnits();
@@ -60,43 +73,8 @@
 void Elements::DeleteResults(void){
 	
-	int i;
-
-	for (i=0;i<this->Size();i++){
+	for (int i=0;i<this->Size();i++){
 		Element* element=(Element*)this->GetObjectByOffset(i);
 		element->DeleteResults();
 	}
-}
-/*}}}*/
-/*FUNCTION Elements::ToResults{{{1*/
-void Elements::ToResults(Results* results,Parameters* parameters,int step, double time){
-
-	/*output: */
-	Patch* patch=NULL;
-
-	/*I/O strategy: */
-	bool   io_gather=true; //the default
-
-	/*Recover parameters: */
-	parameters->FindParam(&io_gather,IoGatherEnum);
-
-
-	/*create patch object out of all results in this dataset: */
-	patch=this->ResultsToPatch();
-
-	/*Gather onto master cpu 0, if needed: */
-	#ifdef _PARALLEL_
-	if(io_gather)patch->MPI_Gather();
-	#endif
-	
-	/*create result object and add to results dataset:*/
-	if (patch->maxvertices && patch->maxnodes){
-		results->AddObject(new IntExternalResult(results->Size()+1,PatchVerticesEnum,patch->maxvertices,step,time));
-		results->AddObject(new IntExternalResult(results->Size()+1,PatchNodesEnum,   patch->maxnodes,step,time));
-		results->AddObject(new DoubleMatExternalResult(results->Size()+1,PatchEnum,patch->values,patch->numrows,patch->numcols,step,time));
-	}
-
-	/*Free ressources:*/
-	delete patch;
-
 }
 /*}}}*/
@@ -178,2 +156,50 @@
 }
 /*}}}*/
+/*FUNCTION Elements::SetCurrentConfiguration{{{1*/
+void Elements::SetCurrentConfiguration(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){
+
+	vector<Object*>::iterator object;
+	Element* element=NULL;
+
+	for ( object=objects.begin() ; object < objects.end(); object++ ){
+
+		element=(Element*)(*object);
+		element->SetCurrentConfiguration(elements,loads,nodes,materials,parameters);
+
+	}
+
+}
+/*}}}*/
+/*FUNCTION Elements::ToResults{{{1*/
+void Elements::ToResults(Results* results,Parameters* parameters,int step, double time){
+
+	/*output: */
+	Patch* patch=NULL;
+
+	/*I/O strategy: */
+	bool   io_gather=true; //the default
+
+	/*Recover parameters: */
+	parameters->FindParam(&io_gather,IoGatherEnum);
+
+
+	/*create patch object out of all results in this dataset: */
+	patch=this->ResultsToPatch();
+
+	/*Gather onto master cpu 0, if needed: */
+#ifdef _PARALLEL_
+	if(io_gather)patch->MPI_Gather();
+#endif
+
+	/*create result object and add to results dataset:*/
+	if (patch->maxvertices && patch->maxnodes){
+		results->AddObject(new IntExternalResult(results->Size()+1,PatchVerticesEnum,patch->maxvertices,step,time));
+		results->AddObject(new IntExternalResult(results->Size()+1,PatchNodesEnum,   patch->maxnodes,step,time));
+		results->AddObject(new DoubleMatExternalResult(results->Size()+1,PatchEnum,patch->values,patch->numrows,patch->numcols,step,time));
+	}
+
+	/*Free ressources:*/
+	delete patch;
+
+}
+/*}}}*/
Index: /issm/trunk/src/c/Container/Elements.h
===================================================================
--- /issm/trunk/src/c/Container/Elements.h	(revision 6410)
+++ /issm/trunk/src/c/Container/Elements.h	(revision 6411)
@@ -27,6 +27,8 @@
 		/*}}}*/
 		/*numerics: {{{1*/
+		void Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters);
+		void DeleteResults(void);
 		void ProcessResultsUnits(void);
-		void DeleteResults(void);
+		void SetCurrentConfiguration(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters);
 		void ToResults(Results* results,Parameters* parameters,int step, double time);
 		Patch* ResultsToPatch(void);
@@ -35,6 +37,3 @@
 };
 
-
-
 #endif //ifndef _ELEMENTS_H_
-
Index: /issm/trunk/src/c/Container/Loads.cpp
===================================================================
--- /issm/trunk/src/c/Container/Loads.cpp	(revision 6410)
+++ /issm/trunk/src/c/Container/Loads.cpp	(revision 6411)
@@ -43,4 +43,19 @@
 
 /*Numerics:*/
+/*FUNCTION Loads::Configure{{{1*/
+void Loads::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){
+
+	vector<Object*>::iterator object;
+	Load* load=NULL;
+
+	for ( object=objects.begin() ; object < objects.end(); object++ ){
+
+		load=(Load*)(*object);
+		load->Configure(elements,loads,nodes,vertices,materials,parameters);
+
+	}
+
+}
+/*}}}*/
 /*FUNCTION Loads::NumberOfLoads{{{1*/
 int Loads::NumberOfLoads(void){
@@ -80,2 +95,17 @@
 }
 /*}}}*/
+/*FUNCTION Loads::SetCurrentConfiguration{{{1*/
+void Loads::SetCurrentConfiguration(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){
+
+	vector<Object*>::iterator object;
+	Load* load=NULL;
+
+	for ( object=objects.begin() ; object < objects.end(); object++ ){
+
+		load=(Load*)(*object);
+		load->SetCurrentConfiguration(elements,loads,nodes,vertices,materials,parameters);
+
+	}
+
+}
+/*}}}*/
Index: /issm/trunk/src/c/Container/Loads.h
===================================================================
--- /issm/trunk/src/c/Container/Loads.h	(revision 6410)
+++ /issm/trunk/src/c/Container/Loads.h	(revision 6411)
@@ -26,12 +26,11 @@
 		/*}}}*/
 		/*numerics: {{{1*/
+		void  Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters);
 		int   NumberOfLoads(void);
 		void  OutputRifts(Vec riftproperties);
+		void  SetCurrentConfiguration(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters);
 		/*}}}*/
 
 };
 
-
-
 #endif //ifndef _LOADS_H_
-
Index: /issm/trunk/src/c/Container/Materials.cpp
===================================================================
--- /issm/trunk/src/c/Container/Materials.cpp	(revision 6410)
+++ /issm/trunk/src/c/Container/Materials.cpp	(revision 6411)
@@ -43,2 +43,17 @@
 
 /*Object management*/
+/*FUNCTION Materials::Configure{{{1*/
+void Materials::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){
+
+	vector<Object*>::iterator object;
+	Material* material=NULL;
+
+	for ( object=objects.begin() ; object < objects.end(); object++ ){
+
+		material=(Material*)(*object);
+		material->Configure(elements);
+
+	}
+
+}
+/*}}}*/
Index: /issm/trunk/src/c/Container/Materials.h
===================================================================
--- /issm/trunk/src/c/Container/Materials.h	(revision 6410)
+++ /issm/trunk/src/c/Container/Materials.h	(revision 6411)
@@ -25,4 +25,5 @@
 		/*}}}*/
 		/*numerics: {{{1*/
+		void  Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters);
 		/*}}}*/
 
@@ -30,3 +31,2 @@
 
 #endif //ifndef _MATERIALS_H_
-
Index: /issm/trunk/src/c/Container/Nodes.cpp
===================================================================
--- /issm/trunk/src/c/Container/Nodes.cpp	(revision 6410)
+++ /issm/trunk/src/c/Container/Nodes.cpp	(revision 6411)
@@ -43,4 +43,19 @@
 
 /*Numerics*/
+/*FUNCTION Nodes::Configure{{{1*/
+void Nodes::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){
+
+	vector<Object*>::iterator object;
+	Node* node=NULL;
+
+	for ( object=objects.begin() ; object < objects.end(); object++ ){
+
+		node=(Node*)(*object);
+		node->Configure(nodes,vertices);
+
+	}
+
+}
+/*}}}*/
 /*FUNCTION Nodes::DistributeDofs{{{1*/
 void  Nodes::DistributeDofs(int analysis_type,int setenum){
@@ -217,4 +232,34 @@
 }
 /*}}}*/
+/*FUNCTION Nodes::MaxNumDofs{{{1*/
+int   Nodes::MaxNumDofs(int analysis_type,int setenum){
+
+	int i;
+	int   max=0;
+	int   allmax;
+	int   numdofs=0;
+
+	/*Now go through all nodes, and get how many dofs they own, unless they are clone nodes: */
+	for(i=0;i<this->Size();i++){
+
+		Node* node=(Node*)this->GetObjectByOffset(i);
+
+		/*Check that this node corresponds to our analysis currently being carried out: */
+		if (node->InAnalysis(analysis_type)){
+
+			numdofs=node->GetNumberOfDofs(NoneApproximationEnum,setenum);
+			if (numdofs>max)max=numdofs;
+		}
+	}
+
+#ifdef _PARALLEL_
+	/*Grab max of all cpus: */
+	MPI_Allreduce ( (void*)&max,(void*)&allmax,1,MPI_INT,MPI_MAX,MPI_COMM_WORLD);
+	max=allmax;
+#endif
+
+	return max;
+}
+/*}}}*/
 /*FUNCTION Nodes::NumberOfDofs{{{1*/
 int   Nodes::NumberOfDofs(int analysis_type,int setenum){
@@ -336,32 +381,17 @@
 }
 /*}}}*/
-/*FUNCTION Nodes::MaxNumDofs{{{1*/
-int   Nodes::MaxNumDofs(int analysis_type,int setenum){
-
-	int i;
-	int   max=0;
-	int   allmax;
-	int   numdofs=0;
-
-	/*Now go through all nodes, and get how many dofs they own, unless they are clone nodes: */
-	for(i=0;i<this->Size();i++){
-
-		Node* node=(Node*)this->GetObjectByOffset(i);
-
-		/*Check that this node corresponds to our analysis currently being carried out: */
-		if (node->InAnalysis(analysis_type)){
-
-			numdofs=node->GetNumberOfDofs(NoneApproximationEnum,setenum);
-			if (numdofs>max)max=numdofs;
-		}
-	}
-
-	#ifdef _PARALLEL_
-	/*Grab max of all cpus: */
-	MPI_Allreduce ( (void*)&max,(void*)&allmax,1,MPI_INT,MPI_MAX,MPI_COMM_WORLD);
-	max=allmax;
-	#endif
-
-	return max;
-}
-/*}}}*/
+/*FUNCTION Nodes::SetCurrentConfiguration{{{1*/
+void Nodes::SetCurrentConfiguration(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters){
+
+	vector<Object*>::iterator object;
+	Node* node=NULL;
+
+	for ( object=objects.begin() ; object < objects.end(); object++ ){
+
+		node=(Node*)(*object);
+		node->SetCurrentConfiguration(nodes,vertices);
+
+	}
+
+}
+/*}}}*/
Index: /issm/trunk/src/c/Container/Nodes.h
===================================================================
--- /issm/trunk/src/c/Container/Nodes.h	(revision 6410)
+++ /issm/trunk/src/c/Container/Nodes.h	(revision 6411)
@@ -19,18 +19,17 @@
 		/*}}}*/
 		/*numerics: {{{1*/
+		void  Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters);
 		void  DistributeDofs(int analysis_type,int SETENUM);
 		void  FlagClones(int analysis_type);
 		void  FlagNodeSets(Vec pv_g, Vec pv_f, Vec pv_s,int analysis_type);
+		int   MaxNumDofs(int analysis_type,int setenum);
 		int   NumberOfDofs(int analysis_type,int setenum);
 		int   NumberOfNodes(int analysis_type);
 		int   NumberOfNodes(void);
 		void  Ranks(int* ranks,int analysis_type);
-		int   MaxNumDofs(int analysis_type,int setenum);
+		void  SetCurrentConfiguration(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters);
 		/*}}}*/
 
 };
 
-
-
 #endif //ifndef _NODES_H_
-
Index: sm/trunk/src/c/EnumDefinitions/EnumDefinitions.cpp
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.cpp	(revision 6410)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/*
- * \file EnumDefinitions.cpp:
- * \brief: enum functions for our objects
- */
-
-#include "./EnumDefinitions.h"
-
-/*functions on enums: */
-int EnumIsElement(int en){
-	if ((en==TriaEnum) || (en==PentaEnum))return 1;
-	else return 0;
-}
-
-int EnumIsLoad(int en){
-	if ((en>=LoadEnum) && (en<=SegmentRiftfrontEnum)) return 1;
-	else return 0;
-}
-int EnumIsMaterial(int en){
-	if ((en>=MaterialEnum) && (en<=MatparEnum)) return 1;
-	else return 0;
-}
Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 6410)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 6411)
@@ -390,7 +390,4 @@
 
 /*Functions on enums: */
-int   EnumIsElement(int en);
-int   EnumIsLoad(int en);
-int   EnumIsMaterial(int en);
 char *EnumToString(int enum_type);
 int   StringToEnum(char *string);
Index: /issm/trunk/src/c/Makefile.am
===================================================================
--- /issm/trunk/src/c/Makefile.am	(revision 6410)
+++ /issm/trunk/src/c/Makefile.am	(revision 6411)
@@ -341,5 +341,4 @@
 					./io/pfclose.cpp\
 					./EnumDefinitions/EnumDefinitions.h\
-					./EnumDefinitions/EnumDefinitions.cpp\
 					./EnumDefinitions/EnumToString.cpp\
 					./EnumDefinitions/StringToEnum.cpp\
@@ -913,5 +912,4 @@
 					./io/ParsePetscOptions.cpp\
 					./EnumDefinitions/EnumDefinitions.h\
-					./EnumDefinitions/EnumDefinitions.cpp\
 					./EnumDefinitions/EnumToString.cpp\
 					./EnumDefinitions/StringToEnum.cpp\
