firedrakeproject / asQ

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

Complex-proxy scripts for the nonlinear shallow water equations #185

Closed JHopeCollins closed 5 months ago

JHopeCollins commented 6 months ago

Add a script to test out preconditioners for the nonlinear shallow water equation blocks using the complex proxy module. The complex-proxy blocks are built by loading up a shallow water checkpoint file and linearising around this state. The script takes a value for Nt, dt, alpha, etc and tests the preconditioner on all the resulting eigenvalue pairs with random right hand side. Six preconditioners are currently available:

  1. A direct solve
  2. Patch multigrid
  3. The linear operator solved with LU
  4. The linear operator solved with hybridisation
  5. Schur factorisation where the complement is preconditioned by the schur complement of the linear operator
  6. Composite preconditioning with a single-level patch smoother and the linear operator.