Hi Vittorio, PETSc does provide support for your application and some of us (eg, me and Matt) work with fusion PIC applications.
1) I am not sure how you handle boundary conditions with a Cartesian grid so let me give two responses: 1.1) With Cartesian grids, geometric multigrid may be usable and that can be fast and easier to use. PETSc supports geometric and algebraic multigrid, including interfaces to third party libraries like hypre. Hypre is an excellent solver, but you can probably use CG as your KSP method instead of GMRES. 1.2) PETSc provides support for unstructured mesh management and discretizations and you switch to an unstructured grid, but I understand we all have priorities. Unstructured grids are probably a better long term solution for you. 2) PETSc is portable with linear algebra back-ends that execute on any "device". Our OpenMP support is only through the Kokkos back-end and we have custom CUDA and HIP backends that are built on vendor libraries. The Kokkos back-end also supports CUDA, HIP and SYCL and we rely on Kokkos any other architectures at this point. BTW, the Kokkos back-end also has an option to use vendor back-ends or Kokkos Kernels for linear algebra and they are often better than the vendors libraries. Hope this helps, Mark On Fri, Dec 15, 2023 at 12:41 AM Vittorio Sciortino < [email protected]> wrote: > > Dear PETSc developers, > > My name is Vittorio Sciortion, I am a PhD student in Italy and I am > really curious about the applications and possibilities of your > library. I would ask you two questions about PETSc. > > My study case consists in the development of a 2D electrostatic Particle > In Cell code which simulates a plasma interacting with the shaped > surface of adjacent divertor mono-blocks. > This type of scenario requires to solve the electro-static Poisson > equation on the whole set of grid nodes (a cartesian grid) applying some > boundary conditions. > Currently, we are using the KSPSolve subroutine set to apply the gmres > iterative method in conjunction with hypre (used as pre-conditioner). > Some boundary conditons are necessary for our specific problem > (Dirichlet and Neumann conditions on specific line of points). > I have two small curiosity about the possibilities offered by your > library, which is very interesting: > > 1. are we using the best possible pair to solve our problem? > > 2. currently, PETSc is compiled with openMP parallelization and the > iterative method is executed on the CPU. > Is it possible to configure the compilation of our library to execute > these iterations on a nVidia GPU? Which are the best compilation options > that you suggest for your library? > > thank you in advance > Greetings > Vittorio Sciortino > PhD student in Physics > Bari, Italy > > Recently, I sent a subscribe request to the users mailing list using > another e-mail, because this one could be deactivated in two/three > months. private email: [email protected] > -- > Vittorio Sciortino > > ________________________________________________________________________________________________ > Sostieni la formazione e la ricerca universitaria con il tuo 5 per mille > all'Università di Bari. > Firma la casella "Finanziamento della ricerca scientifica e della > Università" > indicando il codice fiscale 80002170720. > > Il tuo contributo può fare la differenza: oggi più che mai! > > ________________________________________________________________________________________________ >
