Skip to content
Snippets Groups Projects
Commit 385025d9 authored by Thomas Toulorge's avatar Thomas Toulorge
Browse files

Avoid computing distance to CAD when detecting bad elements in...

Avoid computing distance to CAD when detecting bad elements in HighOrderMeshOptimizer if optCAD is not enabled
parent 36e629cf
No related branches found
No related tags found
No related merge requests found
...@@ -690,7 +690,7 @@ void HighOrderMeshOptimizer(GModel *gm, OptHomParameters &p) ...@@ -690,7 +690,7 @@ void HighOrderMeshOptimizer(GModel *gm, OptHomParameters &p)
std::map<MVertex*, std::vector<MElement *> > vertex2elements; std::map<MVertex*, std::vector<MElement *> > vertex2elements;
std::map<MElement*,GEntity*> element2entity; std::map<MElement*,GEntity*> element2entity;
std::set<MElement*> badasses; std::set<MElement*> badasses;
double maxdist = 0; double maxdist = 0.; // TODO: To be cleaned?
for (int iEnt = 0; iEnt < entities.size(); ++iEnt) { for (int iEnt = 0; iEnt < entities.size(); ++iEnt) {
GEntity* &entity = entities[iEnt]; GEntity* &entity = entities[iEnt];
if (entity->dim() != p.dim || (p.onlyVisible && !entity->getVisibility())) continue; if (entity->dim() != p.dim || (p.onlyVisible && !entity->getVisibility())) continue;
...@@ -701,18 +701,15 @@ void HighOrderMeshOptimizer(GModel *gm, OptHomParameters &p) ...@@ -701,18 +701,15 @@ void HighOrderMeshOptimizer(GModel *gm, OptHomParameters &p)
for (int iEl = 0; iEl < entity->getNumMeshElements();iEl++) { // Detect bad elements for (int iEl = 0; iEl < entity->getNumMeshElements();iEl++) { // Detect bad elements
double jmin, jmax; double jmin, jmax;
MElement *el = entity->getMeshElement(iEl); MElement *el = entity->getMeshElement(iEl);
if (el->getDim() == p.dim) {
if (p.optCAD) {
const double DISTE =computeBndDist(el,2,fabs(p.discrTolerance)); const double DISTE =computeBndDist(el,2,fabs(p.discrTolerance));
// printf("Element %d Distance %12.5E\n",iEl,DISTE);
maxdist = std::max(DISTE, maxdist); maxdist = std::max(DISTE, maxdist);
if (el->getDim() == p.dim) { if (DISTE > p.optCADDistMax) badasses.insert(el);
if (p.optCAD && DISTE > p.optCADDistMax) }
badasses.insert(el);
el->scaledJacRange(jmin, jmax, p.optPrimSurfMesh ? entity : 0); el->scaledJacRange(jmin, jmax, p.optPrimSurfMesh ? entity : 0);
if (p.BARRIER_MIN_METRIC > 0) jmax = jmin; if (p.BARRIER_MIN_METRIC > 0) jmax = jmin;
if (jmin < p.BARRIER_MIN || jmax > p.BARRIER_MAX){ if (jmin < p.BARRIER_MIN || jmax > p.BARRIER_MAX) badasses.insert(el);
badasses.insert(el);
}
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment