[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