<div dir="ltr"><div>Wow, it works... LSQR is fine with the problem. Thanks!<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 12, 2014 at 3:06 PM, Barry Smith <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>
  Oh, right CG only works for square matrices.<br>
<br>
  I think you should be using lsqr. See <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/KSPLSQR.html" target="_blank">http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/KSPLSQR.html</a> Note if you want to use preconditioning you need to pass for the second matrix the product of the transpose of the matrix times the matrix.<br>
<br>
  There is also KSPCGNE but the docs say, I don't know why, that one should use lsqr for least squares problems.<br>
<br>
  Basically our current support for overdetermined systems is not great and we need help.<br>
<span class="HOEnZb"><font color="#888888"><br>
  Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> On Nov 12, 2014, at 2:46 PM, Brian Yang <<a href="mailto:brianyang1106@gmail.com">brianyang1106@gmail.com</a>> wrote:<br>
><br>
> Thank you for the prompt response. I checked and my usage of KSPSolve is correct.<br>
><br>
> Besides, the assertion line is:<br>
> if (mat->rmap->N != y->map->N) SETERRQ2(PETSC_COMM_SELF,PETSC_ERR_ARG_SIZ,"Mat mat,Vec y: global dim %D %D",mat->rmap->N,y->map->N);<br>
><br>
> On Wed, Nov 12, 2014 at 2:29 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
><br>
>   The calling sequence for KSPSolve is KSPSolve(KSP ksp,Vec b,Vec x),  perhaps you have the b and the x backwards in your call?<br>
><br>
>   Barry<br>
><br>
> > On Nov 12, 2014, at 2:23 PM, Brian Yang <<a href="mailto:brianyang1106@gmail.com">brianyang1106@gmail.com</a>> wrote:<br>
> ><br>
> > Hi,<br>
> ><br>
> > I am solving an over-determined linear system Ax=b and b=0.<br>
> ><br>
> > A size: 296856 x 14430<br>
> > x (non-zero guess): 14430<br>
> > b (zero): 296856<br>
> ><br>
> > All of them are using seq mode to create, so one node will solve this. However I got this error:<br>
> ><br>
> > [0]PETSC ERROR: Nonconforming object sizes!<br>
> > [0]PETSC ERROR: Mat mat,Vec y: global dim 296856 14430!<br>
> ><br>
> > [0]PETSC ERROR: ------------------------------------------------------------------------<br>
> > [0]PETSC ERROR: MatMult() line 2171 in src/mat/interface/matrix.c<br>
> > [0]PETSC ERROR: KSP_MatMult() line 204 in src/ksp/ksp/impls/cg//datadb/raafat/src/petsc-3.4.3/include/petsc-private/kspimpl.h<br>
> > [0]PETSC ERROR: KSPSolve_CG() line 132 in src/ksp/ksp/impls/cg/cg.c<br>
> > [0]PETSC ERROR: KSPSolve() line 441 in src/ksp/ksp/interface/itfunc.c<br>
> ><br>
> ><br>
> > Any restrictions here or I misunderstood something? Thanks!<br>
> ><br>
> > --<br>
> > Brian Yang<br>
> > U of Houston<br>
> ><br>
> ><br>
> ><br>
><br>
><br>
><br>
><br>
> --<br>
> Brian Yang<br>
> U of Houston<br>
><br>
><br>
><br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">Brian Yang<br>U of Houston<br><br><br><br></div>
</div>