Dear Jed,

I am sorry that I cannot generate the errors using PETSc by itself.
However, it easy to generate the errors with libmesh.
There is an example from libmesh, that is http://libmesh.sourceforge.net/ex4.php
I can run it using the command "ibrun -n 2 -o 0 ./introduction_ex4-dbg -d 3 -pc_type none -ksp_type gmres -vec_type mpicusp -mat_type mpiaijcusp  -ksp_view -ksp_monitor -log_summary -malloc_debug -cuda_show_devices" (You should replace ibrun -n 2 -o 0 using mpiexec -n 2)
I get the same errors. However, when using "ibrun -n 2 -o 0 ./introduction_ex4-dbg -d 3 -pc_type none -ksp_type gmres -ksp_view -ksp_monitor -log_summary". I can run it successfully.

Thank you very much.

Best,
Yujie

On Sat, Feb 11, 2012 at 4:43 AM, Jed Brown <jedbrown@mcs.anl.gov> wrote:
You have to follow the code down to where those matrices are used.

1478:   AssembleA_Stokes(A,da_Stokes,da_prop,properties);
1479:   AssembleA_PCStokes(B,da_Stokes,da_prop,properties);

This uses a "block preconditioner", the B matrix is intentionally different from the A matrix in order to handle the saddle point.