Index: /issm/trunk/src/c/DataSet/Constraints.cpp
===================================================================
--- /issm/trunk/src/c/DataSet/Constraints.cpp	(revision 4217)
+++ /issm/trunk/src/c/DataSet/Constraints.cpp	(revision 4217)
@@ -0,0 +1,44 @@
+/*
+ * \file Constraints.c
+ * \brief: implementation of the Constraints class, derived from DataSet class
+ */
+
+/*Headers: {{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include <vector>
+#include <functional>
+#include <algorithm>
+#include <iostream>
+
+#include "./DataSet.h"
+#include "../shared/shared.h"
+#include "../include/include.h"
+#include "../EnumDefinitions/EnumDefinitions.h"
+
+using namespace std;
+/*}}}*/
+
+/*Object constructors and destructor*/
+/*FUNCTION Constraints::Constraints(){{{1*/
+Constraints::Constraints(){
+	return;
+}
+/*}}}*/
+/*FUNCTION Constraints::Constraints(int in_enum){{{1*/
+Constraints::Constraints(int in_enum): DataSet(in_enum){
+	//do nothing;
+	return;
+}
+/*}}}*/
+/*FUNCTION Constraints::~Constraints(){{{1*/
+Constraints::~Constraints(){
+	return;
+}
+/*}}}*/
+
+/*Object management*/
Index: /issm/trunk/src/c/DataSet/DataSet.h
===================================================================
--- /issm/trunk/src/c/DataSet/DataSet.h	(revision 4216)
+++ /issm/trunk/src/c/DataSet/DataSet.h	(revision 4217)
@@ -202,4 +202,21 @@
 };
 
+/********************************************************CONSTRAINTS************************************************/
+
+class Constraints: public DataSet{
+
+	public:
+
+		/*constructors, destructors: {{{1*/
+		Constraints();
+		Constraints(int enum_type);
+		~Constraints();
+		/*}}}*/
+		/*numerics: {{{1*/
+		/*}}}*/
+
+};
+
+
 
 
Index: /issm/trunk/src/c/Makefile.am
===================================================================
--- /issm/trunk/src/c/Makefile.am	(revision 4216)
+++ /issm/trunk/src/c/Makefile.am	(revision 4217)
@@ -208,4 +208,5 @@
 					./DataSet/Loads.cpp\
 					./DataSet/Elements.cpp\
+					./DataSet/Constraints.cpp\
 					./shared/shared.h\
 					./shared/Alloc/alloc.h\
@@ -738,4 +739,5 @@
 					./DataSet/Loads.cpp\
 					./DataSet/Elements.cpp\
+					./DataSet/Constraints.cpp\
 					./shared/shared.h\
 					./shared/Threads/issm_threads.h\
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp	(revision 4217)
@@ -11,5 +11,5 @@
 #include "../ModelProcessorx.h"
 
