Block Preconditioner for Helmholtz solver (ADRSolver) does not work with CG + Low P
When using the ADRSolver
to solve the Helmholtz equation with Lambda=0
and no forcing (= Laplace), the solver SegFaults for P=2
, but works for P=3
and above. The problem has been tracked down to the preconditioner. If we set <I PROPERTY="Preconditioner" VALUE="Block"/>
, the solver crashes, but if we select <I PROPERTY="Preconditioner" VALUE="Diagonal"/>
, it works.
In the allocation of the preconditioner, the Array
bmap
used on line 354 in PreconditionerBlock.cpp
is empty (m_size = 0
). This causes the code to crash. Note that with P=1
, the code also crashes, but on a different line further up in the file. This time, it is also the bmap
Array
which is empty.
Two .xml
files that contain mesh and session parameters have been attached to this issue.