Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp	(revision 1024)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp	(revision 1025)
@@ -120,4 +120,5 @@
 	int node_partitionborder=0;
 	double node_x[3];
+	double node_sigma;
 	int node_onbed;
 	int node_onsurface;
@@ -578,4 +579,6 @@
 	ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat");
 	ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat");
+	ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat");
+	ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat");
@@ -608,9 +611,8 @@
 		#endif
 
-
 		node_x[0]=model->x[i];
 		node_x[1]=model->y[i];
 		node_x[2]=model->z[i];
-
+		node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]);
 		
 		node_onbed=(int)model->gridonbed[i];
@@ -633,5 +635,5 @@
 
 		/*Create node using its constructor: */
-		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
+		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
 
 		/*set single point constraints.: */
@@ -668,4 +670,6 @@
 	xfree((void**)&model->y);
 	xfree((void**)&model->z);
+	xfree((void**)&model->thickness);
+	xfree((void**)&model->bed);
 	xfree((void**)&model->gridonbed);
 	xfree((void**)&model->gridonsurface);
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp	(revision 1024)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp	(revision 1025)
@@ -92,4 +92,5 @@
 	int node_partitionborder=0;
 	double node_x[3];
+	double node_sigma;
 	int node_onbed;
 	int node_onsurface;
@@ -325,4 +326,5 @@
 	xfree((void**)&model->thickness);
 	xfree((void**)&model->surface);
+	xfree((void**)&model->bed);
 	xfree((void**)&model->gridonsurface);
 	xfree((void**)&model->uppernodes);
@@ -363,4 +365,6 @@
 	ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat");
 	ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat");
+	ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat");
+	ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat");
@@ -368,5 +372,4 @@
 	ModelFetchData((void**)&model->gridonicesheet,NULL,NULL,model_handle,"gridonicesheet","Matrix","Mat");
 	ModelFetchData((void**)&model->gridoniceshelf,NULL,NULL,model_handle,"gridoniceshelf","Matrix","Mat");
-
 	
 	/*Get number of dofs per node: */
@@ -393,9 +396,8 @@
 		#endif
 
-
 		node_x[0]=model->x[i];
 		node_x[1]=model->y[i];
 		node_x[2]=model->z[i];
-
+		node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]);
 		
 		node_onbed=(int)model->gridonbed[i];
@@ -418,5 +420,5 @@
 
 		/*Create node using its constructor: */
-		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
+		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
 
 		/*set single point constraints.: */
@@ -446,4 +448,6 @@
 	xfree((void**)&model->y);
 	xfree((void**)&model->z);
+	xfree((void**)&model->thickness);
+	xfree((void**)&model->bed);
 	xfree((void**)&model->gridonbed);
 	xfree((void**)&model->gridonsurface);
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp	(revision 1024)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp	(revision 1025)
@@ -100,4 +100,5 @@
 	int node_partitionborder=0;
 	double node_x[3];
+	double node_sigma;
 	int node_onbed;
 	int node_onsurface;
@@ -425,4 +426,6 @@
 	ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat");
 	ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat");
+	ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat");
+	ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat");
@@ -457,9 +460,8 @@
 		#endif
 
-
 		node_x[0]=model->x[i];
 		node_x[1]=model->y[i];
 		node_x[2]=model->z[i];
-
+		node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]);
 		
 		node_onbed=(int)model->gridonbed[i];
@@ -482,5 +484,5 @@
 
 		/*Create node using its constructor: */
-		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
+		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
 
 		/*set single point constraints.: */
@@ -518,4 +520,6 @@
 	xfree((void**)&model->y);
 	xfree((void**)&model->z);
+	xfree((void**)&model->thickness);
+	xfree((void**)&model->bed);
 	xfree((void**)&model->gridonbed);
 	xfree((void**)&model->gridonsurface);
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp	(revision 1024)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp	(revision 1025)
@@ -99,4 +99,5 @@
 	int node_partitionborder=0;
 	double node_x[3];
+	double node_sigma;
 	int node_onbed;
 	int node_onsurface;
@@ -347,4 +348,6 @@
 	ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat");
 	ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat");
+	ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat");
+	ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat");
@@ -377,9 +380,8 @@
 		#endif
 
-
 		node_x[0]=model->x[i];
 		node_x[1]=model->y[i];
 		node_x[2]=model->z[i];
-
+		node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]);
 		
 		node_onbed=(int)model->gridonbed[i];
@@ -396,5 +398,5 @@
 
 		/*Create node using its constructor: */
-		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
+		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
 
 		/*Add node to nodes dataset: */
@@ -417,4 +419,6 @@
 	xfree((void**)&model->y);
 	xfree((void**)&model->z);
+	xfree((void**)&model->thickness);
+	xfree((void**)&model->bed);
 	xfree((void**)&model->gridonbed);
 	xfree((void**)&model->gridonsurface);
Index: /issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp	(revision 1024)
+++ /issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp	(revision 1025)
@@ -99,4 +99,5 @@
 	int node_partitionborder=0;
 	double node_x[3];
