On Fri, 9 Oct 2015, Christopher Haynes wrote:

I just wanted to confirm the behavior of the edge and node level
mismatch limits.  Currently as it stands the
_edge_level_mismatch_limit and _node_level_mismatch_limit have the
default value of 0 and therefore the conditions
if(_edge_level_mismatch_limit) and if(_node_level_mismatch_limit)
will be evaluated as false and the corresponding methods to fix any
mismatch will not be called.  I wanted to confirm this is the
desired behavior, in the sense that a mismatch limit of 0 implies
any mismatch is allowed?  Or was intended that a mismatch limit of 0
would imply there should be no mismatch at all?

From mesh_refinement.h:

  /**
   * If \p edge_level_mismatch_limit is set to a nonzero value, then
   * refinement and coarsening will produce meshes in which the
   * refinement level of two edge neighbors will not differ by more than
   * that limit.  If \p edge_level_mismatch_limit is 0, then level
   * differences will be unlimited.
   *
   * \p edge_level_mismatch_limit is 0 by default.
   */

(and likewise for node_level_mismatch_limit)

So yes, here "0" means "infinity".  Seems counter-intuitive, but it
works since there's no other sensible meaning for "0" to have - anyone
who wants to enforce "no mismatch at all" should be using
refine_uniformly().
---
Roy
------------------------------------------------------------------------------
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to