On Thu, May 13, 2010 at 6:10 AM, Eloy Romero <span dir="ltr">&lt;<a href="mailto:elroal@upvnet.upv.es">elroal@upvnet.upv.es</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Dear all,<br>
<br>
I have a code that using the same ksp, solves some matrices with different size in that way:<br>
<br>
  ierr = KSPCreate(PETSC_COMM_WORLD, &amp;ksp);<br>
  ...<br>
  ierr = KSPSetOperators(ksp, A, A, DIFFERENT_NONZERO_PATTERN); CHKERRQ(ierr);<br>
  ierr = KSPSolve(ksp, v0, v1); CHKERRQ(ierr);<br>
  ...<br>
  ierr = KSPSetOperators(ksp, B, B, DIFFERENT_NONZERO_PATTERN); CHKERRQ(ierr);<br>
  ierr = KSPSolve(ksp, w0, w1); CHKERRQ(ierr);<br>
  ...<br>
<br>
The KSPSolve is called with vectors of appropriated length. However I obtain the following error in the second call to KSPSolve:<br>
<br>
[0]PETSC ERROR: --------------------- Error Message ------------------------------------<br>
[0]PETSC ERROR: Nonconforming object sizes!<br>
[0]PETSC ERROR: Mat mat,Vec x: global dim 1083 66!<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: Petsc Release Version 3.1.0, Patch 0, unknown<br>
[0]PETSC ERROR: See docs/changes/index.html for recent updates.<br>
[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.<br>
[0]PETSC ERROR: See docs/index.html for manual pages.<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: ./veccomp_ex2 on a linux-gnu named yah by eloy Thu May 13 11:27:31 2010<br>
[0]PETSC ERROR: Libraries linked from /usr/src/petsc-release-3.1/linux-gnu-c-debug/lib<br>
[0]PETSC ERROR: Configure run at Wed Mar 31 13:34:33 2010<br>
[0]PETSC ERROR: Configure options --with-blas-lapack-dir=&quot;[/usr/lib]&quot; --with-clanguage=C --with-shared=0 --with-mpi=1 --with-cc=mpicc --with-cxx=mpicxx --download-hypre=ifneeded --with-hypre=1 --with-fc=mpif90 --with-mumps --download-mumps=ifneeded --download-blacs=ifneeded --download-scalapack=ifneeded --download-parmetis=ifneeded --download-superlu_dist=ifneeded --with-superlu_dist --with-ml --download-ml=ifneeded --with-mpi-dir=/usr<br>

[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: MatMult() line 1889 in src/mat/interface/matrix.c<br>
[0]PETSC ERROR: PCApplyBAorAB() line 585 in src/ksp/pc/interface/precon.c<br>
[0]PETSC ERROR: GMREScycle() line 161 in src/ksp/ksp/impls/gmres/gmres.c<br>
[0]PETSC ERROR: KSPSolve_GMRES() line 241 in src/ksp/ksp/impls/gmres/gmres.c<br>
[0]PETSC ERROR: KSPSolve() line 396 in src/ksp/ksp/interface/itfunc.c<br>
[0]PETSC ERROR: main() line 59 in veccomp_ex2.c<br>
<br>
I don&#39;t find in the reference that one can or cannot use the ksp with matrices of different size, so I don&#39;t know if it is really a bug.<br></blockquote><div><br></div><div>You can only use a KSP to solve one system size.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
In my application, a ksp configured by the user is given, and I would like to use that configuration for solving all the linear systems. Creating new ksps and configuring them with KSPSetFromOptions is not a complete solution because the user could modify the ksp by code.<br>

</blockquote></div><div><br></div>You can replicate all the KSP settings in the new KSP. They are all available by the API.<div><br></div><div>   Matt<br>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener<br>
</div>