+	double node_sigma;
 	int node_onbed;
 	int node_onsurface;
@@ -392,4 +393,6 @@
 	ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat");
 	ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat");
+	ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat");
+	ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat");
@@ -422,9 +425,8 @@
 		#endif
 
-
 		node_x[0]=model->x[i];
 		node_x[1]=model->y[i];
 		node_x[2]=model->z[i];
-
+		node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]);
 		
 		node_onbed=(int)model->gridonbed[i];
@@ -447,5 +449,5 @@
 
 		/*Create node using its constructor: */
-		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
+		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
 
 		/*set single point constraints.: */
@@ -474,4 +476,6 @@
 	xfree((void**)&model->y);
 	xfree((void**)&model->z);
+	xfree((void**)&model->thickness);
+	xfree((void**)&model->bed);
 	xfree((void**)&model->gridonbed);
 	xfree((void**)&model->gridonsurface);
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp	(revision 1024)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp	(revision 1025)
@@ -121,4 +121,5 @@
 	int node_partitionborder=0;
 	double node_x[3];
+	double node_sigma;
 	int node_onbed;
 	int node_onsurface;
@@ -462,4 +463,6 @@
 	ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat");
 	ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat");
+	ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat");
+	ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat");
@@ -492,9 +495,8 @@
 		#endif
 
-
 		node_x[0]=model->x[i];
 		node_x[1]=model->y[i];
 		node_x[2]=model->z[i];
-
+		node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]);
 		
 		node_onbed=(int)model->gridonbed[i];
@@ -517,5 +519,5 @@
 
 		/*Create node using its constructor: */
-		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
+		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
 
 		/*set single point constraints.: */
@@ -547,4 +549,6 @@
 	xfree((void**)&model->y);
 	xfree((void**)&model->z);
+	xfree((void**)&model->thickness);
+	xfree((void**)&model->bed);
 	xfree((void**)&model->gridonbed);
 	xfree((void**)&model->gridonsurface);
Index: /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp	(revision 1024)
+++ /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp	(revision 1025)
@@ -99,4 +99,5 @@
 	int node_partitionborder=0;
 	double node_x[3];
+	double node_sigma;
 	int node_onbed;
 	int node_onsurface;
@@ -398,4 +399,6 @@
 	ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat");
 	ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat");
+	ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat");
+	ModelFetchData((void**)&model->surface,NULL,NULL,model_handle,"surface","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat");
@@ -428,9 +431,8 @@
 		#endif
 
-
 		node_x[0]=model->x[i];
 		node_x[1]=model->y[i];
 		node_x[2]=model->z[i];
-
+		node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]);
 		
 		node_onbed=(int)model->gridonbed[i];
@@ -453,5 +455,5 @@
 
 		/*Create node using its constructor: */
-		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
+		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
 
 		/*set single point constraints.: */
@@ -483,4 +485,6 @@
 	xfree((void**)&model->y);
 	xfree((void**)&model->z);
+	xfree((void**)&model->thickness);
+	xfree((void**)&model->bed);
 	xfree((void**)&model->gridonbed);
 	xfree((void**)&model->gridonsurface);
Index: /issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp	(revision 1024)
+++ /issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp	(revision 1025)
@@ -100,4 +100,5 @@
 	int node_partitionborder=0;
 	double node_x[3];
+	double node_sigma;
 	int node_onbed;
 	int node_onsurface;
@@ -396,4 +397,6 @@
 	ModelFetchData((void**)&model->y,NULL,NULL,model_handle,"y","Matrix","Mat");
 	ModelFetchData((void**)&model->z,NULL,NULL,model_handle,"z","Matrix","Mat");
+	ModelFetchData((void**)&model->thickness,NULL,NULL,model_handle,"thickness","Matrix","Mat");
+	ModelFetchData((void**)&model->bed,NULL,NULL,model_handle,"bed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat");
@@ -426,4 +429,5 @@
 		node_x[1]=model->y[i];
 		node_x[2]=model->z[i];
+		node_sigma=(model->z[i]-model->bed[i])/(model->thickness[i]);
 		
 		node_onbed=(int)model->gridonbed[i];
@@ -446,5 +450,5 @@
 
 		/*Create node using its constructor: */
-		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
+		node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_sigma,node_onbed,node_onsurface,node_upper_node_id,node_onshelf,node_onsheet);
 
 		/*Add node to nodes dataset: */
@@ -467,4 +471,6 @@
 	xfree((void**)&model->y);
 	xfree((void**)&model->z);
+	xfree((void**)&model->thickness);
+	xfree((void**)&model->bed);
 	xfree((void**)&model->gridonbed);
 	xfree((void**)&model->gridonsurface);
Index: /issm/trunk/src/c/objects/Node.cpp
===================================================================
--- /issm/trunk/src/c/objects/Node.cpp	(revision 1024)
+++ /issm/trunk/src/c/objects/Node.cpp	(revision 1025)
@@ -21,5 +21,5 @@
 	return;
 }
