Index: /issm/trunk-jpl/src/c/classes/Elements/TriaRef.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/TriaRef.cpp	(revision 15281)
+++ /issm/trunk-jpl/src/c/classes/Elements/TriaRef.cpp	(revision 15282)
@@ -550,2 +550,15 @@
 }
 /*}}}*/
+/*FUNCTION TriaRef::NumberofNodes{{{*/
+int TriaRef::NumberofNodes(void){
+
+	switch(this->element_type){
+		case P1Enum:   return NUMNODESP1;
+		case P1DGEnum: return NUMNODESP1;
+		case P2Enum:   return NUMNODESP2;
+		default:       _error_("Element type "<<EnumToStringx(this->element_type)<<" not supported yet");
+	}
+
+	return -1;
+}
+/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Elements/TriaRef.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/TriaRef.h	(revision 15281)
+++ /issm/trunk-jpl/src/c/classes/Elements/TriaRef.h	(revision 15282)
@@ -46,4 +46,6 @@
 		void GetInputDerivativeValue(IssmDouble* pp, IssmDouble* plist,IssmDouble* xyz_list, GaussTria* gauss);
 
+		int  NumberofNodes(void);
+
 };
 #endif
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 15281)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 15282)
@@ -494,4 +494,5 @@
 	P1Enum,
 	P1DGEnum,
+	P2Enum,
 	/*}}}*/
 	/*Results{{{*/
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 15281)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 15282)
@@ -486,4 +486,5 @@
 		case P1Enum : return "P1";
 		case P1DGEnum : return "P1DG";
+		case P2Enum : return "P2";
 		case SaveResultsEnum : return "SaveResults";
 		case BoolElementResultEnum : return "BoolElementResult";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 15281)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 15282)
@@ -495,4 +495,5 @@
 	      else if (strcmp(name,"P1")==0) return P1Enum;
 	      else if (strcmp(name,"P1DG")==0) return P1DGEnum;
+	      else if (strcmp(name,"P2")==0) return P2Enum;
 	      else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
 	      else if (strcmp(name,"BoolElementResult")==0) return BoolElementResultEnum;
@@ -505,9 +506,9 @@
 	      else if (strcmp(name,"Patch")==0) return PatchEnum;
 	      else if (strcmp(name,"PatchNodes")==0) return PatchNodesEnum;
-	      else if (strcmp(name,"PatchVertices")==0) return PatchVerticesEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"PentaP1ElementResult")==0) return PentaP1ElementResultEnum;
+	      if (strcmp(name,"PatchVertices")==0) return PatchVerticesEnum;
+	      else if (strcmp(name,"PentaP1ElementResult")==0) return PentaP1ElementResultEnum;
 	      else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
 	      else if (strcmp(name,"Step")==0) return StepEnum;
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 15281)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 15282)
@@ -6575,4 +6575,18 @@
 	return StringToEnum('P1DG')[0]
 
+def P2Enum():
+	"""
+	P2ENUM - Enum of P2
+
+	WARNING: DO NOT MODIFY THIS FILE
+				this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+				Please read src/c/shared/Enum/README for more information
+
+	   Usage:
+	      macro=P2Enum()
+	"""
+
+	return StringToEnum('P2')[0]
+
 def SaveResultsEnum():
 	"""
@@ -7777,4 +7791,4 @@
 	"""
 
-	return 554
-
+	return 555
+
Index: /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m	(revision 15281)
+++ /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m	(revision 15282)
@@ -9,3 +9,3 @@
 %      macro=MaximumNumberOfEnums()
 
-macro=554;
+macro=555;
Index: /issm/trunk-jpl/src/m/enum/P2Enum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/P2Enum.m	(revision 15282)
+++ /issm/trunk-jpl/src/m/enum/P2Enum.m	(revision 15282)
@@ -0,0 +1,11 @@
+function macro=P2Enum()
+%P2ENUM - Enum of P2
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+%            Please read src/c/shared/Enum/README for more information
+%
+%   Usage:
+%      macro=P2Enum()
+
+macro=StringToEnum('P2');
