[petsc-users] Modify matrix nonzero structure

Barry Smith bsmith at petsc.dev
Sun May 19 19:24:46 CDT 2024


   You can call MatSetOption(mat,MAT_NEW_NONZERO_LOCATION_ERR) then insert the new values. If it is just a handful of new insertions the extra time should be small.

    Making a copy of the matrix won't give you a new matrix that is any faster to insert into so best to just use the same matrix.

  Barry


> On May 19, 2024, at 7:44 PM, Adrian Croucher <a.croucher at auckland.ac.nz> wrote:
> 
> This Message Is From an External Sender
> This message came from outside your organization.
> hi,
> 
> I have a Jacobian matrix created using DMCreateMatrix(). What would be 
> the best way to add extra nonzero entries into it?
> 
> I'm guessing that DMCreateMatrix() allocates the storage so the nonzero 
> structure can't really be easily modified. Would it be a case of 
> creating a new matrix, copying the nonzero entries from the original one 
> and then adding the extra ones, before calling MatSetUp() or similar? If 
> so, how exactly would you copy the nonzero structure from the original 
> matrix?
> 
> Background: the flow problem I'm solving (on a DMPlex with finite volume 
> method) has complex source terms that depend on the solution (e.g. 
> pressure), and can also depend on other source terms. A simple example 
> is when fluid is extracted from one location, with a pressure-dependent 
> flow rate, and some of it is then reinjected in another location. This 
> can result in poor nonlinear solver convergence. I think the reason is 
> that there are effectively missing Jacobian entries in the row for the 
> reinjection cell, which should have an additional dependence on the 
> solution in the cell where fluid is extracted.
> 
> - Adrian
> 
> -- 
> Dr Adrian Croucher
> Senior Research Fellow
> Department of Engineering Science
> Waipapa Taumata Rau / University of Auckland, New Zealand
> email: a.croucher at auckland.ac.nz <mailto:a.croucher at auckland.ac.nz>
> tel: +64 (0)9 923 4611
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240519/3cb9a7df/attachment-0001.html>


More information about the petsc-users mailing list