GDSW is algebraic, not restricted to DMDA. Here is an example command line.
-pc_type mg -pc_mg_levels 2 -pc_mg_adapt_interp_coarse_space *gdsw* -pc_mg_galerkin -mg_levels_pc_type jacobi If you have a MATIS matrix, you can also turn on adaptivity (see for example these tests). https://urldefense.us/v3/__https://gitlab.com/petsc/petsc/-/blob/main/src/ksp/ksp/tutorials/ex71.c*L727__;Iw!!G_uCfscf7eWS!dU8Plji5xR1NEXhvUg83_jf1O061HWdtZYZjkpWxufOe3ZueuCJ7WMjvMquhjDVHAspyVJpaem8_0EkiWRiVIYI6IyiGlDw$ https://urldefense.us/v3/__https://gitlab.com/petsc/petsc/-/blob/main/src/snes/tutorials/ex12.c*L1799__;Iw!!G_uCfscf7eWS!dU8Plji5xR1NEXhvUg83_jf1O061HWdtZYZjkpWxufOe3ZueuCJ7WMjvMquhjDVHAspyVJpaem8_0EkiWRiVIYI6ndo6f0o$ Code setup is here https://urldefense.us/v3/__https://gitlab.com/petsc/petsc/-/blob/main/src/ksp/pc/impls/mg/gdsw.c__;!!G_uCfscf7eWS!dU8Plji5xR1NEXhvUg83_jf1O061HWdtZYZjkpWxufOe3ZueuCJ7WMjvMquhjDVHAspyVJpaem8_0EkiWRiVIYI6bWXW_Co$ Il giorno gio 22 mag 2025 alle ore 10:59 Edoardo Centofanti < edoardo.centofant...@universitadipavia.it> ha scritto: > Dear all, > > Thank you for your answers. > Do you know which options are required for a typical use case of GDSW in > PCMG? However, I imagine that only structured DMDA meshes can be employed > with it. > > Best, > Edoardo > > Il giorno mer 21 mag 2025 alle ore 16:52 Barry Smith <bsm...@petsc.dev> > ha scritto: > >> >> Thanks for your interest in this type of algorithm. >> >> As Pierre notes, the code is implemented only as a simple tutorial on >> one particular "exotic" wire basket-type algorithm. We don't recommend this >> implementation for more general algorithms or geometries. >> >> The face dof represents some sort of "average" of the face solution, it >> is not a point value. >> >> Barry >> >> >> On May 21, 2025, at 4:51 AM, Pierre Jolivet <pie...@joliv.et> wrote: >> >> >> >> On 21 May 2025, at 10:41 AM, Edoardo Centofanti < >> edoardo.centofant...@universitadipavia.it> wrote: >> >> >> Dear all, >> >> I have some questions about the PCEXOTIC preconditioner: >> >> 1- While the type "wirebasket" seems clear to me, I do not understand >> what is meant as "one dof per face" in the documentation referring to >> "face" type. Is it intended as the interpolation on the centre of the face >> or some mean value? >> >> 2- Is it possible to change the overlap between the subdomains? >> >> 3- Are there any plans of extending the implementation to unstructured >> grids (DMPlex-like)? The current one seems to rely heavily on DMDA >> >> 4- Running some preliminary tests on GPU with a code of mine that works >> on CPU, I got the following error: >> >> ** On entry to cusparseSpMM_bufferSize(): dimension mismatch, >> matA.num_rows (15405) != matC.num_rows (44955) with opA = >> CUSPARSE_OPERATION_NON_TRANSPOSE >> >> Is the preconditioner intended to run also on GPU or the error above >> comes from the fact that this feature has yet to be tested/fully >> implemented? >> >> >> This preconditioner is very old and the code is barely maintained. >> There is a newer implementation of the GDSW preconditioner in PCMG, see >> https://urldefense.us/v3/__https://petsc.org/release/manualpages/PC/PCMGSetAdaptCoarseSpaceType/__;!!G_uCfscf7eWS!dU8Plji5xR1NEXhvUg83_jf1O061HWdtZYZjkpWxufOe3ZueuCJ7WMjvMquhjDVHAspyVJpaem8_0EkiWRiVIYI68ia6R0o$ >> >> <https://urldefense.us/v3/__https://petsc.org/release/manualpages/PC/PCMGSetAdaptCoarseSpaceType/__;!!G_uCfscf7eWS!ZDnv3udGFNlZEC_MRfLAqwvcvCObnaAjMCeyaW__UaecBvN3MkXrzOPwJJUSHXo80-xOQdLNnSf_nLmUd7bZxg$> >> >> Thanks, >> Pierre >> >> Thank you in advance, >> Best, >> Edoardo >> >> >> > > -- > Edoardo Centofanti > Dipartimento di Matematica 'Felice Casorati' > Università degli Studi di Pavia > > Tel. 0382985608 | Ufficio A14 | Via Ferrata 5, 27100 Pavia, Italy > <https://urldefense.us/v3/__https://maps.google.com/?q=Via*20Ferrata*205,*2027100*20Pavia,*20Italy__;JSUlJSU!!G_uCfscf7eWS!Zmi6sdgeoCOMy1lkVGYn-ac5wvH3QEcOkYQ2VzdQgCqLY8nIVkX1oi_yt5S2vJDcF5BT8mmzOLmOUEK483D0v9_aZe01iy1b20hMoN_kNHg$> > -- Stefano