> On Mar 20, 2015, at 1:02 PM, Young, Matthew, Adam <[email protected]> wrote:
>
> I have a PETSc routine that I am trying to use as an electric-field solver
> within a particle-in-cell code. The existing PIC code is parallelized with
> MPI. The pure PIC code (written many years ago by my advisor) is well-tested
> and I am trying to add an option for it to operate as a hybrid fluid/PIC
> code. This requires solving Ax=b at every time step but I don't think I
> understand how to manage communication between the existing code and my PETSc
> solver. Since we may not always run the hybrid version, the code calls
> MPI_Init() before PetscInitialize(). Section 14.1 of the manual suggests that
> I use PetscSetCommWorld between MPI_Init() and PetscInitialize(), but that
> routine appears to not be supported anymore. Is that correct? Can you point
> me to examples of simulations that use PETSc within a larger code?
Matt,
In the standard case where the PIC and fluid code are both running on the
same communicator (MPI_COMM_WORLD) you don't need to do anything special, just
call the MPI_Init() and then the PetscInitialize(). If the PETSc code runs on a
smaller communicator then BEFORE the call to PetscInitialize() you just need to
set PETSC_COMM_WORLD = comm (where comm is that smaller communicator). (This
replaces the use of the function call PetscSetCommWorld() that once existed.)
Barry
>
> --Matt
>
> --------------------------------------------------------------
> Matthew Young
> Graduate Student
> Boston University Dept. of Astronomy
> --------------------------------------------------------------