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

Changed mesh optimizers to work with std::vector<GEntity*> in addition to GModel

parent ccd5d14f
No related branches found
No related tags found
No related merge requests found
...@@ -790,7 +790,7 @@ int HOPatchDefParameters::inPatch(const SPoint3 &badBary, ...@@ -790,7 +790,7 @@ int HOPatchDefParameters::inPatch(const SPoint3 &badBary,
} }
void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p) void HighOrderMeshOptimizerNew(std::vector<GEntity*> &entities, OptHomParameters &p)
{ {
Msg::StatusBar(true, "Optimizing high order mesh..."); Msg::StatusBar(true, "Optimizing high order mesh...");
...@@ -849,7 +849,7 @@ void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p) ...@@ -849,7 +849,7 @@ void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p)
par.pass.push_back(maxCADDistPass); par.pass.push_back(maxCADDistPass);
} }
meshOptimizer(gm, par); meshOptimizer(entities, par);
p.CPU = par.CPU; p.CPU = par.CPU;
p.minJac = minMaxJacBarFunc.getMin(); p.minJac = minMaxJacBarFunc.getMin();
...@@ -857,3 +857,11 @@ void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p) ...@@ -857,3 +857,11 @@ void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p)
Msg::StatusBar(true, "Done optimizing high order mesh (%g s)", p.CPU); Msg::StatusBar(true, "Done optimizing high order mesh (%g s)", p.CPU);
} }
void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p)
{
std::vector<GEntity*> entities;
gm->getEntities(entities);
HighOrderMeshOptimizerNew(entities, p);
}
...@@ -687,7 +687,7 @@ void optimizeOneByOne(const vertElVecMap &vertex2elements, ...@@ -687,7 +687,7 @@ void optimizeOneByOne(const vertElVecMap &vertex2elements,
#endif #endif
void meshOptimizer(GModel *gm, MeshOptParameters &par) void meshOptimizer(std::vector<GEntity*> &entities, MeshOptParameters &par)
{ {
#if defined(HAVE_BFGS) #if defined(HAVE_BFGS)
if (par.nCurses) if (par.nCurses)
...@@ -709,9 +709,6 @@ void meshOptimizer(GModel *gm, MeshOptParameters &par) ...@@ -709,9 +709,6 @@ void meshOptimizer(GModel *gm, MeshOptParameters &par)
} }
if (par.verbose > 0) Msg::StatusBar(true, "Optimizing mesh..."); if (par.verbose > 0) Msg::StatusBar(true, "Optimizing mesh...");
std::vector<GEntity*> entities;
gm->getEntities(entities);
vertElVecMap vertex2elements; vertElVecMap vertex2elements;
elEntMap element2entity, bndEl2Ent; elEntMap element2entity, bndEl2Ent;
elElMap el2BndEl; elElMap el2BndEl;
......
...@@ -31,11 +31,11 @@ ...@@ -31,11 +31,11 @@
#define _MESHOPTIMIZER_H_ #define _MESHOPTIMIZER_H_
class GModel; class GEntity;
class MeshOptParameters; class MeshOptParameters;
void meshOptimizer(GModel *gm, MeshOptParameters &par); void meshOptimizer(std::vector<GEntity*> &entities, MeshOptParameters &par);
#endif #endif
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "GEntity.h" #include "GEntity.h"
#include "GFace.h" #include "GFace.h"
#include "GRegion.h" #include "GRegion.h"
#include "GModel.h"
#include "MElement.h" #include "MElement.h"
#include "MTriangle.h" #include "MTriangle.h"
#include "MQuadrangle.h" #include "MQuadrangle.h"
...@@ -117,7 +118,7 @@ int QualPatchDefParameters::inPatch(const SPoint3 &badBary, double limDist, ...@@ -117,7 +118,7 @@ int QualPatchDefParameters::inPatch(const SPoint3 &badBary, double limDist,
} }
void MeshQualityOptimizer(GModel *gm, MeshQualOptParameters &p) void MeshQualityOptimizer(std::vector<GEntity*> &entities, MeshQualOptParameters &p)
{ {
Msg::StatusBar(true, "Optimizing mesh quality..."); Msg::StatusBar(true, "Optimizing mesh quality...");
...@@ -160,7 +161,7 @@ void MeshQualityOptimizer(GModel *gm, MeshQualOptParameters &p) ...@@ -160,7 +161,7 @@ void MeshQualityOptimizer(GModel *gm, MeshQualOptParameters &p)
par.pass.push_back(minInvCondNumPass); par.pass.push_back(minInvCondNumPass);
} }
meshOptimizer(gm, par); meshOptimizer(entities, par);
p.CPU = par.CPU; p.CPU = par.CPU;
if (p.onlyValidity) { if (p.onlyValidity) {
...@@ -172,3 +173,11 @@ void MeshQualityOptimizer(GModel *gm, MeshQualOptParameters &p) ...@@ -172,3 +173,11 @@ void MeshQualityOptimizer(GModel *gm, MeshQualOptParameters &p)
p.maxInvCondNum = minInvCondNumBarFunc.getMax(); p.maxInvCondNum = minInvCondNumBarFunc.getMax();
} }
} }
void MeshQualityOptimizer(GModel *gm, MeshQualOptParameters &p)
{
std::vector<GEntity*> entities;
gm->getEntities(entities);
MeshQualityOptimizer(entities, p);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment