mirror of
https://github.com/NGSolve/netgen.git
synced 2025-01-13 22:50:33 +05:00
little smoothing in occgenmesh
This commit is contained in:
parent
4bfe42b305
commit
eec95bf406
@ -331,11 +331,10 @@ namespace netgen
|
|||||||
|
|
||||||
bool exists = 0;
|
bool exists = 0;
|
||||||
if (merge_solids)
|
if (merge_solids)
|
||||||
// for (PointIndex pi = 1; pi <= mesh.GetNP(); pi++)
|
for (PointIndex pi : mesh.Points().Range())
|
||||||
for (PointIndex pi : Range(mesh.Points()))
|
|
||||||
if (Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)
|
if (Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)
|
||||||
{
|
{
|
||||||
exists = 1;
|
exists = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -346,7 +345,6 @@ namespace netgen
|
|||||||
|
|
||||||
(*testout) << "different vertices = " << mesh.GetNP() << endl;
|
(*testout) << "different vertices = " << mesh.GetNP() << endl;
|
||||||
|
|
||||||
|
|
||||||
// int first_ep = mesh.GetNP()+1;
|
// int first_ep = mesh.GetNP()+1;
|
||||||
PointIndex first_ep = mesh.Points().End();
|
PointIndex first_ep = mesh.Points().End();
|
||||||
auto vertexrange = mesh.Points().Range();
|
auto vertexrange = mesh.Points().Range();
|
||||||
@ -476,13 +474,12 @@ namespace netgen
|
|||||||
|
|
||||||
DivideEdge (edge, mp, params, mesh, mparam);
|
DivideEdge (edge, mp, params, mesh, mparam);
|
||||||
|
|
||||||
NgArray <PointIndex> pnums;
|
NgArray<PointIndex> pnums(mp.Size()+2);
|
||||||
pnums.SetSize (mp.Size()+2);
|
|
||||||
|
|
||||||
if (!merge_solids)
|
if (!merge_solids)
|
||||||
{
|
{
|
||||||
pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge)) + PointIndex::BASE-1;
|
pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge)) + PointIndex::BASE-1;
|
||||||
pnums[pnums.Size()-1] = geom.vmap.FindIndex (TopExp::LastVertex (edge)) + PointIndex::BASE-1;
|
pnums.Last() = geom.vmap.FindIndex (TopExp::LastVertex (edge)) + PointIndex::BASE-1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -491,7 +488,6 @@ namespace netgen
|
|||||||
|
|
||||||
pnums[0] = PointIndex::INVALID;
|
pnums[0] = PointIndex::INVALID;
|
||||||
pnums.Last() = PointIndex::INVALID;
|
pnums.Last() = PointIndex::INVALID;
|
||||||
// for (PointIndex pi = 1; pi < first_ep; pi++)
|
|
||||||
for (PointIndex pi : vertexrange)
|
for (PointIndex pi : vertexrange)
|
||||||
{
|
{
|
||||||
if (Dist2 (mesh[pi], fp) < eps*eps) pnums[0] = pi;
|
if (Dist2 (mesh[pi], fp) < eps*eps) pnums[0] = pi;
|
||||||
@ -499,41 +495,28 @@ namespace netgen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 1; i <= mp.Size(); i++)
|
for (size_t i = 1; i <= mp.Size(); i++)
|
||||||
{
|
{
|
||||||
bool exists = 0;
|
bool exists = 0;
|
||||||
tsearch.Start();
|
tsearch.Start();
|
||||||
PointIndex j;
|
|
||||||
/*
|
for (PointIndex j = first_ep; j < mesh.Points().End(); j++)
|
||||||
for (j = first_ep; j <= mesh.GetNP(); j++)
|
|
||||||
if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)
|
if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)
|
||||||
{
|
{
|
||||||
exists = 1;
|
exists = true;
|
||||||
break;
|
pnums[i] = j;
|
||||||
}
|
|
||||||
*/
|
|
||||||
for (j = first_ep; j < mesh.Points().End(); j++)
|
|
||||||
if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)
|
|
||||||
{
|
|
||||||
exists = 1;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
tsearch.Stop();
|
tsearch.Stop();
|
||||||
|
|
||||||
if (exists)
|
if (!exists)
|
||||||
pnums[i] = j;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pnums[i] = mesh.AddPoint (mp[i-1]);
|
pnums[i] = mesh.AddPoint (mp[i-1]);
|
||||||
(*testout) << "add meshpoint " << mp[i-1] << endl;
|
|
||||||
// pnums[i] = mesh.GetNP();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
(*testout) << "NP = " << mesh.GetNP() << endl;
|
(*testout) << "NP = " << mesh.GetNP() << endl;
|
||||||
//(*testout) << pnums[pnums.Size()-1] << endl;
|
//(*testout) << pnums[pnums.Size()-1] << endl;
|
||||||
|
|
||||||
for (int i = 1; i <= mp.Size()+1; i++)
|
for (size_t i = 1; i <= mp.Size()+1; i++)
|
||||||
{
|
{
|
||||||
edgenr++;
|
edgenr++;
|
||||||
Segment seg;
|
Segment seg;
|
||||||
@ -656,15 +639,6 @@ namespace netgen
|
|||||||
multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);
|
multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);
|
||||||
geom.facemeshstatus[k-1] = -1;
|
geom.facemeshstatus[k-1] = -1;
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
if (k != 42)
|
|
||||||
{
|
|
||||||
cout << "skipped" << endl;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
FaceDescriptor & fd = mesh.GetFaceDescriptor(k);
|
FaceDescriptor & fd = mesh.GetFaceDescriptor(k);
|
||||||
|
|
||||||
int oldnf = mesh.GetNSE();
|
int oldnf = mesh.GetNSE();
|
||||||
@ -699,14 +673,12 @@ namespace netgen
|
|||||||
static Timer t("MeshSurface: Find edges and points - Physical"); RegionTimer r(t);
|
static Timer t("MeshSurface: Find edges and points - Physical"); RegionTimer r(t);
|
||||||
int cntp = 0;
|
int cntp = 0;
|
||||||
glob2loc = 0;
|
glob2loc = 0;
|
||||||
for (int i = 1; i <= mesh.GetNSeg(); i++)
|
|
||||||
{
|
for (Segment & seg : mesh.LineSegments())
|
||||||
Segment & seg = mesh.LineSegment(i);
|
|
||||||
if (seg.si == k)
|
if (seg.si == k)
|
||||||
|
for (int j = 0; j < 2; j++)
|
||||||
{
|
{
|
||||||
for (int j = 1; j <= 2; j++)
|
PointIndex pi = seg[j];
|
||||||
{
|
|
||||||
PointIndex pi = (j == 1) ? seg[0] : seg[1];
|
|
||||||
if (glob2loc[pi] == 0)
|
if (glob2loc[pi] == 0)
|
||||||
{
|
{
|
||||||
meshing.AddPoint (mesh.Point(pi), pi);
|
meshing.AddPoint (mesh.Point(pi), pi);
|
||||||
@ -714,12 +686,13 @@ namespace netgen
|
|||||||
glob2loc[pi] = cntp;
|
glob2loc[pi] = cntp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
/*
|
||||||
for (int i = 1; i <= mesh.GetNSeg(); i++)
|
for (int i = 1; i <= mesh.GetNSeg(); i++)
|
||||||
{
|
{
|
||||||
Segment & seg = mesh.LineSegment(i);
|
Segment & seg = mesh.LineSegment(i);
|
||||||
|
*/
|
||||||
|
for (Segment & seg : mesh.LineSegments())
|
||||||
if (seg.si == k)
|
if (seg.si == k)
|
||||||
{
|
{
|
||||||
PointGeomInfo gi0, gi1;
|
PointGeomInfo gi0, gi1;
|
||||||
@ -730,9 +703,6 @@ namespace netgen
|
|||||||
gi1.v = seg.epgeominfo[1].v;
|
gi1.v = seg.epgeominfo[1].v;
|
||||||
|
|
||||||
meshing.AddBoundaryElement (glob2loc[seg[0]], glob2loc[seg[1]], gi0, gi1);
|
meshing.AddBoundaryElement (glob2loc[seg[0]], glob2loc[seg[1]], gi0, gi1);
|
||||||
//(*testout) << gi0.u << " " << gi0.v << endl;
|
|
||||||
//(*testout) << gi1.u << " " << gi1.v << endl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -741,10 +711,14 @@ namespace netgen
|
|||||||
|
|
||||||
int cntp = 0;
|
int cntp = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
for (int i = 1; i <= mesh.GetNSeg(); i++)
|
for (int i = 1; i <= mesh.GetNSeg(); i++)
|
||||||
if (mesh.LineSegment(i).si == k)
|
if (mesh.LineSegment(i).si == k)
|
||||||
cntp+=2;
|
cntp+=2;
|
||||||
|
*/
|
||||||
|
for (Segment & seg : mesh.LineSegments())
|
||||||
|
if (seg.si == k)
|
||||||
|
cntp += 2;
|
||||||
|
|
||||||
NgArray<PointGeomInfo> gis;
|
NgArray<PointGeomInfo> gis;
|
||||||
|
|
||||||
@ -769,6 +743,7 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
PointGeomInfo gi = (j == 0) ? gi0 : gi1;
|
PointGeomInfo gi = (j == 0) ? gi0 : gi1;
|
||||||
|
|
||||||
|
/*
|
||||||
int l;
|
int l;
|
||||||
for (l = 0; l < gis.Size() && locpnum[j] == 0; l++)
|
for (l = 0; l < gis.Size() && locpnum[j] == 0; l++)
|
||||||
{
|
{
|
||||||
@ -780,19 +755,35 @@ namespace netgen
|
|||||||
|
|
||||||
if (locpnum[j] == 0)
|
if (locpnum[j] == 0)
|
||||||
{
|
{
|
||||||
PointIndex pi = (j == 0) ? seg[0] : seg[1];
|
PointIndex pi = seg[j];
|
||||||
meshing.AddPoint (mesh.Point(pi), pi);
|
meshing.AddPoint (mesh.Point(pi), pi);
|
||||||
|
|
||||||
gis.SetSize (gis.Size()+1);
|
gis.SetSize (gis.Size()+1);
|
||||||
gis[l] = gi;
|
gis[l] = gi;
|
||||||
locpnum[j] = l+1;
|
locpnum[j] = l+1;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
for (int l = 0; l < gis.Size(); l++)
|
||||||
|
{
|
||||||
|
double dist = sqr (gis[l].u-gi.u)+sqr(gis[l].v-gi.v);
|
||||||
|
if (dist < 1e-10)
|
||||||
|
{
|
||||||
|
locpnum[j] = l+1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (locpnum[j] == 0)
|
||||||
|
{
|
||||||
|
PointIndex pi = seg[j];
|
||||||
|
meshing.AddPoint (mesh.Point(pi), pi);
|
||||||
|
|
||||||
|
gis.Append (gi);
|
||||||
|
locpnum[j] = gis.Size();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
meshing.AddBoundaryElement (locpnum[0], locpnum[1], gi0, gi1);
|
meshing.AddBoundaryElement (locpnum[0], locpnum[1], gi0, gi1);
|
||||||
//(*testout) << gi0.u << " " << gi0.v << endl;
|
|
||||||
//(*testout) << gi1.u << " " << gi1.v << endl;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -800,7 +791,6 @@ namespace netgen
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Philippose - 15/01/2009
|
// Philippose - 15/01/2009
|
||||||
double maxh = geom.face_maxh[k-1];
|
double maxh = geom.face_maxh[k-1];
|
||||||
//double maxh = mparam.maxh;
|
//double maxh = mparam.maxh;
|
||||||
@ -870,7 +860,6 @@ namespace netgen
|
|||||||
|
|
||||||
for (int i = oldnf+1; i <= mesh.GetNSE(); i++)
|
for (int i = oldnf+1; i <= mesh.GetNSE(); i++)
|
||||||
mesh.SurfaceElement(i).SetIndex (k);
|
mesh.SurfaceElement(i).SetIndex (k);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ofstream problemfile("occmesh.rep");
|
// ofstream problemfile("occmesh.rep");
|
||||||
@ -948,10 +937,7 @@ namespace netgen
|
|||||||
meshopt.SetFaceIndex (k);
|
meshopt.SetFaceIndex (k);
|
||||||
meshopt.SetImproveEdges (0);
|
meshopt.SetImproveEdges (0);
|
||||||
meshopt.SetMetricWeight (mparam.elsizeweight);
|
meshopt.SetMetricWeight (mparam.elsizeweight);
|
||||||
//meshopt.SetMetricWeight (0.2);
|
|
||||||
meshopt.SetWriteStatus (0);
|
meshopt.SetWriteStatus (0);
|
||||||
|
|
||||||
// (*testout) << "EdgeSwapping (mesh, (i > mparam.optsteps2d/2))" << endl;
|
|
||||||
meshopt.EdgeSwapping (mesh, (i > mparam.optsteps2d/2));
|
meshopt.EdgeSwapping (mesh, (i > mparam.optsteps2d/2));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -960,11 +946,8 @@ namespace netgen
|
|||||||
MeshOptimize2dOCCSurfaces meshopt(geom);
|
MeshOptimize2dOCCSurfaces meshopt(geom);
|
||||||
meshopt.SetFaceIndex (k);
|
meshopt.SetFaceIndex (k);
|
||||||
meshopt.SetImproveEdges (0);
|
meshopt.SetImproveEdges (0);
|
||||||
//meshopt.SetMetricWeight (0.2);
|
|
||||||
meshopt.SetMetricWeight (mparam.elsizeweight);
|
meshopt.SetMetricWeight (mparam.elsizeweight);
|
||||||
meshopt.SetWriteStatus (0);
|
meshopt.SetWriteStatus (0);
|
||||||
|
|
||||||
// (*testout) << "ImproveMesh (mesh)" << endl;
|
|
||||||
meshopt.ImproveMesh (mesh, mparam);
|
meshopt.ImproveMesh (mesh, mparam);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -972,11 +955,8 @@ namespace netgen
|
|||||||
MeshOptimize2dOCCSurfaces meshopt(geom);
|
MeshOptimize2dOCCSurfaces meshopt(geom);
|
||||||
meshopt.SetFaceIndex (k);
|
meshopt.SetFaceIndex (k);
|
||||||
meshopt.SetImproveEdges (0);
|
meshopt.SetImproveEdges (0);
|
||||||
//meshopt.SetMetricWeight (0.2);
|
|
||||||
meshopt.SetMetricWeight (mparam.elsizeweight);
|
meshopt.SetMetricWeight (mparam.elsizeweight);
|
||||||
meshopt.SetWriteStatus (0);
|
meshopt.SetWriteStatus (0);
|
||||||
|
|
||||||
// (*testout) << "CombineImprove (mesh)" << endl;
|
|
||||||
meshopt.CombineImprove (mesh);
|
meshopt.CombineImprove (mesh);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -985,11 +965,8 @@ namespace netgen
|
|||||||
MeshOptimize2dOCCSurfaces meshopt(geom);
|
MeshOptimize2dOCCSurfaces meshopt(geom);
|
||||||
meshopt.SetFaceIndex (k);
|
meshopt.SetFaceIndex (k);
|
||||||
meshopt.SetImproveEdges (0);
|
meshopt.SetImproveEdges (0);
|
||||||
//meshopt.SetMetricWeight (0.2);
|
|
||||||
meshopt.SetMetricWeight (mparam.elsizeweight);
|
meshopt.SetMetricWeight (mparam.elsizeweight);
|
||||||
meshopt.SetWriteStatus (0);
|
meshopt.SetWriteStatus (0);
|
||||||
|
|
||||||
// (*testout) << "ImproveMesh (mesh)" << endl;
|
|
||||||
meshopt.ImproveMesh (mesh, mparam);
|
meshopt.ImproveMesh (mesh, mparam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1003,12 +980,8 @@ namespace netgen
|
|||||||
|
|
||||||
multithread.task = savetask;
|
multithread.task = savetask;
|
||||||
|
|
||||||
// Gerhard BEGIN
|
|
||||||
for (int i = 0; i < mesh.GetNFD(); i++)
|
for (int i = 0; i < mesh.GetNFD(); i++)
|
||||||
mesh.SetBCName (i, mesh.GetFaceDescriptor(i+1).GetBCName());
|
mesh.SetBCName (i, mesh.GetFaceDescriptor(i+1).GetBCName());
|
||||||
// for(int i = 0; i<mesh.GetNDomains();i++)
|
|
||||||
// mesh.SetMaterial(i,geom.snames[i]);
|
|
||||||
// Gerhard END
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1098,13 +1071,6 @@ namespace netgen
|
|||||||
maxedgelen = max (maxedgelen, len);
|
maxedgelen = max (maxedgelen, len);
|
||||||
minedgelen = min (minedgelen, len);
|
minedgelen = min (minedgelen, len);
|
||||||
|
|
||||||
// Philippose - 23/01/2009
|
|
||||||
// Modified the calculation of maxj, because the
|
|
||||||
// method used so far always results in maxj = 2,
|
|
||||||
// which causes the localh to be set only at the
|
|
||||||
// starting, mid and end of the edge.
|
|
||||||
// Old Algorithm:
|
|
||||||
// int maxj = 2 * (int) ceil (localh/len);
|
|
||||||
int maxj = max((int) ceil(len/localh), 2);
|
int maxj = max((int) ceil(len/localh), 2);
|
||||||
|
|
||||||
for (int j = 0; j <= maxj; j++)
|
for (int j = 0; j <= maxj; j++)
|
||||||
@ -1145,7 +1111,6 @@ namespace netgen
|
|||||||
|
|
||||||
mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), ComputeH (fabs(curvature), mparam));
|
mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), ComputeH (fabs(curvature), mparam));
|
||||||
}
|
}
|
||||||
// (*testout) << "edge " << i << " max. curvature: " << maxcur << endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
multithread.task = "Setting local mesh size (face curvature)";
|
multithread.task = "Setting local mesh size (face curvature)";
|
||||||
@ -1206,8 +1171,11 @@ namespace netgen
|
|||||||
|
|
||||||
NgArray<Line> lines(sections*nedges);
|
NgArray<Line> lines(sections*nedges);
|
||||||
|
|
||||||
|
/*
|
||||||
BoxTree<3> * searchtree =
|
BoxTree<3> * searchtree =
|
||||||
new BoxTree<3> (bb.PMin(), bb.PMax());
|
new BoxTree<3> (bb.PMin(), bb.PMax());
|
||||||
|
*/
|
||||||
|
BoxTree<3> searchtree(bb.PMin(), bb.PMax());
|
||||||
|
|
||||||
int nlines = 0;
|
int nlines = 0;
|
||||||
for (int i = 1; i <= nedges && !multithread.terminate; i++)
|
for (int i = 1; i <= nedges && !multithread.terminate; i++)
|
||||||
@ -1242,7 +1210,7 @@ namespace netgen
|
|||||||
box.SetPoint (Point3d(lines[nlines].p0));
|
box.SetPoint (Point3d(lines[nlines].p0));
|
||||||
box.AddPoint (Point3d(lines[nlines].p1));
|
box.AddPoint (Point3d(lines[nlines].p1));
|
||||||
|
|
||||||
searchtree->Insert (box.PMin(), box.PMax(), nlines+1);
|
searchtree.Insert (box.PMin(), box.PMax(), nlines+1);
|
||||||
nlines++;
|
nlines++;
|
||||||
|
|
||||||
s_start = s;
|
s_start = s;
|
||||||
@ -1267,7 +1235,7 @@ namespace netgen
|
|||||||
|
|
||||||
double mindist = 1e99;
|
double mindist = 1e99;
|
||||||
linenums.SetSize(0);
|
linenums.SetSize(0);
|
||||||
searchtree->GetIntersecting(box.PMin(),box.PMax(),linenums);
|
searchtree.GetIntersecting(box.PMin(),box.PMax(),linenums);
|
||||||
|
|
||||||
for (int j = 0; j < linenums.Size(); j++)
|
for (int j = 0; j < linenums.Size(); j++)
|
||||||
{
|
{
|
||||||
@ -1298,17 +1266,6 @@ namespace netgen
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Philippose - 09/03/2009
|
|
||||||
// Added the capability to load the mesh size from a
|
|
||||||
// file also for OpenCascade Geometry
|
|
||||||
// Note:
|
|
||||||
// ** If the "uselocalh" option is ticked in
|
|
||||||
// the "mesh options...insider" menu, the mesh
|
|
||||||
// size will be further modified by the topology
|
|
||||||
// analysis routines.
|
|
||||||
// ** To use the mesh size file as the sole source
|
|
||||||
// for defining the mesh size, uncheck the "uselocalh"
|
|
||||||
// option.
|
|
||||||
mesh.LoadLocalMeshSize (mparam.meshsizefilename);
|
mesh.LoadLocalMeshSize (mparam.meshsizefilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1433,21 +1390,7 @@ namespace netgen
|
|||||||
|
|
||||||
MESHING3_RESULT res = MeshVolume (mparam, *mesh);
|
MESHING3_RESULT res = MeshVolume (mparam, *mesh);
|
||||||
|
|
||||||
/*
|
|
||||||
ofstream problemfile("occmesh.rep",ios_base::app);
|
|
||||||
|
|
||||||
problemfile << "VOLUMEMESHING" << endl << endl;
|
|
||||||
if(res != MESHING3_OK)
|
|
||||||
problemfile << "ERROR" << endl << endl;
|
|
||||||
else
|
|
||||||
problemfile << "OK" << endl
|
|
||||||
<< mesh->GetNE() << " elements" << endl << endl;
|
|
||||||
|
|
||||||
problemfile.close();
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (res != MESHING3_OK) return TCL_ERROR;
|
if (res != MESHING3_OK) return TCL_ERROR;
|
||||||
|
|
||||||
if (multithread.terminate) return TCL_OK;
|
if (multithread.terminate) return TCL_OK;
|
||||||
|
|
||||||
RemoveIllegalElements (*mesh);
|
RemoveIllegalElements (*mesh);
|
||||||
@ -1492,6 +1435,7 @@ namespace netgen
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
(*testout) << "NP: " << mesh->GetNP() << endl;
|
(*testout) << "NP: " << mesh->GetNP() << endl;
|
||||||
for (int i = 1; i <= mesh->GetNP(); i++)
|
for (int i = 1; i <= mesh->GetNP(); i++)
|
||||||
(*testout) << mesh->Point(i) << endl;
|
(*testout) << mesh->Point(i) << endl;
|
||||||
@ -1499,6 +1443,7 @@ namespace netgen
|
|||||||
(*testout) << endl << "NSegments: " << mesh->GetNSeg() << endl;
|
(*testout) << endl << "NSegments: " << mesh->GetNSeg() << endl;
|
||||||
for (int i = 1; i <= mesh->GetNSeg(); i++)
|
for (int i = 1; i <= mesh->GetNSeg(); i++)
|
||||||
(*testout) << mesh->LineSegment(i) << endl;
|
(*testout) << mesh->LineSegment(i) << endl;
|
||||||
|
*/
|
||||||
|
|
||||||
for (int i = 0; i < mesh->GetNDomains(); i++)
|
for (int i = 0; i < mesh->GetNDomains(); i++)
|
||||||
if (geom.snames.Size())
|
if (geom.snames.Size())
|
||||||
|
Loading…
Reference in New Issue
Block a user