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

Reply via email to