Local mesh refinement in 2 and 3 dimensions