Dear PETSc Dev Team, The documentation recommends calling both of the above preallocation routines for simplicity. Do we waste memory by calling both?
Thanks, Sam MATAIJMATAIJ <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MATAIJ.html#MATAIJ> = "aij" - A matrix type to be used for sparse matrices. This matrix type is identical to MATSEQAIJ <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MATSEQAIJ.html#MATSEQAIJ> when constructed with a single process communicator, and MATMPIAIJ <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MATMPIAIJ.html#MATMPIAIJ> otherwise. As a result, for single process communicators, MatSeqAIJSetPreallocation <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatSeqAIJSetPreallocation.html#MatSeqAIJSetPreallocation> is supported, and similarly MatMPIAIJSetPreallocation <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatMPIAIJSetPreallocation.html#MatMPIAIJSetPreallocation>() is supported for communicators controlling multiple processes. It is recommended that you call both of the above preallocation routines for simplicity.
