hypre-space / hypre

Parallel solvers for sparse linear systems featuring multigrid methods.
https://www.llnl.gov/casc/hypre/
Other
674 stars 185 forks source link

Relative error floor for AMS in semi-definite Maxwell problems #1057

Open Heinrich-BR opened 8 months ago

Heinrich-BR commented 8 months ago

Dear developers,

I have been using HypreAMS to solve the Maxwell curl-curl formulation for an $H(curl)$ problem:

$(\mu^{-1}\vec\nabla\times \vec A,\vec\nabla\times \vec v)+(\sigma(\partialt\vec A+\vec\nabla V),\vec v)=(\vec J{ext},\vec v)$,

plus boundary conditions. I have noticed that for semi-definite problems, where $\sigma=0$ in part of the domain or all of it, I cannot get the FGMRES solver any further than ~2e-16 in terms of final relative error, as the solver plateaus there with a convergence rate of 1. Depending on the shape of the function that characterises $\sigma$, this error floor gets raised by several orders of magnitude. In contrast, in the definite Maxwell problem, I can get the final relative error to arbitrarily low values by changing the tolerance.

Remembering to set HYPRE_AMSSetBetaPoissonMatrix(solver, NULL) and applying boundary conditions does not solve the issue but it is what allows me to get to ~2e-16 relative error since otherwise I can only get to ~1e-1. I believe this issue is not limited to my implementation, since from my experiments in the Tesla miniapp in MFEM (which uses Hypre's AMS), the same error floor can be verified.

I would like to ask whether this is a known issue and whether there is a solution that allows me to reach arbitrarily low relative errors in the semi-definite problem. Thank you for the support!