Description
Before building a Voronoi tessellation, SKIRT removes any sites that are outside of the specified cuboidal domain. This process was exceedingly slow when a large number of sites had to be removed because sites were removed from the array one by one. With this update, all sites are removed in a single pass. This results in a significant speedup: for tens of millions of sites, the execution time reduces from hours to under a minute.
Motivation
In the context of a larger workflow, it can be convenient to include many sites outside the domain in the input file. It was annoying that the SKIRT setup became so slow in this case.
Tests
All functional tests still run; performance tests were based on a specific input file provided by user Connor Bottrell.
Description Before building a Voronoi tessellation, SKIRT removes any sites that are outside of the specified cuboidal domain. This process was exceedingly slow when a large number of sites had to be removed because sites were removed from the array one by one. With this update, all sites are removed in a single pass. This results in a significant speedup: for tens of millions of sites, the execution time reduces from hours to under a minute.
Motivation In the context of a larger workflow, it can be convenient to include many sites outside the domain in the input file. It was annoying that the SKIRT setup became so slow in this case.
Tests All functional tests still run; performance tests were based on a specific input file provided by user Connor Bottrell.