[petsc-users] Petsc error: cannot chang local size of Amat after use old sizes 10 10 new sizes 11 11

Smith, Barry F. bsmith at mcs.anl.gov
Sat May 12 11:30:28 CDT 2018


  Also if you change the "local size" of the matrix/vectors you must call KSPReset() so that the KSP/PC can free up all of their (previously sized) work matrices and vectors.

   Barry


> On May 12, 2018, at 7:08 AM, 我 <dayedut123 at 163.com> wrote:
> 
> 
> Thanks for your reply! I'm confused about how to create a new matrix during the time step advancing.
> For better understand my problem, simple pseudo code (just contains the main functions)  like this:
> /////////////////////////////////
> KSP ksp;
> PC pc;
> KSPCreate;
> Mat A;
> for(int timestep=0; timestep<20; timestep++)
> {
> //for example
> if(timestep==2)
> {
> localsize change;
> }
> MatCreateMPIAIJWithArrays(PETSC_COMM_WORLD, localsize, localsize, m, m, istore, jstore, vstore, &A);
> KSPSolve;
> 
> MatDestroy(&A);
> }
> /////////////////////////////
> Thanks again!
> Daye
> 
> 
> 
> 
> At 2018-05-11 19:07:35, "Matthew Knepley" <knepley at gmail.com> wrote:
> On Fri, May 11, 2018 at 4:23 AM, 我 <dayedut123 at 163.com> wrote:
> Hello all,
> I use the function MatCreateMPIAIJWithArrays to construct my matrix. But the number of local rows m and local columns n may change during the timestep advancing.  When the local size changes, the error like "Petsc error: cannot chang local size of Amat after use old sizes 10 10 new sizes 11 11" will appear. Any suggestions about it ?
> 
> If the parallel layout changes, you need to create a new matrix.
> 
>   Thanks,
> 
>     Matt
>  
> Thank you very much!
> Daye
> 
> 
>  
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener
> 
> https://www.cse.buffalo.edu/~knepley/
> 
> 
>  



More information about the petsc-users mailing list