AMG is subtle here. With AMG for systems, you typically feed it elements of the near null space. In the case of (smoothed) aggregation, the coarse space will have a regular block structure with block sizes equal to the number of near-null vectors. You can use pc_fieldsplit options to select which fields you want in each split.
However, AMG also needs a strength of connection and if your system is so weird you need to fieldsplit the smoothers (e.g., a saddle point problem or a hyperbolic system) then it's likely that you'll also need a custom strength of connection to obtain reasonable coarsening. Barry Smith <bsm...@petsc.dev> writes: > See the very end of the section > https://petsc.org/release/manual/ksp/#multigrid-preconditioners on how to > control the smoothers (and coarse grid solve) for multigrid in PETSc > including for algebraic multigrid. > > So, for example, -mg_levels_pc_type fieldsplit would be the starting > point. Depending on the block size of the matrices it may automatically do > simple splits, you can control the details of the fieldsplit preconditioner > with -mg_levels_pc_fieldsplit_... and the details for each split with > -mg_levels_fieldsplit_.... > > See src/ksp/ksp/tutorials/ex42.c for example, usage > > Feel free to ask more specific questions once you get started. > >> On Jul 26, 2023, at 9:47 PM, Michael Wick <michael.wick.1...@gmail.com> >> wrote: >> >> Hello PETSc team: >> >> I wonder if the current PETSc implementation supports using AMG >> monolithically for a multi-field problem and using fieldsplit in the >> smoother. >> >> Thank you very much, >> >> Mike