<div dir="ltr">Dear petsc users,<div><br></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">I am new to petsc, but I am really enjoying it.</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">I am developing a CFD code in fortran and I have a (newby) question for you.</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">I have a subroutine that assembles the matrices arising from the finite volume method. They are sparse and the coefficients change every time step, but their sparsity remains unchanged (i.e. non-zeros entries are always in the same position).</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">In the subroutine, which is called every time step, I am basically following the manual and I do something like:</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">-  call MatCreate(PETSC_COMM_WORLD,A,ierr)</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">-   call MatSetSizes(A,lm,lm,M,M,ierr)</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">-   call MatSetType(A, myType,ierr)</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">-    call MatMPIAIJSetPreallocation(A,d_nz,PETSC_NULL_INTEGER, o_nz, PETSC_NULL_INTEGER,ierr)<span style="white-space:pre">      </span></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">           call MatSetUp(A,ierr)</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">-   call MatSetValues</font></div><div><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif">-   call MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY,ierr)</span><br></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><div>-   call MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY,ierr)</div></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">-   Solve the system</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">-  call MatDestroy</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">Here is my question:</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">As you can note, every time step, I allocate the matrix, fill it, use it and the destroy it. Is there a way to avoid the matrix preallocation every time? I just would like to change matrix the entries and avoid the preallocation.</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">Thank you for the help that you can give me,</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">Edoardo</font></div><div><br></div><div></div></div>