   PetscCall(C(CopySubspaceData_CUDA,RIGHT_SUBSPACE)(
     (C(data,RIGHT_SUBSPACE)**)&(ctx->right_subspace_data),
     (C(data,RIGHT_SUBSPACE)*)right_subspace_data));
+
+  return 0;
 }
 
 PetscErrorCode C(MatDestroyCtx_GPU,C(LEFT_SUBSPACE,RIGHT_SUBSPACE))(Mat A)


  PetscCall(VecGetSize(b, &size));

  err = cudaThreadSynchronize();CHKERRCUDA(err);

  C(device_MatMult,C(LEFT_SUBSPACE,RIGHT_SUBSPACE))<<<GPU_BLOCK_NUM,GPU_BLOCK_SIZE>>>(
    size,

    xarray,
    barray);

  err = cudaDeviceSynchronize();CHKERRCUDA(err);

  PetscCall(VecCUDARestoreArrayRead(x, &xarray));
  PetscCall(VecCUDARestoreArray(b, &barray));
