Index: /issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 9842)
+++ /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 9843)
@@ -4905,5 +4905,5 @@
 	Input* vx_input=inputs->GetInput(HydrologyWaterVxEnum); _assert_(vx_input);
 	Input* vy_input=inputs->GetInput(HydrologyWaterVyEnum); _assert_(vy_input);
-	h=this->GetArea();
+	h=sqrt(2*this->GetArea());
 
 	/* Start  looping on the number of gaussian points: */
@@ -4950,20 +4950,19 @@
 					&Ke->values[0],1);
 
-		if(artdiff){
-			vel=sqrt(pow(vx,2.)+pow(vy,2.));
-			K[0][0]=h/(2*vel)*vx*vx;
-			K[1][0]=h/(2*vel)*vy*vx;
-			K[0][1]=h/(2*vel)*vx*vy;
-			K[1][1]=h/(2*vel)*vy*vy;
-			KDL[0][0]=DL_scalar*K[0][0];
-			KDL[1][0]=DL_scalar*K[1][0];
-			KDL[0][1]=DL_scalar*K[0][1];
-			KDL[1][1]=DL_scalar*K[1][1];
-
-			TripleMultiply( &Bprime[0][0],2,numdof,1,
-						&KDL[0][0],2,2,0,
-						&Bprime[0][0],2,numdof,0,
-						&Ke->values[0],1);
-		}
+		/*Artificial diffusivity*/
+		vel=sqrt(pow(vx,2.)+pow(vy,2.));
+		K[0][0]=artdiff*h/(2*vel)*vx*vx;
+		K[1][0]=artdiff*h/(2*vel)*vy*vx;
+		K[0][1]=artdiff*h/(2*vel)*vx*vy;
+		K[1][1]=artdiff*h/(2*vel)*vy*vy;
+		KDL[0][0]=DL_scalar*K[0][0];
+		KDL[1][0]=DL_scalar*K[1][0];
+		KDL[0][1]=DL_scalar*K[0][1];
+		KDL[1][1]=DL_scalar*K[1][1];
+
+		TripleMultiply( &Bprime[0][0],2,numdof,1,
+					&KDL[0][0],2,2,0,
+					&Bprime[0][0],2,numdof,0,
+					&Ke->values[0],1);
 	}
 
