Solving 3-D Helmholtz equation on fine mesh (solver question)


So I’m trying to solve 3-D Helmzholts.

I know with finite differencing atleast when you begin to further refine the mesh, you experience ill-conditioning issues. I would expect this to happen to the elliptic problem for finite element as well. I wrote a fenics code and got the error below - when I solve on a 32^3 mesh everything works great. When I go to a more refined mesh i.e 128x128 I get this error. I believe this is due to an illconditioning issue and I’m not calling the solver correctly to pre-condition. Any tips? I’m using Fenics 2019 (the current release)

solve(state == 0, u, J=Jac,solver_parameters={'newton_solver': {'linear_solver': 'mumps'}})
  File "/mnt/HpcStor/home/anaconda3/lib/python3.7/site-packages/dolfin/fem/", line 220, in solve
_solve_varproblem(*args, **kwargs)
  File "/mnt/HpcStor/home/anaconda3/lib/python3.7/site-packages/dolfin/fem/", line 266, in _solve_varproblem

*** -------------------------------------------------------------------------
*** DOLFIN encountered an error. If you are not able to resolve this issue
*** using the information listed below, you can ask for help at
*** Remember to include the error message listed below and, if possible,
*** include a *minimal* running example to reproduce the error.
*** -------------------------------------------------------------------------
*** Error:   Unable to solve linear system using PETSc Krylov solver.
*** Reason:  Solution failed to converge in 0 iterations (PETSc reason DIVERGED_PC_FAILED, residual norm ||r|| = 0.000000e+00).
*** Where:   This error was encountered inside PETScKrylovSolver.cpp.
*** Process: 0
*** DOLFIN version: 2019.1.0
*** Git changeset:  76bf12b24408e3ce2364eb22e62c802a92c90ff2
*** -------------------------------------------------------------------------