From a3d7be7e790d71775df2ebf8f3684098e49751d0 Mon Sep 17 00:00:00 2001 From: Christopher Lackner Date: Thu, 22 Nov 2018 16:23:23 +0100 Subject: [PATCH 1/2] pickle curving of mesh --- libsrc/meshing/meshclass.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libsrc/meshing/meshclass.cpp b/libsrc/meshing/meshclass.cpp index c93742fd..89d698c3 100644 --- a/libsrc/meshing/meshclass.cpp +++ b/libsrc/meshing/meshclass.cpp @@ -1330,7 +1330,8 @@ namespace netgen string str; archive & str; istringstream ist(str); - geometry = geometryregister.LoadFromMeshFile (ist); + geometry = geometryregister.LoadFromMeshFile (ist); + archive << curvedelems->GetOrder(); } if (archive.Input()) @@ -1343,6 +1344,9 @@ namespace netgen topology.Update(); clusters -> Update(); } + int order; + archive << order; + BuildCurvedElements(order); SetNextMajorTimeStamp(); } } From ec129f6962e053b19b8f3fa37d68a07dae4ac89b Mon Sep 17 00:00:00 2001 From: Christopher Lackner Date: Thu, 22 Nov 2018 19:11:49 +0100 Subject: [PATCH 2/2] fix mesh pickling (if there is no geometry/no curving) --- libsrc/meshing/meshclass.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libsrc/meshing/meshclass.cpp b/libsrc/meshing/meshclass.cpp index 89d698c3..78a8be18 100644 --- a/libsrc/meshing/meshclass.cpp +++ b/libsrc/meshing/meshclass.cpp @@ -1324,6 +1324,7 @@ namespace netgen if (geometry) geometry -> SaveToMeshFile (ost); archive << ost.str(); + archive << (geometry ? curvedelems->GetOrder() : 1); } else { @@ -1331,7 +1332,10 @@ namespace netgen archive & str; istringstream ist(str); geometry = geometryregister.LoadFromMeshFile (ist); - archive << curvedelems->GetOrder(); + int order; + archive & order; + if(geometry && order > 1) + BuildCurvedElements(order); } if (archive.Input()) @@ -1344,9 +1348,6 @@ namespace netgen topology.Update(); clusters -> Update(); } - int order; - archive << order; - BuildCurvedElements(order); SetNextMajorTimeStamp(); } }