From e5ead2065b50b3b9aa6e5a2054c5beedf9abb1d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joachim=20Sch=C3=B6berl?= Date: Wed, 4 Dec 2019 17:33:16 +0100 Subject: [PATCH] get rid of 10000 segments limit in hp-refinement --- libsrc/meshing/hprefinement.cpp | 13 ++++++++++--- libsrc/meshing/hprefinement.hpp | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/libsrc/meshing/hprefinement.cpp b/libsrc/meshing/hprefinement.cpp index 3aef7ebd..e511b137 100644 --- a/libsrc/meshing/hprefinement.cpp +++ b/libsrc/meshing/hprefinement.cpp @@ -600,11 +600,15 @@ namespace netgen HPRefElement hpel(mesh[i]); hpel.coarse_elnr = i; hpel.type = HP_SEGM; - hpel.index = seg.edgenr + 10000*seg.si; + // hpel.index = seg.edgenr + 10000*seg.si; + hpel.index = seg.edgenr; + hpel.si = seg.si; + /* if(seg.edgenr >= 10000) { throw NgException("assumption that seg.edgenr < 10000 is wrong"); } + */ elements.Append(hpel); } } @@ -925,6 +929,7 @@ namespace netgen for (int k = 0; k < 8; k++) newel.pnums[k] = newpnums[hprs->newels[j][k]-1]; newel.index = el.index; + newel.si = el.si; newel.coarse_elnr = el.coarse_elnr; newel.levelx = newel.levely = newel.levelz = newlevel; @@ -1361,8 +1366,10 @@ namespace netgen seg[0] = hpel.pnums[0]; seg[1] = hpel.pnums[1]; // NOTE: only for less than 10000 elements (HACK) !!! - seg.edgenr = hpel.index % 10000; - seg.si = hpel.index / 10000; + // seg.edgenr = hpel.index % 10000; + // seg.si = hpel.index / 10000; + seg.edgenr = hpel.index; + seg.si = hpel.si; /* seg.epgeominfo[0].dist = hpel.param[0][0]; // he: war hpel.param[0][0] diff --git a/libsrc/meshing/hprefinement.hpp b/libsrc/meshing/hprefinement.hpp index 8ccf5069..0affd82b 100644 --- a/libsrc/meshing/hprefinement.hpp +++ b/libsrc/meshing/hprefinement.hpp @@ -291,6 +291,7 @@ public: PointIndex pnums[8]; double param[8][3]; int index; + int si; int levelx; int levely; int levelz;