On Mon, Feb 24, 2020 at 6:35 AM Pierpaolo Minelli <[email protected]> wrote:
> > > Il giorno 24 feb 2020, alle ore 12:24, Matthew Knepley <[email protected]> > ha scritto: > > On Mon, Feb 24, 2020 at 5:30 AM Pierpaolo Minelli < > [email protected]> wrote: > >> Hi, >> I'm developing a 3D code in Fortran to study the space-time evolution of >> charged particles within a Cartesian domain. >> The domain decomposition has been made by me taking into account symmetry >> and load balancing reasons related to my specific problem. > > > That may be a problem. DMDA can only decompose itself along straight lines > through the domain. Is that how your decomposition looks? > > > My decomposition at the moment is paractically a 2D decomposition because > i have: > > M = 251 (X) > N = 341 (Y) > P = 161 (Z) > > and if i use 24 MPI procs, i divided my domain in a 3D Cartesian Topology > with: > > m = 4 > n = 6 > p = 1 > > > > >> In this first draft, it will remain constant throughout my simulation. >> >> Is there a way, using DMDAs, to solve Poisson's equation, using the >> domain decomposition above, obtaining as a result the local solution >> including its ghost cells values? >> > > How do you discretize the Poisson equation? > > > I intend to use a 7 point stencil like that in this example: > > > https://www.mcs.anl.gov/petsc/petsc-current/src/ksp/ksp/examples/tutorials/ex22f.F90.html > Okay, then you can do exactly as Mark says and use that example. This will allow you to use geometric multigrid for the Poisson problem. I don't think it can be beaten speed-wise. Thanks, Matt > > Thanks, > > Matt > > >> As input data at each time-step I know the electric charge density in >> each local subdomain (RHS), including the ghost cells, even if I don't >> think they are useful for the calculation of the equation. >> Matrix coefficients (LHS) and boundary conditions are constant during my >> simulation. >> >> As an output I would need to know the local electrical potential in each >> local subdomain, including the values of the ghost cells in each >> dimension(X,Y,Z). >> >> Is there an example that I can use in Fortran to solve this kind of >> problem? >> >> Thanks in advance >> >> Pierpaolo Minelli >> >> > > > Thanks > Pierpaolo > > > -- > What most experimenters take for granted before they begin their > experiments is infinitely more interesting than any results to which their > experiments lead. > -- Norbert Wiener > > https://www.cse.buffalo.edu/~knepley/ > <http://www.cse.buffalo.edu/~knepley/> > > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
