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