[MOAB-dev] r3759 - MOAB/trunk/src
kraftche at cae.wisc.edu
kraftche at cae.wisc.edu
Wed Apr 7 17:34:35 CDT 2010
Author: kraftche
Date: 2010-04-07 17:34:35 -0500 (Wed, 07 Apr 2010)
New Revision: 3759
Modified:
MOAB/trunk/src/Skinner.cpp
Log:
o Fix skinning of higher-order region elements w/ explicit adjacencies.
o Warn and work around non-conformal meshes where a vertex is a corner
in some elements and a mid-side node in others when skinning with
explicit adjacencies.
Modified: MOAB/trunk/src/Skinner.cpp
===================================================================
--- MOAB/trunk/src/Skinner.cpp 2010-04-07 21:58:02 UTC (rev 3758)
+++ MOAB/trunk/src/Skinner.cpp 2010-04-07 22:34:35 UTC (rev 3759)
@@ -1476,6 +1476,7 @@
const EntityHandle *conn;
int len;
bool find_edges = skin_edges || create_edges;
+ bool printed_nonconformal_ho_warning = false;
EntityHandle face;
if (!faces.all_of_dimension(2))
@@ -1529,14 +1530,30 @@
if (TYPE_FROM_HANDLE(*i) == MBTRI && len > 3) {
len = 3;
higher_order = true;
- if (idx > 2) // skip higher-order nodes for now
+ if (idx > 2) { // skip higher-order nodes for now
+ if (!printed_nonconformal_ho_warning) {
+ printed_nonconformal_ho_warning = true;
+ std::cerr << "Non-conformal higher-order mesh detected in skinner: "
+ << "vertex " << ID_FROM_HANDLE(*it) << " is a corner in "
+ << "some elements and a higher-order node in others"
+ << std::endl;
+ }
continue;
+ }
}
else if (TYPE_FROM_HANDLE(*i) == MBQUAD && len > 4) {
len = 4;
higher_order = true;
- if (idx > 3) // skip higher-order nodes for now
+ if (idx > 3) { // skip higher-order nodes for now
+ if (!printed_nonconformal_ho_warning) {
+ printed_nonconformal_ho_warning = true;
+ std::cerr << "Non-conformal higher-order mesh detected in skinner: "
+ << "vertex " << ID_FROM_HANDLE(*it) << " is a corner in "
+ << "some elements and a higher-order node in others"
+ << std::endl;
+ }
continue;
+ }
}
const int prev_idx = (idx + len - 1)%len;
@@ -1682,15 +1699,29 @@
int clen, side, sense, offset, indices[9];
EntityType face_type;
EntityHandle elem;
+ bool printed_nonconformal_ho_warning = false;
More information about the moab-dev
mailing list