[petsc-users] Jacobian matrix for dual porosity model

Matthew Knepley knepley at gmail.com
Fri Jun 23 05:30:34 CDT 2017


On Fri, Jun 23, 2017 at 1:15 AM, Adrian Croucher <a.croucher at auckland.ac.nz>
wrote:

> On 23/06/17 00:48, Matthew Knepley wrote:
>
>
> If I understand what you mean, I considered doing something like that-
> basically just defining extra degrees of freedom in the cells where dual
> porosity is to be applied.
>
>>
>> It seemed to me that if I then went ahead and created the Jacobian matrix
>> using DMCreateMatrix(), it would give me extra nonzero entries that
>> shouldn't be there - interactions between the dual porosity variables in
>> neighbouring cells. Is there any way to avoid that?
>>
>
> Ah, this is a very good point. You would like sparse structure in the
> Jacobian blocks. Currently I do not have it,
> but DMNetwork does. I have been planning to unify the sparsity
> determination between the two. It is on the list.
>
>
> I can see another possible problem with this approach, which is that the
> extra dual-porosity unknowns would presumably be interlaced with the others
> (the fracture unknowns) in the resulting vector. This might make it harder
> to apply PCFIELDSPLIT (I think?), where I want to partition the Jacobian
> into fracture and matrix parts to solve it more efficiently, as Jed and
> Barry suggested.
>

Actually that part will work fine.


> I have played around a bit more with including the dual-porosity topology
> in the DMPlex. It seems to work OK if I just extend the DAG on the
> dual-porosity faces up to the maximum depth (so there is an unused edge and
> vertex associated with each dual-porosity face).
>
> I also had a closer look inside DMPlexStratify() and I can see that it
> won't work if different parts of the DAG have different heights. For my
> case I could possibly stratify it differently (starting from the cell end
> rather than the vertex end) and it might work, but I don't know if there
> are other DMPlex functions that might not like that kind of DAG either.
>

Having different parts have different heights does throw a wrench in
things. In your case, this would not happen if you put an unused edge and
vertex on top of the dual porosity face.

  Thanks,

    Matt


>
> - Adrian
>
> --
> Dr Adrian Croucher
> Senior Research Fellow
> Department of Engineering Science
> University of Auckland, New Zealand
> email: a.croucher at auckland.ac.nz
> tel: +64 (0)9 923 4611 <+64%209-923%204611>
>
>


-- 
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

http://www.caam.rice.edu/~mk51/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20170623/3bc1a6b9/attachment.html>


More information about the petsc-users mailing list