can now communicate unpredetermined number of particles
can now reuse communication buffer
now using tag rather than communicator group to distinguish upward and downward communication