-void	CreateConstraintsBalancedthickness(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
+void	CreateConstraintsBalancedthickness(Constraints** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 
 	/*Intermediary*/
@@ -18,5 +18,5 @@
 
 	/*Output*/
-	DataSet* constraints = NULL;
+	Constraints* constraints = NULL;
 
 	/*Recover pointer: */
@@ -24,5 +24,5 @@
 
 	/*Create constraints if they do not exist yet*/
-	if(!constraints) constraints = new DataSet(ConstraintsEnum);
+	if(!constraints) constraints = new Constraints(ConstraintsEnum);
 
 	/*Fetch data: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp	(revision 4217)
@@ -11,8 +11,8 @@
 #include "../ModelProcessorx.h"
 
-void	CreateConstraintsBalancedthickness2(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
+void	CreateConstraintsBalancedthickness2(Constraints** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 	
 	/*Output*/
-	DataSet* constraints = NULL;
+	Constraints* constraints = NULL;
 	
 	/*Recover pointer: */
@@ -20,5 +20,5 @@
 
 	/*Create constraints if they do not exist yet*/
-	if(!constraints) constraints = new DataSet(ConstraintsEnum);
+	if(!constraints) constraints = new Constraints(ConstraintsEnum);
 	
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp	(revision 4217)
@@ -11,5 +11,5 @@
 #include "../ModelProcessorx.h"
 
-void	CreateConstraintsBalancedvelocities(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
+void	CreateConstraintsBalancedvelocities(Constraints** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 
 	/*Intermediary*/
@@ -18,5 +18,5 @@
 	
 	/*Output*/
-	DataSet* constraints = NULL;
+	Constraints* constraints = NULL;
 	Spc*    spc  = NULL;
 
@@ -25,5 +25,5 @@
 
 	/*Create constraints if they do not exist yet*/
-	if(!constraints) constraints = new DataSet(ConstraintsEnum);
+	if(!constraints) constraints = new Constraints(ConstraintsEnum);
 
 	/*Fetch data: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/CreateDataSets.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/CreateDataSets.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/CreateDataSets.cpp	(revision 4217)
@@ -16,5 +16,5 @@
 
 
-void CreateDataSets(Elements** pelements,Nodes** pnodes, Vertices** pvertices, DataSet** pmaterials, DataSet** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int solution_type,int analysis_type,int nummodels,int analysis_counter){
+void CreateDataSets(Elements** pelements,Nodes** pnodes, Vertices** pvertices, DataSet** pmaterials, Constraints** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int solution_type,int analysis_type,int nummodels,int analysis_counter){
 
 	bool continuous=true;
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 4217)
@@ -11,5 +11,5 @@
 #include "../ModelProcessorx.h"
 
-void	CreateConstraintsDiagnosticHoriz(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
+void	CreateConstraintsDiagnosticHoriz(Constraints** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 
 	/*Intermediary*/
@@ -18,5 +18,5 @@
 	
 	/*Output*/
-	DataSet* constraints = NULL;
+	Constraints* constraints = NULL;
 	Spc*    spc  = NULL;
 	Rgb*    rgb  = NULL;
@@ -27,5 +27,5 @@
 
 	/*Create constraints if they do not exist yet*/
-	if(!constraints) constraints = new DataSet(ConstraintsEnum);
+	if(!constraints) constraints = new Constraints(ConstraintsEnum);
 	
 	/*Now, is the flag macayaealpattyn on? otherwise, do nothing: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 4217)
@@ -11,5 +11,5 @@
 #include "../ModelProcessorx.h"
 
-void	CreateConstraintsDiagnosticHutter(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
+void	CreateConstraintsDiagnosticHutter(Constraints** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 
 	/*Intermediary*/
@@ -18,5 +18,5 @@
 
 	/*Output*/
-	DataSet* constraints = NULL;
+	Constraints* constraints = NULL;
 	Spc*    spc  = NULL;
 
@@ -25,5 +25,5 @@
 
 	/*Create constraints if they do not exist yet*/
-	if(!constraints) constraints = new DataSet(ConstraintsEnum);
+	if(!constraints) constraints = new Constraints(ConstraintsEnum);
 
 	/*Now, is the flag ishutter on? otherwise, do nothing: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp	(revision 4217)
@@ -11,5 +11,5 @@
 #include "../ModelProcessorx.h"
 
-void	CreateConstraintsDiagnosticStokes(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
+void	CreateConstraintsDiagnosticStokes(Constraints** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 
 	/*Intermediary*/
@@ -19,5 +19,5 @@
 
 	/*Intermediary*/
-	DataSet* constraints = NULL;
+	Constraints* constraints = NULL;
 
 	/*Recover pointer: */
@@ -25,5 +25,5 @@
 
 	/*Create constraints if they do not exist yet*/
-	if(!constraints) constraints = new DataSet(ConstraintsEnum);
+	if(!constraints) constraints = new Constraints(ConstraintsEnum);
 
 	/*Now, is the flag ishutter on? otherwise, do nothing: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 4217)
@@ -11,5 +11,5 @@
 #include "../ModelProcessorx.h"
 
-void	CreateConstraintsDiagnosticVert(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
+void	CreateConstraintsDiagnosticVert(Constraints** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 
 	/*Intermediary*/
@@ -18,5 +18,5 @@
 
 	/*Output*/
-	DataSet* constraints = NULL;
+	Constraints* constraints = NULL;
 
 	/*Recover pointer: */
@@ -24,5 +24,5 @@
 
 	/*Create constraints if they do not exist yet*/
-	if(!constraints) constraints = new DataSet(ConstraintsEnum);
+	if(!constraints) constraints = new Constraints(ConstraintsEnum);
 
 	/*return if 2d mesh*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateConstraintsMelting.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateConstraintsMelting.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateConstraintsMelting.cpp	(revision 4217)
@@ -11,5 +11,5 @@
 #include "../ModelProcessorx.h"
 
-void	CreateConstraintsMelting(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
+void	CreateConstraintsMelting(Constraints** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 
 	/*Intermediary*/
@@ -18,5 +18,5 @@
 	
 	/*Intermediary*/
-	DataSet* constraints = NULL;
+	Constraints* constraints = NULL;
 
 	/*Recover pointer: */
@@ -24,5 +24,5 @@
 
 	/*Create constraints if they do not exist yet*/
-	if(!constraints) constraints = new DataSet(ConstraintsEnum);
+	if(!constraints) constraints = new Constraints(ConstraintsEnum);
 
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.cpp	(revision 4217)
@@ -16,5 +16,5 @@
 #include "../../modules/modules.h"
 
-void ModelProcessorx(Elements** pelements, Nodes** pnodes, Vertices** pvertices, DataSet** pmaterials, DataSet** pconstraints, Loads** ploads, Parameters** pparameters, ConstDataHandle IOMODEL,int solution_type,int nummodels, int* analysis_type_list){
+void ModelProcessorx(Elements** pelements, Nodes** pnodes, Vertices** pvertices, DataSet** pmaterials, Constraints** pconstraints, Loads** ploads, Parameters** pparameters, ConstDataHandle IOMODEL,int solution_type,int nummodels, int* analysis_type_list){
 
 	int i;
@@ -26,5 +26,5 @@
 	Vertices* vertices=NULL;
 	DataSet* materials=NULL;
-	DataSet* constraints=NULL;
+	Constraints* constraints=NULL;
 	Loads* loads=NULL;
 	Parameters* parameters=NULL;
Index: /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h	(revision 4217)
@@ -13,8 +13,8 @@
 #include "../../io/io.h"
 
-void ModelProcessorx(Elements** pelements, Nodes** pnodes, Vertices** pvertices, DataSet** pmaterials, DataSet** pconstraints, Loads** ploads, Parameters** pparameters, ConstDataHandle iomodel_handle,int solution_type,int nummodels, int* analysis_type_list);
+void ModelProcessorx(Elements** pelements, Nodes** pnodes, Vertices** pvertices, DataSet** pmaterials, Constraints** pconstraints, Loads** ploads, Parameters** pparameters, ConstDataHandle iomodel_handle,int solution_type,int nummodels, int* analysis_type_list);
 
 /*Creation of fem datasets: general drivers*/
-void  CreateDataSets(Elements** pelements,Nodes** pnodes,Vertices** pvertices, DataSet** pmaterials, DataSet** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int solution_type,int analysis_type,int nummodels,int analysis_counter);
+void  CreateDataSets(Elements** pelements,Nodes** pnodes,Vertices** pvertices, DataSet** pmaterials, Constraints** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int solution_type,int analysis_type,int nummodels,int analysis_counter);
 void  CreateElementsVerticesAndMaterials(Elements** pelements,Vertices** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle,int nummodels);
 void  CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int solution_type,int analysis_type,int analysis_counter);
@@ -26,5 +26,5 @@
 /*diagnostic horizontal*/
 void	CreateNodesDiagnosticHoriz(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
-void	CreateConstraintsDiagnosticHoriz(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsDiagnosticHoriz(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
 void  CreateLoadsDiagnosticHoriz(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
 void	UpdateElementsDiagnosticHoriz(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
@@ -32,5 +32,5 @@
 /*diagnostic vertical*/
 void	CreateNodesDiagnosticVert(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
-void	CreateConstraintsDiagnosticVert(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsDiagnosticVert(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
 void    CreateLoadsDiagnosticVert(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
 void	UpdateElementsDiagnosticVert(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
@@ -38,5 +38,5 @@
 /*diagnostic hutter*/
 void	CreateNodesDiagnosticHutter(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
-void	CreateConstraintsDiagnosticHutter(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsDiagnosticHutter(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
 void    CreateLoadsDiagnosticHutter(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
 void	UpdateElementsDiagnosticHutter(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
@@ -44,5 +44,5 @@
 /*diagnostic stokes*/
 void	CreateNodesDiagnosticStokes(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
-void	CreateConstraintsDiagnosticStokes(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsDiagnosticStokes(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
 void    CreateLoadsDiagnosticStokes(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
 void	UpdateElementsDiagnosticStokes(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
@@ -50,5 +50,5 @@
 /*slope compute*/
 void	CreateNodesSlopeCompute(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
-void	CreateConstraintsSlopeCompute(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsSlopeCompute(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
 void    CreateLoadsSlopeCompute(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
 void	UpdateElementsSlopeCompute(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
@@ -56,5 +56,5 @@
 /*thermal:*/
 void	CreateNodesThermal(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
-void	CreateConstraintsThermal(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsThermal(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
 void    CreateLoadsThermal(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
 void	UpdateElementsThermal(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
@@ -62,5 +62,5 @@
 /*melting:*/
 void	CreateNodesMelting(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
-void	CreateConstraintsMelting(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsMelting(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
 void    CreateLoadsMelting(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
 void	UpdateElementsMelting(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
@@ -68,5 +68,5 @@
 /*prognostic:*/
 void	CreateNodesPrognostic(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
-void	CreateConstraintsPrognostic(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsPrognostic(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
 void    CreateLoadsPrognostic(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
 void	UpdateElementsPrognostic(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
@@ -74,5 +74,5 @@
 /*prognostic2:*/
 void	CreateNodesPrognostic2(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
-void	CreateConstraintsPrognostic2(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsPrognostic2(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
 void    CreateLoadsPrognostic2(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
 void	UpdateElementsPrognostic2(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
@@ -80,10 +80,10 @@
 /*balancedthickness:*/
 void	CreateNodesBalancedthickness(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
-void	CreateConstraintsBalancedthickness(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsBalancedthickness(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
 void    CreateLoadsBalancedthickness(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
 void	UpdateElementsBalancedthickness(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
 
 void	CreateNodesBalancedthickness2(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
-void	CreateConstraintsBalancedthickness2(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsBalancedthickness2(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
 void    CreateLoadsBalancedthickness2(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
 void	UpdateElementsBalancedthickness2(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
@@ -91,5 +91,5 @@
 /*balancedvelocities:*/
 void	CreateNodesBalancedvelocities(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
-void	CreateConstraintsBalancedvelocities(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsBalancedvelocities(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
 void    CreateLoadsBalancedvelocities(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
 void	UpdateElementsBalancedvelocities(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
@@ -104,6 +104,6 @@
 
 /*Diverse: */
-void  SortDataSets(Elements** pelements,Nodes** pnodes,Vertices** pvertices, Loads** ploads, DataSet** pmaterials, DataSet** pconstraints, Parameters** pparameters);
-void  UpdateCounters(IoModel* iomodel,Nodes** pnodes,Loads** ploads, DataSet** pconstraints);
+void  SortDataSets(Elements** pelements,Nodes** pnodes,Vertices** pvertices, Loads** ploads, DataSet** pmaterials, Constraints** pconstraints, Parameters** pparameters);
+void  UpdateCounters(IoModel* iomodel,Nodes** pnodes,Loads** ploads, Constraints** pconstraints);
 
 #endif
Index: /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp	(revision 4217)
@@ -11,5 +11,5 @@
 #include "../ModelProcessorx.h"
 
-void	CreateConstraintsPrognostic(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
+void	CreateConstraintsPrognostic(Constraints** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 
 	/*Intermediary*/
@@ -18,5 +18,5 @@
 	
 	/*Output*/
-	DataSet* constraints = NULL;
+	Constraints* constraints = NULL;
 	Spc*    spc  = NULL;
 
@@ -25,5 +25,5 @@
 
 	/*Create constraints if they do not exist yet*/
-	if(!constraints) constraints = new DataSet(ConstraintsEnum);
+	if(!constraints) constraints = new Constraints(ConstraintsEnum);
 
 	/*Fetch data: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp	(revision 4217)
@@ -11,8 +11,8 @@
 #include "../ModelProcessorx.h"
 
-void	CreateConstraintsPrognostic2(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
+void	CreateConstraintsPrognostic2(Constraints** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 	
 	/*Output*/
-	DataSet* constraints = NULL;
+	Constraints* constraints = NULL;
 	
 	/*Recover pointer: */
@@ -20,5 +20,5 @@
 
 	/*Create constraints if they do not exist yet*/
-	if(!constraints) constraints = new DataSet(ConstraintsEnum);
+	if(!constraints) constraints = new Constraints(ConstraintsEnum);
 	
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp	(revision 4217)
@@ -11,8 +11,8 @@
 #include "../ModelProcessorx.h"
 
-void	CreateConstraintsSlopeCompute(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
+void	CreateConstraintsSlopeCompute(Constraints** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 
 	/*Output*/
-	DataSet* constraints = NULL;
+	Constraints* constraints = NULL;
 	
 	/*Recover pointer: */
@@ -20,5 +20,5 @@
 
 	/*Create constraints if they do not exist yet*/
-	if(!constraints) constraints = new DataSet(ConstraintsEnum);
+	if(!constraints) constraints = new Constraints(ConstraintsEnum);
 
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/SortDataSets.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/SortDataSets.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/SortDataSets.cpp	(revision 4217)
@@ -16,5 +16,5 @@
 
 
-void SortDataSets(Elements** pelements,Nodes** pnodes,Vertices** pvertices, Loads** ploads, DataSet** pmaterials, DataSet** pconstraints, Parameters** pparameters){
+void SortDataSets(Elements** pelements,Nodes** pnodes,Vertices** pvertices, Loads** ploads, DataSet** pmaterials, Constraints** pconstraints, Parameters** pparameters){
 
 	Elements* elements=NULL;
@@ -23,5 +23,5 @@
 	Loads* loads=NULL;
 	DataSet* materials=NULL;
-	DataSet* constraints=NULL;
+	Constraints* constraints=NULL;
 	Parameters* parameters=NULL;
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp	(revision 4217)
@@ -11,5 +11,5 @@
 #include "../ModelProcessorx.h"
 
-void	CreateConstraintsThermal(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
+void	CreateConstraintsThermal(Constraints** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
 
 	/*Intermediary*/
@@ -18,5 +18,5 @@
 	
 	/*Output*/
-	DataSet* constraints = NULL;
+	Constraints* constraints = NULL;
 	Spc*    spc  = NULL;
 
@@ -25,5 +25,5 @@
 
 	/*Create constraints if they do not exist yet*/
-	if(!constraints) constraints = new DataSet(ConstraintsEnum);
+	if(!constraints) constraints = new Constraints(ConstraintsEnum);
 
 	/*return if 2d mesh*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/UpdateCounters.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/UpdateCounters.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/ModelProcessorx/UpdateCounters.cpp	(revision 4217)
@@ -15,9 +15,9 @@
 #include "./ModelProcessorx.h"
 
-void    UpdateCounters(IoModel* iomodel,Nodes** pnodes,Loads** ploads, DataSet** pconstraints){
+void    UpdateCounters(IoModel* iomodel,Nodes** pnodes,Loads** ploads, Constraints** pconstraints){
 
 	Nodes* nodes=NULL;
 	Loads* loads=NULL;
-	DataSet* constraints=NULL;
+	Constraints* constraints=NULL;
 
 	/*recover pointers: */
Index: /issm/trunk/src/c/modules/MpcNodesx/MpcNodesx.cpp
===================================================================
--- /issm/trunk/src/c/modules/MpcNodesx/MpcNodesx.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/MpcNodesx/MpcNodesx.cpp	(revision 4217)
@@ -10,5 +10,5 @@
 #include "../../EnumDefinitions/EnumDefinitions.h"
 
-int MpcNodesx( Mat* pRmg, Nodes* nodes,DataSet* constraints,int analysis_type){
+int MpcNodesx( Mat* pRmg, Nodes* nodes,Constraints* constraints,int analysis_type){
 
 	int i;
Index: /issm/trunk/src/c/modules/MpcNodesx/MpcNodesx.h
===================================================================
--- /issm/trunk/src/c/modules/MpcNodesx/MpcNodesx.h	(revision 4216)
+++ /issm/trunk/src/c/modules/MpcNodesx/MpcNodesx.h	(revision 4217)
@@ -10,5 +10,5 @@
 
 /* local prototypes: */
-int		MpcNodesx( Mat* pRmg, Nodes* nodes,DataSet* constraints,int analysis_type);
+int		MpcNodesx( Mat* pRmg, Nodes* nodes,Constraints* constraints,int analysis_type);
 
 #endif  /* _MPCNODESX_H */
Index: /issm/trunk/src/c/modules/SpcNodesx/SpcNodesx.cpp
===================================================================
--- /issm/trunk/src/c/modules/SpcNodesx/SpcNodesx.cpp	(revision 4216)
+++ /issm/trunk/src/c/modules/SpcNodesx/SpcNodesx.cpp	(revision 4217)
@@ -10,5 +10,5 @@
 #include "../../EnumDefinitions/EnumDefinitions.h"
 
-void SpcNodesx(Vec* pyg, Nodes* nodes,DataSet* constraints,int analysis_type){
+void SpcNodesx(Vec* pyg, Nodes* nodes,Constraints* constraints,int analysis_type){
 
 	int i;
Index: /issm/trunk/src/c/modules/SpcNodesx/SpcNodesx.h
===================================================================
--- /issm/trunk/src/c/modules/SpcNodesx/SpcNodesx.h	(revision 4216)
+++ /issm/trunk/src/c/modules/SpcNodesx/SpcNodesx.h	(revision 4217)
@@ -11,5 +11,5 @@
 
 /* local prototypes: */
-void SpcNodesx(Vec* pyg, Nodes* nodesin,DataSet* constraints,int analysis_type);
+void SpcNodesx(Vec* pyg, Nodes* nodesin,Constraints* constraints,int analysis_type);
 
 #endif  /* _SPCNODESX_H */
Index: /issm/trunk/src/c/objects/FemModel.h
===================================================================
--- /issm/trunk/src/c/objects/FemModel.h	(revision 4216)
+++ /issm/trunk/src/c/objects/FemModel.h	(revision 4217)
@@ -27,8 +27,8 @@
 		int                 analysis_counter; //counter into analysis_type_list
 		
-		Elements*            elements; //elements (one set for all analyses)
+		Elements*           elements; //elements (one set for all analyses)
 		Nodes*              nodes; //one set of nodes
 		Vertices*           vertices; //one set of vertices
-		DataSet*            constraints; //one set of constraints. each constraint knows which analysis_type it handles
+		Constraints*        constraints; //one set of constraints. each constraint knows which analysis_type it handles
 		Loads*              loads;  //one set of constraints. each constraint knows which analysis_type it handles
 		DataSet*            materials;  //one set of materials, for each element
Index: /issm/trunk/src/mex/ModelProcessor/ModelProcessor.cpp
===================================================================
--- /issm/trunk/src/mex/ModelProcessor/ModelProcessor.cpp	(revision 4216)
+++ /issm/trunk/src/mex/ModelProcessor/ModelProcessor.cpp	(revision 4217)
@@ -20,5 +20,5 @@
 	Nodes* nodes=NULL;
 	Vertices* vertices=NULL;
-	DataSet* constraints=NULL;
+	Constraints* constraints=NULL;
 	Loads* loads=NULL;
 	DataSet* materials=NULL;
Index: /issm/trunk/src/mex/MpcNodes/MpcNodes.cpp
===================================================================
--- /issm/trunk/src/mex/MpcNodes/MpcNodes.cpp	(revision 4216)
+++ /issm/trunk/src/mex/MpcNodes/MpcNodes.cpp	(revision 4217)
@@ -13,5 +13,5 @@
 	/*input datasets: */
 	Nodes* nodes=NULL;
-	DataSet* constraints=NULL;
+	Constraints* constraints=NULL;
 	int      analysis_type;
 
@@ -27,5 +27,5 @@
 	/*Input datasets: */
 	FetchData((DataSet**)&nodes,NODESIN);
-	FetchData(&constraints,CONSTRAINTS);
+	FetchData((DataSet**)&constraints,CONSTRAINTS);
 	FetchData(&analysis_type,ANALYSISTYPE);
 
Index: /issm/trunk/src/mex/SpcNodes/SpcNodes.cpp
===================================================================
--- /issm/trunk/src/mex/SpcNodes/SpcNodes.cpp	(revision 4216)
+++ /issm/trunk/src/mex/SpcNodes/SpcNodes.cpp	(revision 4217)
@@ -13,5 +13,5 @@
 	/*input datasets: */
 	Nodes* nodes=NULL;
-	DataSet* constraints=NULL;
+	Constraints* constraints=NULL;
 	int      analysis_type;
 
@@ -27,5 +27,5 @@
 	/*Input datasets: */
 	FetchData((DataSet**)&nodes,NODESIN);
-	FetchData(&constraints,CONSTRAINTS);
+	FetchData((DataSet**)&constraints,CONSTRAINTS);
 	FetchData(&analysis_type,ANALYSISTYPE);
 	
