diff --git a/ma/maRefine.cc b/ma/maRefine.cc index 915d8481a..1aba459b3 100644 --- a/ma/maRefine.cc +++ b/ma/maRefine.cc @@ -17,11 +17,17 @@ #include "maShapeHandler.h" #include "maSnap.h" #include "maLayer.h" +#include "maShape.h" #include #include +#include namespace ma { +/* forward declarations for internal quality functions from maShape.cc */ +int markBadQuality(Adapt* a); +void unMarkBadQuality(Adapt* a); + void addEdgePreAllocation(Refine* r, Entity* e, int counts[4]) { Adapt* a = r->adapt; @@ -440,6 +446,16 @@ bool refine(Adapt* a) forgetNewEntities(r); double t1 = pcu::Time(); print(a->mesh->getPCU(),"refined %li edges in %f seconds",count,t1-t0); + /* Report post-refinement quality diagnostics if verbose mode is enabled. */ + if (lion_get_verbosity() > 0) { + int badCount = markBadQuality(a); + if (badCount > 0) { + const char* elemName = (a->mesh->getDimension() == 2) ? "triangles" : "tets"; + print(a->mesh->getPCU(), "after refine: %d %s with quality < goodQuality (%f)", + badCount, elemName, a->input->goodQuality); + } + unMarkBadQuality(a); + } resetLayer(a); if (a->hasLayer) checkLayerShape(a->mesh, "after refinement");