From 34f2e5fce2913fcb1e7509a47146443088666398 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Thu, 12 Dec 2013 06:16:04 +0000
Subject: [PATCH] add support for 2nd order elements (patch from Jeff Baylor,
 ticket #221)

---
 Geo/GModelIO_VTK.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Geo/GModelIO_VTK.cpp b/Geo/GModelIO_VTK.cpp
index 6fc8d12d11..cba22e8c84 100644
--- a/Geo/GModelIO_VTK.cpp
+++ b/Geo/GModelIO_VTK.cpp
@@ -240,6 +240,7 @@ int GModel::readVTK(const std::string &name, bool bigEndian)
 	}
 	switch(type){
 	case 1: elements[0][1].push_back(new MPoint(cells[i])); break;
+	// first order elements
 	case 3: elements[1][1].push_back(new MLine(cells[i])); break;
 	case 5: elements[2][1].push_back(new MTriangle(cells[i])); break;
 	case 9: elements[3][1].push_back(new MQuadrangle(cells[i])); break;
@@ -247,6 +248,12 @@ int GModel::readVTK(const std::string &name, bool bigEndian)
 	case 12: elements[5][1].push_back(new MHexahedron(cells[i])); break;
 	case 13: elements[6][1].push_back(new MPrism(cells[i])); break;
 	case 14: elements[7][1].push_back(new MPyramid(cells[i])); break;
+	// second order elements
+	case 21: elements[1][1].push_back(new MLine(cells[i])); break;
+	case 22: elements[2][1].push_back(new MTriangle(cells[i])); break;
+	case 23: elements[3][1].push_back(new MQuadrangle(cells[i])); break;
+	case 24: elements[4][1].push_back(new MTetrahedron(cells[i])); break;
+	case 25: elements[5][1].push_back(new MHexahedron(cells[i])); break;
 	default:
 	  Msg::Error("Unknown type of cell %d", type);
 	  break;
-- 
GitLab