Parallel processing of immersed boundaries


I would like to simulate a chain of immersed boundary particles. To accelerate program I am thinking about processing particles in parallel, each mpi process will work with part of the chain. Firstly, from MpiManager I’ve got mpirank and then wrote for-cycle to distribute particles between processes. Secondly, with the use of applyProcessingFunctional I can work only with a small part (envelope) that encapsulates one particle, like:

static std::vector< Array<T,2> > dummyNormals; std::vector<MultiBlock2D*> args; args.push_back(&container); applyProcessingFunctional ( new InstantiateImmersedWallData2D<T>(all_vertices[ind], all_areas[ind], dummyNormals), envelope, args );

Instead of:
instantiateImmersedWallData(all_vertices[ind], all_areas[ind], container);

But how to apply changes to all other processes? Should I use something like mpi_bcast? But i suspect that Palabos already has functions to send/receive parts of MultiTensorField2D and MultiScalarField2D
Any help will be appreciated

Best wishes,