fix and use in swapimprove as well

This commit is contained in:
Christopher Lackner 2016-12-06 11:32:16 +01:00
parent 1f314ae0ee
commit 7743503c1d
2 changed files with 13 additions and 5 deletions

View File

@ -648,6 +648,9 @@ void MeshOptimize3d :: SwapImprove (Mesh & mesh, OPTIMIZEGOAL goal,
if (multithread.terminate) if (multithread.terminate)
break; break;
if(mesh.GetDimension()==3 && mp.only3D_domain_nr && mp.only3D_domain_nr != mesh.VolumeElement(ei).GetIndex())
continue;
multithread.percent = 100.0 * (ei+1) / ne; multithread.percent = 100.0 * (ei+1) / ne;
if ((mesh.ElementType(ei)) == FIXEDELEMENT) if ((mesh.ElementType(ei)) == FIXEDELEMENT)
@ -1236,6 +1239,7 @@ void MeshOptimize3d :: SwapImprove (Mesh & mesh, OPTIMIZEGOAL goal,
int oldpi = suroundpts[l-1]; int oldpi = suroundpts[l-1];
int newpi = 0; int newpi = 0;
for (int k = 0; k < nsuround && !newpi; k++) for (int k = 0; k < nsuround && !newpi; k++)
if (!tetused[k]) if (!tetused[k])
{ {
@ -1247,13 +1251,14 @@ void MeshOptimize3d :: SwapImprove (Mesh & mesh, OPTIMIZEGOAL goal,
newpi = newpi =
nel[0] + nel[1] + nel[2] + nel[3] nel[0] + nel[1] + nel[2] + nel[3]
- pi1 - pi2 - oldpi; - pi1 - pi2 - oldpi;
tetused[k] = 1; tetused[k] = 1;
suroundpts[l] = newpi; suroundpts[l] = newpi;
}
} }
}
} }
bad1 = 0; bad1 = 0;
for (int k = 0; k < nsuround; k++) for (int k = 0; k < nsuround; k++)
@ -2391,6 +2396,9 @@ void MeshOptimize3d :: SwapImprove2 (Mesh & mesh, OPTIMIZEGOAL goal)
mesh.LegalTet (mesh[eli1]) && mesh.LegalTet (mesh[eli1]) &&
CalcBad (mesh.Points(), mesh[eli1], 0) < 1e3) CalcBad (mesh.Points(), mesh[eli1], 0) < 1e3)
continue; continue;
if(mesh.GetDimension()==3 && mp.only3D_domain_nr && mp.only3D_domain_nr != mesh.VolumeElement(ei).GetIndex())
continue;
// cout << "eli = " << eli1 << endl; // cout << "eli = " << eli1 << endl;
// (*testout) << "swapimp2, eli = " << eli1 << "; el = " << mesh[eli1] << endl; // (*testout) << "swapimp2, eli = " << eli1 << "; el = " << mesh[eli1] << endl;

View File

@ -1116,7 +1116,7 @@ namespace netgen
bool check_impossible = 0; bool check_impossible = 0;
int only3D_domain_nr = -1; int only3D_domain_nr = 0;
/// ///
int secondorder = 0; int secondorder = 0;