}
}
public ParticleIterator getParticleIterator() {
if (numOfThreads == 1) {
return new SequentialParticleIterator();
} else if (numOfThreads > 1) {
return new ParallelParticleIterator(numOfThreads, getThreadsExecutor());
} else {
throw new RuntimeException("Invalid number of threads: " + numOfThreads);
}