To keep thing simple, I updated to 4247 and then updated only 
mesh_base.h to 4248:

======================================================================

boyce-griffiths-mac-pro:libmesh-petsc-3.1 griffith$ svn diff -r4247
Index: include/mesh/mesh_base.h
===================================================================
--- include/mesh/mesh_base.h    (revision 4247)
+++ include/mesh/mesh_base.h    (working copy)
@@ -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:


======================================================================

The code still dies a horrible death.

On 3/14/11 1:46 PM, John Peterson wrote:
> 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