diff --git a/src/Distribution/Distribution.cpp b/src/Distribution/Distribution.cpp index b5286c0db6599661345a9c7dd9972c1be54765ae..93468bd9af0daf6f712e9a90546fda1d5ed9e1bf 100644 --- a/src/Distribution/Distribution.cpp +++ b/src/Distribution/Distribution.cpp @@ -842,7 +842,7 @@ void Distribution::checkIfEmitted() { } } -void Distribution::checkParticleNumber(size_t &numberOfParticles) { +void Distribution::checkParticleNumber(size_t& numberOfParticles) { size_t numberOfDistParticles = tOrZDist_m.size(); reduce(numberOfDistParticles, numberOfDistParticles, OpAddAssign()); @@ -853,6 +853,11 @@ void Distribution::checkParticleNumber(size_t &numberOfParticles) { "The number of particles needs to be specified."); } + if (numberOfParticles == 1 && Ippl::getNodes() != 1) { + throw OpalException("Distribution::checkParticleNumber", + "A single particle distribution works serially on single node"); + } + if (numberOfDistParticles != numberOfParticles) { throw OpalException("Distribution::checkParticleNumber", "The number of particles in the initial\n"