Index: /issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp	(revision 15494)
+++ /issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp	(revision 15495)
@@ -1102,24 +1102,5 @@
 			basis[5]=gauss->coord3*(1.+gauss->coord4)/2.;
 			return;
-		case P2xP1Enum:
-			/*Corner nodes*/
-			basis[ 0]=0.;
-			basis[ 1]=0.;
-			basis[ 2]=0.;
-			basis[ 3]=0.;
-			basis[ 4]=0.;
-			basis[ 5]=0.;
-			/*mid-sides of quads*/
-			basis[ 6]=0.;
-			basis[ 7]=0.;
-			basis[ 8]=0.;
-			/*mid-sides of triangles*/
-			basis[ 9]=0.;
-			basis[10]=0.;
-			basis[11]=0.;
-			basis[12]=0.;
-			basis[13]=0.;
-			basis[14]=0.;
-		case MINIEnum:
+		case P1bubbleEnum:
 			basis[0]=gauss->coord1*(1.-gauss->coord4)/2.;
 			basis[1]=gauss->coord2*(1.-gauss->coord4)/2.;
@@ -1129,4 +1110,40 @@
 			basis[5]=gauss->coord3*(1.+gauss->coord4)/2.;
 			basis[6]=27.*gauss->coord1*gauss->coord2*gauss->coord3*(1.+gauss->coord4)*(1.-gauss->coord4);
+			return;
+		case P2xP1Enum:
+			/*Corner nodes*/
+			basis[ 0]=gauss->coord1*(2.*gauss->coord1-1.)*(1.-gauss->coord4)/2.;
+			basis[ 1]=gauss->coord2*(2.*gauss->coord2-1.)*(1.-gauss->coord4)/2.;
+			basis[ 2]=gauss->coord3*(2.*gauss->coord3-1.)*(1.-gauss->coord4)/2.;
+			basis[ 3]=gauss->coord1*(2.*gauss->coord1-1.)*(1.+gauss->coord4)/2.;
+			basis[ 4]=gauss->coord2*(2.*gauss->coord2-1.)*(1.+gauss->coord4)/2.;
+			basis[ 5]=gauss->coord3*(2.*gauss->coord3-1.)*(1.+gauss->coord4)/2.;
+			/*mid-sides of triangles*/
+			basis[ 6]=4.*gauss->coord3*gauss->coord2*(1.-gauss->coord4)/2.;
+			basis[ 7]=4.*gauss->coord3*gauss->coord1*(1.-gauss->coord4)/2.;
+			basis[ 8]=4.*gauss->coord1*gauss->coord2*(1.-gauss->coord4)/2.;
+			basis[ 9]=4.*gauss->coord3*gauss->coord2*(1.+gauss->coord4)/2.;
+			basis[10]=4.*gauss->coord3*gauss->coord1*(1.+gauss->coord4)/2.;
+			basis[11]=4.*gauss->coord1*gauss->coord2*(1.+gauss->coord4)/2.;
+			return;
+		case P2Enum:
+			/*Corner nodes*/
+			basis[ 0]=gauss->coord1*(2.*gauss->coord1-1.)*gauss->coord4*(gauss->coord4-1.)/2.;
+			basis[ 1]=gauss->coord2*(2.*gauss->coord2-1.)*gauss->coord4*(gauss->coord4-1.)/2.;
+			basis[ 2]=gauss->coord3*(2.*gauss->coord3-1.)*gauss->coord4*(gauss->coord4-1.)/2.;
+			basis[ 3]=gauss->coord1*(2.*gauss->coord1-1.)*gauss->coord4*(gauss->coord4+1.)/2.;
+			basis[ 4]=gauss->coord2*(2.*gauss->coord2-1.)*gauss->coord4*(gauss->coord4+1.)/2.;
+			basis[ 5]=gauss->coord3*(2.*gauss->coord3-1.)*gauss->coord4*(gauss->coord4+1.)/2.;
+			/*mid-sides of quads*/
+			basis[ 6]=gauss->coord1*(1.-gauss->coord4*gauss->coord4);
+			basis[ 7]=gauss->coord2*(1.-gauss->coord4*gauss->coord4);
+			basis[ 8]=gauss->coord3*(1.-gauss->coord4*gauss->coord4);
+			/*mid-sides of triangles*/
+			basis[ 9]=2.*gauss->coord3*gauss->coord2*gauss->coord4*(gauss->coord4-1.);
+			basis[10]=2.*gauss->coord3*gauss->coord1*gauss->coord4*(gauss->coord4-1.);
+			basis[11]=2.*gauss->coord1*gauss->coord2*gauss->coord4*(gauss->coord4-1.);
+			basis[12]=2.*gauss->coord3*gauss->coord2*gauss->coord4*(gauss->coord4+1.);
+			basis[13]=2.*gauss->coord3*gauss->coord1*gauss->coord4*(gauss->coord4+1.);
+			basis[14]=2.*gauss->coord1*gauss->coord2*gauss->coord4*(gauss->coord4+1.);
 			return;
 		default:
