firedrakeproject / asQ

A library for implementing ParaDIAG timestepping algorithms using Firedrake
MIT License
4 stars 1 forks source link

Allow default solver options for all diagonal blocks #95

Closed JHopeCollins closed 1 year ago

JHopeCollins commented 1 year ago

PETSc has a hard-coded limit of 512 options per options manager. Because we duplicate the block options for every block, we can quickly run into this limit if we have a large number of timesteps or a complex option set for the blocks.

This limit is being removed from PETSc by this PR: https://gitlab.com/petsc/petsc/-/merge_requests/5838 but until that is merged, and Firedrake's fork updated, we need to have each solver use the same option set. We should allow for a default set of block options like fieldsplit does. The prefix for the default options is diagfft_block_. If any option exists with prefix diagfft_block_{i}_ then block i will use this prefix instead.

These changes were originally in PR #90 but are split out here to keep them more self-contained.