You mean MATAIJ?

Note that you can run the same code in sequential or in parallel with MATAIJ, 
i.e.

MatCreate(comm,&A);
MatSetType(A,MATAIJ);
MatSeqAIJSetPreallocation(A,dnz,ddnz); // dummy call if comm.size > 1
MatMPIAIJSetPreallocation(A,dnz,ddnz,onz,oonz); // dummy call if comm.size == 1

or by using MatXAIJSetPreallocation

> On Feb 5, 2018, at 8:43 PM, Jared Crean <[email protected]> wrote:
> 
>     Switching to MPIAIJ fixed the problem.
> 
>     Thanks for looking into this,
>         Jared Crean
> 
> On 02/02/2018 01:56 PM, Smith, Barry F. wrote:
>> 
>>> On Feb 2, 2018, at 12:27 PM, Stefano Zampini <[email protected]> 
>>> wrote:
>>> 
>>> Jared,
>>> 
>>> the problem arises using MPIAIJ for the uniprocessor case and it is related 
>>> with BJacobi, nothing to do with your code.
>>> If you set the type to MATAIJ and call MatSeqAIJSetPreallocation, it works 
>>> fine.
>>> 
>>> Barry, should we change the default pc type for MPIAIJ if the size is 1? 
>>> MatGetFactor and MatSolverTypeGet cannot take this decision.
>>   I think we need to improve the documentation and examples to emphasis the 
>> use of MATAIJ and not the particular Seq or MPI version so that people 
>> always think in terms of MATAIJ and so naturally write code that works for 
>> all cases.
>> 
>>    Barry
>> 
>> We tried once a very long time ago to have MPIAIJ become SeqAIJ on a single 
>> process but it ended up causing its own headaches.
>> 
>> 
>>> Stefano
>>> 
>>>> On Feb 1, 2018, at 8:48 PM, Jared Crean <[email protected]> wrote:
>>>> 
>>>> Hello,
>>>> 
>>>>    I am trying to use a matrix-free linear operator with a matrix-explicit 
>>>> preconditioner, but when I try to do the KSP solve it gives the error:
>>>> 
>>>> [0]PETSC ERROR: See 
>>>> http://www.mcs.anl.gov/petsc/documentation/linearsolvertable.html for 
>>>> possible LU and Cholesky solvers
>>>> [0]PETSC ERROR: Could not locate a solver package. Perhaps you must 
>>>> ./configure with --download-<package>
>>>> [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html 
>>>> for trouble shooting.
>>>> [0]PETSC ERROR: Petsc Release Version 3.8.3, Dec, 09, 2017
>>>> [0]PETSC ERROR: ./testcase on a arch-linux2-c-debug named jared-r15 by 
>>>> jared Thu Feb  1 12:40:57 2018
>>>> [0]PETSC ERROR: Configure options
>>>> [0]PETSC ERROR: #1 MatGetFactor() line 4346 in 
>>>> /home/jared/.julia/v0.4/PETSc2/deps/petsc-3.8.3/src/mat/interface/matrix.c
>>>> [0]PETSC ERROR: #2 PCSetUp_ILU() line 142 in 
>>>> /home/jared/.julia/v0.4/PETSc2/deps/petsc-3.8.3/src/ksp/pc/impls/factor/ilu/ilu.c
>>>> [0]PETSC ERROR: #3 PCSetUp() line 924 in 
>>>> /home/jared/.julia/v0.4/PETSc2/deps/petsc-3.8.3/src/ksp/pc/interface/precon.c
>>>> [0]PETSC ERROR: #4 KSPSetUp() line 381 in 
>>>> /home/jared/.julia/v0.4/PETSc2/deps/petsc-3.8.3/src/ksp/ksp/interface/itfunc.c
>>>> [0]PETSC ERROR: #5 PCSetUpOnBlocks_BJacobi_Singleblock() line 618 in 
>>>> /home/jared/.julia/v0.4/PETSc2/deps/petsc-3.8.3/src/ksp/pc/impls/bjacobi/bjacobi.c
>>>> [0]PETSC ERROR: #6 PCSetUpOnBlocks() line 955 in 
>>>> /home/jared/.julia/v0.4/PETSc2/deps/petsc-3.8.3/src/ksp/pc/interface/precon.c
>>>> [0]PETSC ERROR: #7 KSPSetUpOnBlocks() line 213 in 
>>>> /home/jared/.julia/v0.4/PETSc2/deps/petsc-3.8.3/src/ksp/ksp/interface/itfunc.c
>>>> [0]PETSC ERROR: #8 KSPSolve() line 613 in 
>>>> /home/jared/.julia/v0.4/PETSc2/deps/petsc-3.8.3/src/ksp/ksp/interface/itfunc.c
>>>> 
>>>> 
>>>>  The code to reproduce this error is attached.  The error is present on 
>>>> Petsc 3.7.6 and 3.8.3.  I noticed two things while creating the test case: 
>>>> 1) using a jacobi preconditioner works (using block jacobi with ILU on 
>>>> each block does not), and 2) if I replace the shell matrix with the 
>>>> preconditioner matrix in KSPSetOperators(), there is no error (with the 
>>>> block jacobi ILU preconditioner).
>>>> 
>>>>  Is this a bug in Petsc or did I setup the preconditioner incorrectly?
>>>> 
>>>>    Jared Crean
>>>> 
>>>> 
>>>> <testcase.c>
> 
> 

Reply via email to