<div dir="ltr"><div><div><div>Hi Barry <br></div><div>Thanks for your answer, <br></div>I followed your suggestion (matrix type = MPIAIJ and superlu_dist on a single processor)   but I still get the same problem. <br><br><br>Rectangular matrices seem to be forbidden in MatGetOrdering(), whatever package is used for the LU decomposition<br><br>Here is the output : <br> ./ex12f -f data/constraints.bin -pc_factor_mat_solver_package superlu_dist -pc_type lu<br><br>   9   33    9   33  1.     0.3E+02 0.3E+02  0.     0.7E+04  1.      0.    <br>[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------<br>[0]PETSC ERROR: Invalid argument<br>[0]PETSC ERROR: Must be square matrix, rows 33 columns 9<br>[0]PETSC ERROR: See <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html">http://www.mcs.anl.gov/petsc/documentation/faq.html</a> for trouble shooting.<br>[0]PETSC ERROR: Petsc Release Version 3.8.3, Dec, 09, 2017 <br>[0]PETSC ERROR: ./ex12f on a linux-debug-mumps-ml-hypre-superlu-superlu_dist named dsp0780444 by H03755 Tue Mar 13 08:57:22 2018<br>[0]PETSC ERROR: Configure options --with-mpi=1 --with-debugging=1 --with-mumps-lib="-L/home/H03755/dev/codeaster-prerequisites/v14/prerequisites//Mumps-511_consortium_aster/MPI/lib -lzmumps -ldmumps -lmumps_common -lpord -L/home/H03755/dev/codeaster-prerequisites/v14/prerequisites//Parmetis_aster-403_aster/lib -lparmetis -L/home/H03755/dev/codeaster-prerequisites/v14/prerequisites//Scotch_aster-604_aster6/MPI/lib -lptscotch  -lptscotcherr  -lptscotcherrexit  -lptscotchparmetis  -lesmumps -lscotch -lscotcherr -lscotcherrexit  -L/home/H03755/dev/codeaster-prerequisites/v14/prerequisites//Metis_aster-510_aster1/lib -lmetis" --with-mumps-include=/home/H03755/dev/codeaster-prerequisites/v14/prerequisites//Mumps-511_consortium_aster/MPI/include --download-hypre=/home/H03755/Librairies/hypre-2.12.0.tar.gz --download-ml=/home/H03755/Librairies/petsc-pkg-ml-e5040d11aa07.tar.gz --with-openmp=0 --with-scalapack-lib="-lscalapack-openmpi -lblacs-openmpi -lblacsF77init-openmpi -lblacsCinit-openmpi" --with-blaslapack-lib="-llapack -lopenblas" --PETSC_ARCH=linux-debug-mumps-ml-hypre-superlu-superlu_dist LIBS=-lgomp --with-parmetis-dir=/home/H03755/dev/codeaster-prerequisites/v14/prerequisites//Parmetis_aster-403_aster --with-metis-dir=/home/H03755/dev/codeaster-prerequisites/v14/prerequisites//Metis_aster-510_aster1 --prefix=/home/H03755/local/petsc/petsc-3.8.3 --download-superlu=/home/H03755/Librairies/superlu_dist-master.zip --with-parmetis-dir=/home/H03755/dev/codeaster-prerequisites/v14/prerequisites//Parmetis_aster-403_aster --with-metis-dir=/home/H03755/dev/codeaster-prerequisites/v14/prerequisites//Metis_aster-510_aster1 --download-superlu=/home/H03755/Librairies/superlu-a0819410c9eb779f9b296cdd95fbdfd96986ae10.tar.gz<br>[0]PETSC ERROR: #1 MatGetOrdering() line 243 in /home/H03755/Librairies/petsc-3.8.3/src/mat/order/sorder.c<br>[0]PETSC ERROR: #2 MatGetOrdering() line 192 in /home/H03755/Librairies/petsc-3.8.3/src/mat/order/sorder.c<br>[0]PETSC ERROR: #3 PCSetUp_LU() line 84 in /home/H03755/Librairies/petsc-3.8.3/src/ksp/pc/impls/factor/lu/lu.c<br>[0]PETSC ERROR: #4 PCSetUp() line 924 in /home/H03755/Librairies/petsc-3.8.3/src/ksp/pc/interface/precon.c<br>[0]PETSC ERROR: #5 User provided function() line 0 in User file<br><br></div><div><br>My code looks like : <br>call MatLoad(A,fd,ierr)<br></div><div>call KSPCreate(PETSC_COMM_WORLD,ksp,ierr)<br>call KSPSetOperators(ksp,A,A,ierr)<br></div><div>call KSPGetPC(ksp,pc,ierr)<br>call PCSetFromOptions( pc, ierr) <br>call PCSetUp(pc, ierr) <br><br>Should I call directly a factorization routine ?  Instead of trying to build a preconditionner ? <br><br><br></div>Best regards, <br></div>Natacha <br><div><div><div><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 12, 2018 at 3:46 PM, Smith, Barry F. <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
   Create the matrix on one process but make it a MPIAIJ matrix (not SeqAIJ or AIJ) then you should be able to do the factorization with SuperLU_Dist<br>
<br>
    Please let us know how it goes,<br>
<br>
    Barry<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> On Mar 12, 2018, at 4:35 AM, Natacha BEREUX <<a href="mailto:natacha.bereux@gmail.com">natacha.bereux@gmail.com</a>> wrote:<br>
><br>
> Dear Petsc user's<br>
><br>
> I am trying to use SuperLU_dist to compute LU decomposition of a non-square matrix.<br>
><br>
> My purpose is to build a basis of the nullspace of a matrix C . This matrix stores constraints (i.e. linear relationships between degrees of freedom): it is thus rectangular (size 9 x 33) and not square<br>
> I need to get the L U factors of C^T which is a tall skinny matrix.<br>
> It is possible when using directly SuperLu or SuperLU_dist<br>
> But when I use Petsc interface to SuperLU I get the following error :<br>
><br>
> [0]PETSC ERROR: Invalid argument<br>
> [0]PETSC ERROR: Must be square matrix, rows 9 columns 33<br>
> [0]PETSC ERROR: See <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html" rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/<wbr>documentation/faq.html</a> for trouble shooting.<br>
> [0]PETSC ERROR: Petsc Release Version 3.8.3, Dec, 09, 2017<br>
> [0]PETSC ERROR: #1 MatGetOrdering() line 243 in /home/H03755/Librairies/petsc-<wbr>3.8.3/src/mat/order/sorder.c<br>
> [0]PETSC ERROR: #2 PCSetUp_LU() line 84 in /home/H03755/Librairies/petsc-<wbr>3.8.3/src/ksp/pc/impls/factor/<wbr>lu/lu.c<br>
> [0]PETSC ERROR: #3 PCSetUp() line 924 in /home/H03755/Librairies/petsc-<wbr>3.8.3/src/ksp/pc/interface/<wbr>precon.c<br>
> [0]PETSC ERROR: #4 KSPSetUp() line 381 in /home/H03755/Librairies/petsc-<wbr>3.8.3/src/ksp/ksp/interface/<wbr>itfunc.c<br>
> [0]PETSC ERROR: #5 KSPSolve() line 612 in /home/H03755/Librairies/petsc-<wbr>3.8.3/src/ksp/ksp/interface/<wbr>itfunc.c<br>
> [0]PETSC ERROR: #6 User provided function() line 0 in User file<br>
><br>
> The use of non-square matrices is forbidden.<br>
><br>
> Is there a way to specify that I want to use a rectangular matrix ? How can I proceed to call SuperLU through PETSc with a rectangular matrix ?<br>
><br>
> Thanks a lot for your help<br>
> Best regards,<br>
><br>
> Natacha<br>
<br>
</div></div></blockquote></div><br></div>