Salome HOME
projects
/
modules
/
smesh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PR: debug generate flat elements
[modules/smesh.git]
/
src
/
SMESH
/
SMESH_MeshEditor.cxx
diff --git
a/src/SMESH/SMESH_MeshEditor.cxx
b/src/SMESH/SMESH_MeshEditor.cxx
index db8f8a36d91b9535fb675074688e1a9c8fb46c99..49f9c1b3a8776abf98730188553103d7e1ca84fb 100644
(file)
--- a/
src/SMESH/SMESH_MeshEditor.cxx
+++ b/
src/SMESH/SMESH_MeshEditor.cxx
@@
-10968,6
+10968,12
@@
bool SMESH_MeshEditor::DoubleNodesOnGroupBoundaries( const std::vector<TIDSorted
continue;
int vtkType = grid->GetCellType(vtkId);
int downId = grid->CellIdToDownId(vtkId);
continue;
int vtkType = grid->GetCellType(vtkId);
int downId = grid->CellIdToDownId(vtkId);
+ if (downId < 0)
+ {
+ MESSAGE("doubleNodesOnGroupBoundaries: internal algorithm problem");
+ continue; // not OK at this stage of the algorithm:
+ //no cells created after BuildDownWardConnectivity
+ }
DownIdType aCell(downId, vtkType);
if (celldom.count(vtkId))
continue;
DownIdType aCell(downId, vtkType);
if (celldom.count(vtkId))
continue;
@@
-11045,6
+11051,11
@@
bool SMESH_MeshEditor::DoubleNodesOnGroupBoundaries( const std::vector<TIDSorted
nodeDomains[oldId][idom] = newId; // cloned node for other domains
//MESSAGE(" newNode " << newId << " oldNode " << oldId << " size=" <<nodeDomains[oldId].size());
}
nodeDomains[oldId][idom] = newId; // cloned node for other domains
//MESSAGE(" newNode " << newId << " oldNode " << oldId << " size=" <<nodeDomains[oldId].size());
}
+ if (nodeDomains[oldId].size() >= 3)
+ {
+ //MESSAGE("confirm multiple node " << oldId);
+ isMultipleDetected =true;
+ }
}
}
if (isMultipleDetected) // check if an edge of the face is shared between 3 or more domains
}
}
if (isMultipleDetected) // check if an edge of the face is shared between 3 or more domains
@@
-11210,6
+11221,7
@@
bool SMESH_MeshEditor::DoubleNodesOnGroupBoundaries( const std::vector<TIDSorted
}
else
{
}
else
{
+ //MESSAGE("Quadratic multiple joints not implemented");
// TODO quadratic nodes
}
}
// TODO quadratic nodes
}
}
@@
-11238,6
+11250,8
@@
bool SMESH_MeshEditor::DoubleNodesOnGroupBoundaries( const std::vector<TIDSorted
int vtkId = l.cells[i];
int vtkType = grid->GetCellType(vtkId);
int downId = grid->CellIdToDownId(vtkId);
int vtkId = l.cells[i];
int vtkType = grid->GetCellType(vtkId);
int downId = grid->CellIdToDownId(vtkId);
+ if (downId < 0)
+ continue; // new cells: not to be modified
DownIdType aCell(downId, vtkType);
int volParents[1000];
int nbvol = grid->GetParentVolumes(volParents, vtkId);
DownIdType aCell(downId, vtkType);
int volParents[1000];
int nbvol = grid->GetParentVolumes(volParents, vtkId);