Index: /issm/trunk/src/c/objects/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Tria.cpp	(revision 3187)
+++ /issm/trunk/src/c/objects/Tria.cpp	(revision 3188)
@@ -2930,7 +2930,28 @@
 	}
 
-	/*Get Du at the 3 nodes (integration of the linearized function)*/
+	/*Get Du at the 3 nodes (integration of the linearized function)
+	 * Here we integrate linearized functions:
+	 *               
+	 * J(E) = int_E   sum_{i=1}^3  J_i Phi_i
+	 *
+	 *       d J                  dJ_i
+	 * DU= - --- = sum_{i=1}^3  - ---  Phi_i = sum_{i=1}^3 DU_i Phi_i
+	 *       d u                  du_i
+	 *
+	 * where J_i are the misfits at the 3 nodes of the triangle
+	 *       Phi_i is the nodal function (P1) with respect to 
+	 *       the vertex i
+	 */
 	if(fit==0){
-		/*We are using an absolute misfit: */
+		/*We are using an absolute misfit:
+		 *
+		 *      1  [           2              2 ]
+		 * J = --- | (u - u   )  +  (v - v   )  |
+		 *      2  [       obs            obs   ]
+		 *
+		 *        dJ             2
+		 * DU = - -- = (u   - u )
+		 *        du     obs
+		 */
 		for (i=0;i<numgrids;i++){
 			dux_list[i]=obs_vx_list[i]-vx_list[i];
@@ -2939,5 +2960,16 @@
 	}
 	else if(fit==1){
-		/*We are using a relative misfit: */
+		/*We are using a relative misfit: 
+		 *                        
+		 *      1  [     \bar{v}^2             2   \bar{v}^2              2 ]
+		 * J = --- | -------------  (u - u   ) + -------------  (v - v   )  |
+		 *      2  [  (u   + eps)^2       obs    (v   + eps)^2       obs    ]
+		 *              obs                        obs                      
+		 *
+		 *        dJ     \bar{v}^2
+		 * DU = - -- = ------------- (u   - u )
+		 *        du   (u   + eps)^2    obs
+		 *               obs
+		 */
 		for (i=0;i<numgrids;i++){
 			scalex=pow(numpar->meanvel/(obs_vx_list[i]+numpar->epsvel),2);
@@ -2950,5 +2982,16 @@
 	}
 	else if(fit==2){
-		/*We are using a logarithmic misfit: */
+		/*We are using a logarithmic misfit:
+		 *                        
+		 *                 [        vel + eps     ] 2
+		 * J = 4 \bar{v}^2 | log ( -----------  ) |  
+		 *                 [       vel   + eps    ]
+		 *                            obs
+		 *
+		 *        dJ                 2 * log(...)
+		 * DU = - -- = - 4 \bar{v}^2 -------------  u
+		 *        du                 vel^2 + eps
+		 *            
+		 */
 		for (i=0;i<numgrids;i++){
 			velocity_mag=sqrt(pow(vx_list[i],2)+pow(vy_list[i],2))+numpar->epsvel; //epsvel to avoid velocity being nil.
@@ -2960,5 +3003,14 @@
 	}
 	else if(fit==3){
-		/*We are using an spacially average absolute misfit: */
+		/*We are using an spacially average absolute misfit:
+		 *
+		 *      1                    2              2
+		 * J = ---  sqrt(  (u - u   )  +  (v - v   )  )
+		 *      S                obs            obs
+		 *
+		 *        dJ      1       1 
+		 * DU = - -- = - --- ----------- * 2 (u - u   )
+		 *        du      S  2 sqrt(...)           obs
+		 */
 		for (i=0;i<numgrids;i++){
 			scale=1.0/(S*sqrt(pow(vx_list[i]-obs_vx_list[i],2)+pow(vy_list[i]-obs_vx_list[i],2))+numpar->epsvel);
@@ -4475,7 +4527,21 @@
 	}
 
-	/*Compute Misfit at the 3 nodes (integration of the linearized function)*/
+	/* Compute Misfit at the 3 nodes
+	 * Here we integrate linearized functions:
+	 *               
+	 * J(E) = int_E   sum_{i=1}^3  J_i Phi_i
+	 *
+	 * where J_i are the misfits at the 3 nodes of the triangle
+	 *       Phi_i is the nodal function (P1) with respect to 
+	 *       the vertex i
+	 */
 	if(fit==0){
-		/*We are using an absolute misfit: */
+		/*We are using an absolute misfit:
+		 *
+		 *      1  [           2              2 ]
+		 * J = --- | (u - u   )  +  (v - v   )  |
+		 *      2  [       obs            obs   ]
+		 *
+		 */
 		for (i=0;i<numgrids;i++){
 			misfit_list[i]=0.5*(pow((vx_list[i]-obs_vx_list[i]),(double)2)+pow((vy_list[i]-obs_vy_list[i]),(double)2));
@@ -4483,5 +4549,11 @@
 	}
 	else if(fit==1){
-		/*We are using a relative misfit: */
+		/*We are using a relative misfit: 
+		 *                        
+		 *      1  [     \bar{v}^2             2   \bar{v}^2              2 ]
+		 * J = --- | -------------  (u - u   ) + -------------  (v - v   )  |
+		 *      2  [  (u   + eps)^2       obs    (v   + eps)^2       obs    ]
+		 *              obs                        obs                      
+		 */
 		for (i=0;i<numgrids;i++){
 			scalex=pow(numpar->meanvel/(obs_vx_list[i]+numpar->epsvel),(double)2);
@@ -4493,5 +4565,11 @@
 	}
 	else if(fit==2){
-		/*We are using a logarithmic misfit: */
+		/*We are using a logarithmic misfit:
+		*                        
+		*                 [        vel + eps     ] 2
+		* J = 4 \bar{v}^2 | log ( -----------  ) |  
+		*                 [       vel   + eps    ]
+		*                            obs
+		*/
 		for (i=0;i<numgrids;i++){
 			velocity_mag=sqrt(pow(vx_list[i],(double)2)+pow(vy_list[i],(double)2))+numpar->epsvel; //epsvel to avoid velocity being nil.
@@ -4501,5 +4579,10 @@
 	}
 	else if(fit==3){
-		/*We are using an spacially average absolute misfit: */
+		/*We are using an spacially average absolute misfit:
+		 *
+		 *      1                    2              2
+		 * J = ---  sqrt(  (u - u   )  +  (v - v   )  )
+		 *      S                obs            obs
+		 */
 		for (i=0;i<numgrids;i++){
 			misfit_list[i]=sqrt(pow(vx_list[i]-obs_vx_list[i],2)+pow(vy_list[i]-obs_vx_list[i],2))/S;
