Clarify in documentation which routines copy the provided values https://urldefense.us/v3/__https://gitlab.com/petsc/petsc/-/merge_requests/7336__;!!G_uCfscf7eWS!Z2j2ynvPrOvIKRuhQdogedQsz8yANmf4jbsUEXvXz2afujWJLfsAdG45b-wsInVpXM3tB3H6h1vTdYbzamBV5hs$
> On Mar 2, 2024, at 6:40 AM, Fabian Wermelinger <fab4...@posteo.ch> wrote: > > This Message Is From an External Sender > This message came from outside your organization. > On Fri, 01 Mar 2024 12:51:45 -0600, Junchao Zhang wrote: > >> The preferred method then is to use MatSetValues() for the copies (or > >> possibly MatSetValuesRow() or MatSetValuesBlocked())? > > MatSetValuesRow() > > Thanks > > >> The term "Preallocation" is confusing to me. For example, > >> MatCreateMPIBAIJWithArrays clearly states in the doc that arrays are copied > >> (https://urldefense.us/v3/__https://petsc.org/release/manualpages/Mat/MatCreateMPIBAIJWithArrays/__;!!G_uCfscf7eWS!cls7psuvaRuDYuXpUpmU7lcEhX9AO0bb3qTpszwuTNP8LPPrJkCzoaHIdJCzxPR36D7SLYs9MKCxqMBKRnSQc8s$), > >> I > >> would then assume PETSc maintains internal storage for it. If something is > >> preallocated, I would not make that assumption. > >"Preallocation" in petsc means "tell petsc sizes of rows in a matrix", so > >that > >petsc can preallocate the memory before you do MatSetValues(). This is > >clearer > >in > >https://urldefense.us/v3/__https://petsc.org/release/manualpages/Mat/MatMPIAIJSetPreallocation/__;!!G_uCfscf7eWS!cls7psuvaRuDYuXpUpmU7lcEhX9AO0bb3qTpszwuTNP8LPPrJkCzoaHIdJCzxPR36D7SLYs9MKCxqMBKrYGemdo$ > > Thanks for the clarification! > > All best, > > -- > fabs