We now use Cofunction for the right hand side of the block problem. Pedantically, the all-at-once functions that we copy the all-at-once residual into in the PC should also be Cofunction. However, cpx.{set,get}_{real,imag} doesn't work with Cofunction with the complex_proxy.vector implementation (seems fine with the complex_proxy.mixed implementation).
It would be good to fix this and change pc.xfr and pc.xfi to Cofunctions.
We now use
Cofunction
for the right hand side of the block problem. Pedantically, the all-at-once functions that we copy the all-at-once residual into in the PC should also beCofunction
. However,cpx.{set,get}_{real,imag}
doesn't work withCofunction
with thecomplex_proxy.vector
implementation (seems fine with thecomplex_proxy.mixed
implementation).It would be good to fix this and change
pc.xfr
andpc.xfi
toCofunctions
.