Thanks for noting this. Is the problem the (*right)->map operation in?

ierr = PetscLayoutReference(mat->cmap,&(*right)->map);CHKERRQ(ierr);

   This can be corrected easily by replacing the PetscLayoutReference() here 
with VecSetLayout(). Does that resolve the problem?

   General note:   We should really move the PetscLayout operations out of Vec 
mpi impl location.

   Barry

On Feb 13, 2013, at 3:51 AM, "Jose E. Roman" <jroman at dsic.upv.es> wrote:

> mataijcusp.cu does not currently compile (MatGetVecs_MPIAIJCUSP accesses 
> private Vec members).
> Here is a fix. I did not push because maybe you prefer to use VecGetLayout 
> here.
> Jose
> 
> 
> --- a/src/mat/impls/aij/mpi/mpicusp/mpiaijcusp.cu     Tue Feb 12 23:21:30 
> 2013 -0600
> +++ b/src/mat/impls/aij/mpi/mpicusp/mpiaijcusp.cu     Wed Feb 13 10:42:59 
> 2013 +0100
> @@ -3,6 +3,7 @@
> #include <../src/mat/impls/aij/mpi/mpiaij.h>   /*I "petscmat.h" I*/
> PETSC_CUDA_EXTERN_C_END
> #include "mpicuspmatimpl.h"
> +#include <petsc-private/vecimpl.h>
> 
> #undef __FUNCT__
> #define __FUNCT__ "MatMPIAIJSetPreallocation_MPIAIJCUSP"
> 

Reply via email to