Index: /issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 6422)
+++ /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 6423)
@@ -1756,4 +1756,6 @@
 	double      xyz_list[NUMVERTICES][3];
 	double      l1l2l3[3];
+	double      dbasis[NDOF2][NUMVERTICES];
+	double      dH[2];
 	GaussTria*  gauss=NULL;
 
@@ -1776,10 +1778,15 @@
 		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
 		GetNodalFunctions(l1l2l3, gauss);
+		GetNodalFunctionsDerivatives(&dbasis[0][0],&xyz_list[0][0],gauss);
 
 		thickness_input->GetParameterValue(&thickness, gauss);
+		thickness_input->GetParameterDerivativeValue(&dH[0],&xyz_list[0][0],gauss);
 		thicknessobs_input->GetParameterValue(&thicknessobs, gauss);
 		weights_input->GetParameterValue(&weight, gauss);
 
 		for(i=0;i<numdof;i++) pe->values[i]+=(thicknessobs-thickness)*weight*Jdet*gauss->weight*l1l2l3[i];
+		/*Regularization of the constraint: 20000000*/
+		//for(i=0;i<numdof;i++) pe->values[i]+= - 1*2000000*dH[0]*dbasis[0][i]*Jdet*gauss->weight;
+		//for(i=0;i<numdof;i++) pe->values[i]+= - 1*2000000*dH[1]*dbasis[1][i]*weight*Jdet*gauss->weight;
 	}
 
