mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-25 05:20:34 +05:00
delaunay - stay consistent with code on master
This commit is contained in:
parent
6c37ce33b0
commit
a2cc102849
@ -737,14 +737,10 @@ namespace netgen
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DelaunayRemoveDegenerated( const Mesh::T_POINTS & points, NgArray<DelaunayTet> & tempels )
|
void DelaunayRemoveDegenerated( const Mesh::T_POINTS & points, NgArray<DelaunayTet> & tempels, NgBitArray & badnode, int np )
|
||||||
{
|
{
|
||||||
static Timer tdegenerated("Delaunay - remove degenerated"); RegionTimer rt(tdegenerated);
|
static Timer tdegenerated("Delaunay - remove degenerated"); RegionTimer rt(tdegenerated);
|
||||||
|
|
||||||
auto np = points.Size();
|
|
||||||
|
|
||||||
NgBitArray badnode(np);
|
|
||||||
badnode.Clear();
|
|
||||||
int ndeg = 0;
|
int ndeg = 0;
|
||||||
for (int i = 1; i <= tempels.Size(); i++)
|
for (int i = 1; i <= tempels.Size(); i++)
|
||||||
{
|
{
|
||||||
@ -795,12 +791,10 @@ namespace netgen
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Remove flat tets containing two adjacent surface trigs
|
// Remove flat tets containing two adjacent surface trigs
|
||||||
void DelaunayRemoveTwoTriaTets( const Mesh & mesh, NgArray<DelaunayTet> & tempels, NgArray<int> & openels )
|
void DelaunayRemoveTwoTriaTets( const Mesh & mesh, NgArray<DelaunayTet> & tempels, NgArray<int> & openels, NgBitArray & badnode, int np )
|
||||||
{
|
{
|
||||||
static Timer topenel("Delaunay - find openel"); RegionTimer rt(topenel);
|
static Timer topenel("Delaunay - find openel"); RegionTimer rt(topenel);
|
||||||
|
|
||||||
auto np = mesh.GetNP();
|
|
||||||
|
|
||||||
// find surface triangles which are no face of any tet
|
// find surface triangles which are no face of any tet
|
||||||
|
|
||||||
INDEX_3_HASHTABLE<int> openeltab(mesh.GetNOpenElements()+3);
|
INDEX_3_HASHTABLE<int> openeltab(mesh.GetNOpenElements()+3);
|
||||||
@ -887,9 +881,6 @@ namespace netgen
|
|||||||
// cout << "tetedges:";
|
// cout << "tetedges:";
|
||||||
// tetedges.PrintMemInfo (cout);
|
// tetedges.PrintMemInfo (cout);
|
||||||
|
|
||||||
NgBitArray badnode(np);
|
|
||||||
badnode.Clear();
|
|
||||||
|
|
||||||
for (INDEX_2_HASHTABLE<INDEX_2>::Iterator it = twotrias.Begin();
|
for (INDEX_2_HASHTABLE<INDEX_2>::Iterator it = twotrias.Begin();
|
||||||
it != twotrias.End(); it++)
|
it != twotrias.End(); it++)
|
||||||
{
|
{
|
||||||
@ -1622,11 +1613,13 @@ namespace netgen
|
|||||||
tempels.Append (el);
|
tempels.Append (el);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NgBitArray badnode(mesh.GetNP());
|
||||||
|
badnode.Clear();
|
||||||
|
|
||||||
DelaunayRemoveDegenerated(mesh.Points(), tempels);
|
DelaunayRemoveDegenerated(mesh.Points(), tempels, badnode, np);
|
||||||
|
|
||||||
NgArray<int> openels;
|
NgArray<int> openels;
|
||||||
DelaunayRemoveTwoTriaTets(mesh, tempels, openels);
|
DelaunayRemoveTwoTriaTets(mesh, tempels, openels, badnode, np);
|
||||||
DelaunayRemoveIntersecting(mesh, tempels, openels, pmin, pmax);
|
DelaunayRemoveIntersecting(mesh, tempels, openels, pmin, pmax);
|
||||||
DelaunayRemoveOuter(mesh, tempels, adfront);
|
DelaunayRemoveOuter(mesh, tempels, adfront);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user