Index: /issm/trunk/src/c/objects/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Tria.cpp	(revision 604)
+++ /issm/trunk/src/c/objects/Tria.cpp	(revision 605)
@@ -573,4 +573,5 @@
 	double  v_gauss[2]={0.0};
 	double  K[2][2]={0.0};
+	double  KDL[2][2]={0.0};
 	double  dt;
 	int     dofs[2]={0,1};
@@ -629,5 +630,4 @@
 		GetL(&L[0], &xyz_list[0][0], gauss_l1l2l3,numberofdofspernode);
 
-
 		DL_scalar=gauss_weight*Jdettria;
 
@@ -638,5 +638,4 @@
 					  &Ke_gg_gaussian[0][0],0);
 		
-		
 		/*Get B  and B prime matrix: */
 		GetB_prog(&B[0][0], &xyz_list[0][0], gauss_l1l2l3);
@@ -680,4 +679,20 @@
 		for( i=0; i<numdof; i++) for(j=0;j<numdof;j++) Ke_gg[i][j]+=Ke_gg_thickness2[i][j];
 		
+		if(artdiff){
+			
+			/* Compute artificial diffusivity */
+			KDL[0][0]=DL_scalar*K[0][0];
+			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_gg_gaussian[0][0],0);
+
+			/* Add artificial diffusivity matrix */
+			for( i=0; i<numdof; i++) for(j=0;j<numdof;j++) Ke_gg[i][j]+=Ke_gg_gaussian[i][j];
+			
+		}
+
 		#ifdef _DEBUGELEMENTS_
 		if(my_rank==RANK && id==ELID){ 