-Node::Node(int node_id,int node_partitionborder,int node_numdofs, double node_x[3],int node_onbed,int node_onsurface,int node_upper_node_id,int node_onshelf,int node_onsheet){
+Node::Node(int node_id,int node_partitionborder,int node_numdofs, double node_x[3],double node_sigma,int node_onbed,int node_onsurface,int node_upper_node_id,int node_onshelf,int node_onsheet){
 
 	int i;
@@ -31,4 +31,5 @@
 	x[1]=node_x[1];
 	x[2]=node_x[2];
+	sigma=node_sigma;
 	onbed=node_onbed;
 	onsurface=node_onsurface;
@@ -66,4 +67,5 @@
 	printf("   numberofdofs: %i\n",numberofdofs);
 	printf("   x=[%g,%g,%g]\n",x[0],x[1],x[2]);
+	printf("   sigma=%g\n",sigma);
 	printf("   onbed: %i\n",onbed);
 	printf("   onsurface: %i\n",onsurface);
@@ -102,4 +104,5 @@
 	printf("   numberofdofs: %i\n",numberofdofs);
 	printf("   x=[%g,%g,%g]\n",x[0],x[1],x[2]);
+	printf("   sigma=%g\n",sigma);
 	printf("   onbed: %i\n",onbed);
 	printf("   onsurface: %i\n",onsurface);
@@ -147,4 +150,5 @@
 	memcpy(marshalled_dataset,&numberofdofs,sizeof(numberofdofs));marshalled_dataset+=sizeof(numberofdofs);
 	memcpy(marshalled_dataset,&x,sizeof(x));marshalled_dataset+=sizeof(x);
+	memcpy(marshalled_dataset,&sigma,sizeof(sigma));marshalled_dataset+=sizeof(sigma);
 	memcpy(marshalled_dataset,&onbed,sizeof(onbed));marshalled_dataset+=sizeof(onbed);
 	memcpy(marshalled_dataset,&onsurface,sizeof(onsurface));marshalled_dataset+=sizeof(onsurface);
@@ -172,4 +176,5 @@
 		sizeof(numberofdofs)+
 		sizeof(x)+
+		sizeof(sigma)+
 		sizeof(onbed)+
 		sizeof(onsurface)+
@@ -208,4 +213,5 @@
 	memcpy(&numberofdofs,marshalled_dataset,sizeof(numberofdofs));marshalled_dataset+=sizeof(numberofdofs);
 	memcpy(&x,marshalled_dataset,sizeof(x));marshalled_dataset+=sizeof(x);
+	memcpy(&sigma,marshalled_dataset,sizeof(sigma));marshalled_dataset+=sizeof(sigma);
 	memcpy(&onbed,marshalled_dataset,sizeof(onbed));marshalled_dataset+=sizeof(onbed);
 	memcpy(&onsurface,marshalled_dataset,sizeof(onsurface));marshalled_dataset+=sizeof(onsurface);
@@ -484,4 +490,5 @@
 double Node::GetY(){return x[1];}
 double Node::GetZ(){return x[2];}
+double Node::GetSigma(){return sigma;}
 
 Object* Node::copy() {
@@ -761,19 +768,11 @@
 
 	int dof;
+	double s;
 
 	dof=this->GetDofList1();
-
-	if(onbed){
-
-		/*this node is on the bed, set its z position to the new bed: */
-		this->x[2]=bed[dof];
-	}
-	else if (onsurface){
-
-		/*this node is on the surface, set its z position to the new bed+ new thickness: */
-		this->x[2]=bed[dof]+thickness[dof];
-	}
-	else{
-		/*do nothing, we only update grids belonging to the exterior layers: */
-	}
-}
+	s=this->GetSigma();
+
+	/*sigma remains constant. z=bed+sigma*thickness*/
+	this->x[2]=bed[dof]+s*thickness[dof];
+
+}
Index: /issm/trunk/src/c/objects/Node.h
===================================================================
--- /issm/trunk/src/c/objects/Node.h	(revision 1024)
+++ /issm/trunk/src/c/objects/Node.h	(revision 1025)
@@ -21,4 +21,5 @@
 		int     clone;  /*!this nodes is one the partition border, and is cloned*/
 		double	x[3]; /*! coordinates*/
+		double	sigma; /*! sigma = (z-bed)/thickness*/
 		int	    onbed; /*! for 3d, on bedrock*/
 		int	    onsurface; /*! for 3d, on surface*/
@@ -43,5 +44,5 @@
 
 		Node();
-		Node(int node_id,int node_partitionborder,int node_numdofs, double node_x[3],int node_onbed,int node_onsurface,int upper_node_id,int onshelf,int onsheet);
+		Node(int node_id,int node_partitionborder,int node_numdofs, double node_x[3],double sigma,int node_onbed,int node_onsurface,int upper_node_id,int onshelf,int onsheet);
 		~Node();
 
@@ -74,4 +75,5 @@
 		double GetY();
 		double GetZ();
+		double GetSigma();
 		Object* copy();
 		void  UpdateFromInputs(void* inputs);
