Boyce,
I've attached the diffs between 4247 and 4248 below.
In the sources, could you try commenting out all the new calls to
libmesh_assert_valid_parallel_ids();
This should still crash, at least it does for me. If it does for you,
that means that adding an empty function body to mesh_base.h in DEBUG
mode is causing the code to crash and that really shouldn't happen...
Also, you are using GCC 4.4.4, is that correct?
--
John
svn diff -r4247:4248
Index: include/mesh/parallel_mesh.h
===================================================================
--- include/mesh/parallel_mesh.h (revision 4247)
+++ include/mesh/parallel_mesh.h (revision 4248)
@@ -122,7 +122,7 @@
* elements containers.
* Calls libmesh_assert() on each possible failure.
*/
- void libmesh_assert_valid_parallel_flags() const;
+ virtual void libmesh_assert_valid_parallel_flags() const;
#endif
/**
Index: include/mesh/mesh_base.h
===================================================================
--- include/mesh/mesh_base.h (revision 4247)
+++ include/mesh/mesh_base.h (revision 4248)
@@ -543,8 +543,17 @@
*/
void clear_point_locator ();
+#ifdef DEBUG
+ /**
+ * Verify id and processor_id consistency of our elements and
+ * nodes containers.
+ * Calls libmesh_assert() on each possible failure.
+ * Currently only implemented on ParallelMesh; a serial data
+ * structure is much harder to get out of sync.
+ */
+ virtual void libmesh_assert_valid_parallel_ids() const {}
+#endif
-
public:
Index: src/mesh/mesh_refinement.C
===================================================================
--- src/mesh/mesh_refinement.C (revision 4247)
+++ src/mesh/mesh_refinement.C (revision 4248)
@@ -519,9 +519,7 @@
if (coarsening_changed_mesh || refining_changed_mesh)
{
#ifdef DEBUG
- ParallelMesh *pmesh = dynamic_cast<ParallelMesh *>(&_mesh);
- if (pmesh)
- pmesh->libmesh_assert_valid_parallel_ids();
+ _mesh.libmesh_assert_valid_parallel_ids();
#endif
_mesh.prepare_for_use (/*skip_renumber =*/false);
@@ -1602,9 +1600,7 @@
MeshCommunication().make_nodes_parallel_consistent
(_mesh, _new_nodes_map);
#ifdef DEBUG
- ParallelMesh *pmesh = dynamic_cast<ParallelMesh *>(&_mesh);
- if (pmesh)
- pmesh->libmesh_assert_valid_parallel_ids();
+ _mesh.libmesh_assert_valid_parallel_ids();
#endif
}
Index: src/mesh/inf_elem_builder.C
===================================================================
--- src/mesh/inf_elem_builder.C (revision 4247)
+++ src/mesh/inf_elem_builder.C (revision 4248)
@@ -638,9 +638,7 @@
#ifdef DEBUG
- ParallelMesh *pmesh = dynamic_cast<ParallelMesh *>(&this->_mesh);
- if (pmesh)
- pmesh->libmesh_assert_valid_parallel_ids();
+ _mesh.libmesh_assert_valid_parallel_ids();
if (be_verbose)
libMesh::out << " added "
#ifdef DEBUG
/**
* Verify id and processor_id consistency of our elements and
* nodes containers.
* Calls libmesh_assert() on each possible failure.
* Currently only implemented on ParallelMesh; a serial data
* structure is much harder to get out of sync.
*/
virtual void libmesh_assert_valid_parallel_ids() const {}
#endif
------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel