From dff550a48ccb5aef21bb6ab590c1b810c305a109 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Tue, 11 Feb 2020 14:42:16 +0100 Subject: [PATCH 1/2] Curve new elements in HPRefinement Use correct check for curvature of TRIGs in VSSolution --- libsrc/meshing/hprefinement.cpp | 2 ++ libsrc/visualization/vssolution.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libsrc/meshing/hprefinement.cpp b/libsrc/meshing/hprefinement.cpp index 25fc890f..a787be0e 100644 --- a/libsrc/meshing/hprefinement.cpp +++ b/libsrc/meshing/hprefinement.cpp @@ -1407,6 +1407,7 @@ namespace netgen el.SetIndex(hpel.index); if(setorders) el.SetOrder(act_ref+1,act_ref+1,0); + el.SetCurved(true); mesh.AddSurfaceElement(el); break; } @@ -1422,6 +1423,7 @@ namespace netgen el.hp_elnr = i; if(setorders) el.SetOrder(act_ref+1,act_ref+1,act_ref+1); + el.SetCurved(true); mesh.AddVolumeElement(el); break; } diff --git a/libsrc/visualization/vssolution.cpp b/libsrc/visualization/vssolution.cpp index d0aa8468..c39156ea 100644 --- a/libsrc/visualization/vssolution.cpp +++ b/libsrc/visualization/vssolution.cpp @@ -1651,7 +1651,7 @@ namespace netgen // NgProfiler::StopTimer(timer1c); #else - bool curved = curv.IsSurfaceElementCurved(sei); + bool curved = (*mesh)[sei].IsCurved(); for (int iy = 0, ii = 0; iy <= n; iy++) for (int ix = 0; ix <= n-iy; ix++, ii++) From 34ac3b200dc7345e025829867425c0c6d8b30251 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Tue, 11 Feb 2020 16:04:13 +0100 Subject: [PATCH 2/2] HPRefinement: curve new elements only if coarse el was curved --- libsrc/meshing/hprefinement.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libsrc/meshing/hprefinement.cpp b/libsrc/meshing/hprefinement.cpp index a787be0e..b7507e33 100644 --- a/libsrc/meshing/hprefinement.cpp +++ b/libsrc/meshing/hprefinement.cpp @@ -1407,7 +1407,8 @@ namespace netgen el.SetIndex(hpel.index); if(setorders) el.SetOrder(act_ref+1,act_ref+1,0); - el.SetCurved(true); + if((*mesh.coarsemesh)[SurfaceElementIndex{hpel.coarse_elnr}].IsCurved()) + el.SetCurved(true); mesh.AddSurfaceElement(el); break; } @@ -1423,7 +1424,8 @@ namespace netgen el.hp_elnr = i; if(setorders) el.SetOrder(act_ref+1,act_ref+1,act_ref+1); - el.SetCurved(true); + if((*mesh.coarsemesh)[ElementIndex{hpel.coarse_elnr}].IsCurved()) + el.SetCurved(true); mesh.AddVolumeElement(el); break; }