nodes: 0 front size: 0
Two bulk generators, ported line for line from the reference Fortran/C. Both sweep the box bottom to top, placing each node at the lowest admissible point and pushing an exclusion disc of radius r(x, y) into the front; the red line is the front. Click (or tap) the canvas to restart.
Fornberg–Flyer keep the front as an x-sorted list of potential dot positions (PDPs). The next node is the lowest PDP; it is accepted, and the PDPs inside its exclusion disc are replaced by a configurable number of cell-centred points on the exclusion arc (five by default), spliced between the nearest outside PDPs found by walking outward from the dot.
Van der Sande–Fornberg keep a height field on a background grid of grid-factor × ninit columns. The next node goes to the lowest column; each accepted dot raises the heights under its exclusion disc to the disc’s far hemisphere. When the radius varies, the node is first pushed off the discs of earlier nearby nodes — the direction-dependence correction of their section 2.3 (inactive for constant radius).
References:
Fornberg, B., & Flyer, N. (2015). Fast generation of 2-D node distributions for mesh-free PDE discretizations. Computers & Mathematics with Applications, 69(7), 531–544. doi:10.1016/j.camwa.2015.01.009
van der Sande, K., & Fornberg, B. (2021). Fast variable density 3-D node generation. SIAM Journal on Scientific Computing, 43(1), A242–A257. doi:10.1137/20M1337016
Inspired by the visualisations of Jason Davies.