[petsc-dev] [petsc-maint #146341] Re: Problem Assembling MatCreateAIJ (Parallel Sparse Matrix)

Barry Smith bsmith at mcs.anl.gov
Thu Jan 3 15:31:20 CST 2013


  What is the definition of Set()?

On Jan 3, 2013, at 3:14 PM, Hesameddin Ilatikhameneh <hilatikh at purdue.edu> wrote:

> I have a simple wrapper class around PETSc and trying to set some values from different process disregarding the ownership of rows (which row belong to which process).
> 
> // Following example I set A[0][1] = 6.0 in CPU0 and A[2][2] = 3.2 in CPU1; working fine!
> 
>        PetscInitialize(&argc,&argv,(char *)0,help);
> 	Petsc_Matrix_Parallel<double>* A = new Petsc_Matrix_Parallel<double>(MPI_COMM_WORLD,4,4, 0,3,3);
> 	if(Rank==0)
> 	{
>             // Set(Row,Col,Value)
>             // A[0][1] = 6.0
> 	     A->Set(0,1,6.0);
> 	}
> 	else if (Rank==1)
> 	{
>             // A[2][2] = 3.2
> 	     A->Set(2,2,3.2);
> 	}
> 	A->Assemble();
> 	A->Print();
> 	PetscFinalize();
> 
> However if I change A[2][2] to A[2][0] it gives the error.
> 
> 	else if (Rank==1)
> 	{
>             // A[2][0] = 3.2
> 	     A->Set(2,0,3.2);
> 	}
> 
> Thanks
> Hesam
> ----- Original Message -----
> From: "Matthew Knepley" <petsc-maint at mcs.anl.gov>
> To: "For users of the development version of PETSc" <petsc-dev at mcs.anl.gov>
> Sent: Thursday, January 3, 2013 3:53:41 PM
> Subject: Re: [petsc-dev] Problem Assembling MatCreateAIJ (Parallel Sparse	Matrix)
> 
> 
> 
> I don't think I understand what you are doing. Can you send a small example? 
> 
> Matt 
> On Jan 3, 2013 2:51 PM, "Hesameddin Ilatikhameneh" < hilatikh at purdue.edu > wrote: 
> 
> 
> I noticed that the problem occurs when I try to set some of non-local (non-diagonal) matrix elements. i.e. in a 3x3 matrix with 2 cpus, if I try to set non-local diagonal elements it is OK but if I try to set some non-diagonal elements [0][2] or [2][0] it gives the error. It is wired that setting [0][1] or [1][0] is OK too. 
> 
> I tried CHKERRXX too and got the similar error message (attached below). 
> 
> 
> [0]PETSC ERROR: [1]PETSC ERROR: VecScatterCreateCommon_PtoS() line 2003 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/vec/vec/utils/vpscat.c 
> [0]PETSC ERROR: VecScatterCreate_PtoS() line 1807 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/vec/vec/utils/vpscat.c 
> [0]PETSC ERROR: VecScatterCreate() line 1331 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/vec/vec/utils/vscat.c 
> [0]PETSC ERROR: MatSetUpMultiply_MPIAIJ() line 150 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/impls/aij/mpi/mmaij.c 
> [0]PETSC ERROR: MatAssemblyEnd_MPIAIJ() line 702 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/impls/aij/mpi/mpiaij.c 
> [0]PETSC ERROR: MatAssemblyEnd() line 4879 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/interface/matrix.c 
> VecScatterCreateCommon_PtoS() line 2013 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/vec/vec/utils/vpscat.c 
> [1]PETSC ERROR: VecScatterCreate_PtoS() line 1807 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/vec/vec/utils/vpscat.c 
> [1]PETSC ERROR: VecScatterCreate() line 1331 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/vec/vec/utils/vscat.c 
> [1]PETSC ERROR: MatSetUpMultiply_MPIAIJ() line 150 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/impls/aij/mpi/mmaij.c 
> [1]PETSC ERROR: MatAssemblyEnd_MPIAIJ() line 702 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/impls/aij/mpi/mpiaij.c 
> [1]PETSC ERROR: MatAssemblyEnd() line 4879 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/interface/matrix.c 
> 
> Thanks 
> Hesam 
> ----- Original Message ----- 
> From: "Matthew Knepley" < petsc-maint at mcs.anl.gov > 
> To: "For users of the development version of PETSc" < petsc-dev at mcs.anl.gov > 
> Sent: Thursday, January 3, 2013 3:12:28 PM 
> Subject: Re: [petsc-dev] Problem Assembling MatCreateAIJ (Parallel Sparse Matrix) 
> 
> 
> 
> We cannot see the error message. Use CHKERRXX 
> 
> Matt 
> On Jan 3, 2013 1:11 PM, "Hesameddin Ilatikhameneh" < hilatikh at purdue.edu > wrote: 
> 
> 
> The point is the problem occurs when I'm assembling the matrix and since it is unsuccessful MatView gives error. 
> I assemble the matrix: 
> 
> this->Petsc_Error = MatAssemblyBegin(*(this->Petsc_Mat),MAT_FINAL_ASSEMBLY); 
> this->Check_Petsc_Error(); 
> this->Petsc_Error = MatAssemblyEnd(*(this->Petsc_Mat),MAT_FINAL_ASSEMBLY); 
> this->Check_Petsc_Error(); 
> 
> Thanks 
> Hesam 
> ----- Original Message ----- 
> From: "Jed Brown" < jedbrown at mcs.anl.gov > 
> To: "For users of the development version of PETSc" < petsc-dev at mcs.anl.gov > 
> Cc: "petsc-maint" < petsc-maint at mcs.anl.gov > 
> Sent: Thursday, January 3, 2013 2:07:40 PM 
> Subject: Re: [petsc-dev] Problem Assembling MatCreateAIJ (Parallel Sparse Matrix) 
> 
> 
> 
> You have to assemble the matrix, just like the error message says. 
> On Jan 3, 2013 1:00 PM, "Hesameddin Ilatikhameneh" < hilatikh at purdue.edu > wrote: 
> 
> 
> Hello, 
> 
> When I try to assemble a parallel sparse matrix (MatCreateAIJ) I get the following error. But when I try to set the parallel matrix in dense format I don't get any error. I used PETSC_DECIDE for number of local elements and number of local nonzeros and PETSC_NULL for nonzeros array in MatCreateAIJ. 
> 
> 
> [0]PETSC ERROR: [1]PETSC ERROR: VecScatterCreateCommon_PtoS() line 2013 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/vec/vec/utils/vpscat.c 
> [0]PETSC ERROR: VecScatterCreate_PtoS() line 1807 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/vec/vec/utils/vpscat.c 
> [0]PETSC ERROR: VecScatterCreate() line 1331 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/vec/vec/utils/vscat.c 
> [0]PETSC ERROR: MatSetUpMultiply_MPIAIJ() line 150 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/impls/aij/mpi/mmaij.c 
> [0]PETSC ERROR: MatAssemblyEnd_MPIAIJ() line 702 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/impls/aij/mpi/mpiaij.c 
> [0]PETSC ERROR: MatAssemblyEnd() line 4879 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/interface/matrix.c 
> [0]PETSC ERROR: User provided function() line 65 in "unknowndirectory/"/home/Codes/trunk/HSim2/Include/Math/PetscMatrix.h 
> VecScatterCreateCommon_PtoS() line 2003 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/vec/vec/utils/vpscat.c 
> [1]PETSC ERROR: VecScatterCreate_PtoS() line 1807 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/vec/vec/utils/vpscat.c 
> [1]PETSC ERROR: VecScatterCreate() line 1331 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/vec/vec/utils/vscat.c 
> [1]PETSC ERROR: MatSetUpMultiply_MPIAIJ() line 150 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/impls/aij/mpi/mmaij.c 
> [1]PETSC ERROR: MatAssemblyEnd_MPIAIJ() line 702 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/impls/aij/mpi/mpiaij.c 
> [1]PETSC ERROR: MatAssemblyEnd() line 4879 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/interface/matrix.c 
> [1]PETSC ERROR: User provided function() line 65 in "unknowndirectory/"/home/Codes/trunk/HSim2/Include/Math/PetscMatrix.h 
> [0]PETSC ERROR: --------------------- Error Message ------------------------------------ 
> [0]PETSC ERROR: Operation done in wrong order! 
> [0]PETSC ERROR: Must call MatAssemblyBegin/End() before viewing matrix! 
> [0]PETSC ERROR: ------------------------------------------------------------------------ 
> [0]PETSC ERROR: Petsc Release Version 3.3.0, Patch 5, Sat Dec 1 15:10:41 CST 2012 
> [0]PETSC ERROR: See docs/changes/index.html for recent updates. 
> [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting. 
> [0]PETSC ERROR: See docs/index.html for manual pages. 
> [0]PETSC ERROR: ------------------------------------------------------------------------ 
> [0]PETSC ERROR: ./bin_Ubuntu/HSim2 on a linux-gnu named hesam2-VirtualBox by hesam2 Thu Jan 3 13:44:28 2013 
> [0]PETSC ERROR: Libraries linked from /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/linux-gnu-real/lib 
> [0]PETSC ERROR: Configure run at Fri Dec 21 08:15:55 2012 
> [0]PETSC ERROR: Configure options PETSC_DIR=/home/Codes/trunk/Libs/Petsc/PETSC_Build_Real PETSC_ARCH=linux-gnu-real --with-shared-libraries --download-f-blas-lapack=1 --with-single-library=0 --with-shared-libraries --with-debugging=1 --with-scalar-type=real 
> [0]PETSC ERROR: ------------------------------------------------------------------------ 
> [0]PETSC ERROR: MatView() line 740 in /home/Codes/trunk/Libs/Petsc/PETSC_Build_Real/src/mat/interface/matrix.c 
> 
> ================================================================================ 
> 
> 
> Many Thanks 
> Hesam 
> 




More information about the petsc-dev mailing list