simpeg / discretize

Discretization tools for finite volume and inverse problems.

Home Page:http://discretize.simpeg.xyz/

Repository from Github https://github.comsimpeg/discretizeRepository from Github https://github.comsimpeg/discretize

tree mesh -- to finalize or not?

lheagy opened this issue · comments

Currently, the implementations of utils for refining tree meshes are inconsistent with the default value for finalize

utils.refine_tree_xyz has a default value of False

def refine_tree_xyz(
mesh,
xyz,
method="radial",
octree_levels=[1, 1, 1],
octree_levels_padding=None,
finalize=False,
min_level=0,
max_distance=np.inf,
):

whereas mesh.refine_ball has a default True

def refine_ball(self, points, radii, levels, finalize=True):

which can be a source of confusion... I would vote for finalize=False as the default (at least in most use cases I have encountered, I am doing multiple refinement steps), but don't have overly strong opinions -- other than it would be useful if they were consistent.

And on a related note, there are no errors / warnings thrown if you try to refine a mesh that has already been finalized. So it might be worth a quick check & error if the mesh has already been finalized.