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" <[email protected]> wrote:

On Fri, May 11, 2018 at 4:23 AM, 我 <[email protected]> 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/

Reply via email to