[petsc-users] Construct Matrix based on row and column values

Elias Karabelas karabelaselias at gmail.com
Mon Mar 23 07:37:58 CDT 2020


On 23/03/2020 13:36, Matthew Knepley wrote:
> On Mon, Mar 23, 2020 at 8:31 AM Elias Karabelas 
> <karabelaselias at gmail.com <mailto:karabelaselias at gmail.com>> wrote:
>
>     Dear Matt,
>
>     I've just found this answer from 2014
>
>     https://lists.mcs.anl.gov/pipermail/petsc-users/2014-August/022450.html
>
>     wondering if this would theoretically work.
>
> In serial certainly, I just don't see how it works in parallel since 
> you might not own the row you need from the transpose.
>
>     And the thing with this FCT-Schemes is, that they're build on
>     purely algebraic considerations (like AMG) so I don't want to
>     break it back down to mesh information if possible at all.
>
> The FEM-FCT I am familiar with from Lohner was phrased on a mesh.

Can you give me a reference to that? I based my things on this work 
https://www.sciencedirect.com/science/article/pii/S0045782508003150#!

Best regards

Elias


>
>   Thanks,
>
>     Matt
>
>     Best regards
>
>     Elias
>
>     On 23/03/2020 13:02, Matthew Knepley wrote:
>>     On Mon, Mar 23, 2020 at 7:46 AM Elias Karabelas
>>     <karabelaselias at gmail.com <mailto:karabelaselias at gmail.com>> wrote:
>>
>>         Dear Users,
>>
>>         I want to implement a FCT (flux corrected transport) scheme
>>         with PETSc.
>>         To this end I have amongst other things create a Matrix whose
>>         entries
>>         are given by
>>
>>         L_ij = -max(0, A_ij, A_ji) for i neq j
>>
>>         L_ii = Sum_{j=0,..n, j neq i} L_ij
>>
>>         where Mat A is an (non-symmetric) Input Matrix created
>>         beforehand.
>>
>>         I was wondering how to do this. My first search brought me to
>>         https://www.mcs.anl.gov/petsc/petsc-current/src/mat/examples/tutorials/ex16.c.html
>>
>>
>>
>>         but this just goes over the rows of one matrix to set new
>>         values and now
>>         I would need to run over the rows and columns of the matrix.
>>         My Idea was
>>         to just create a transpose of A and do the same but then the
>>         row-layout
>>         will be different and I can't use the same for loop for A and
>>         AT and
>>         thus also won't be able to calculate the max's above.
>>
>>         Any help would be appreciated
>>
>>
>>     I think it would likely be much easier to write your algorithm
>>     directly on the mesh, rather than using matrices, since the
>>     locality information is explicit with the mesh, but has to be
>>     reconstructed with the matrix.
>>
>>     The problem here is that in parallel there would be no easy way
>>     to get the halo you need using a matrix. You
>>     really want the ghosted space for assembly, and that is provided
>>     by the DM objects. Does this make sense?
>>     Unless anybody in PETSc has a better idea.
>>
>>       Thanks,
>>
>>          Matt
>>
>>         Best regards
>>
>>         Elias
>>
>>
>>
>>     -- 
>>     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
>>
>>     https://www.cse.buffalo.edu/~knepley/
>>     <http://www.cse.buffalo.edu/~knepley/>
>
>
>
> -- 
> 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
>
> https://www.cse.buffalo.edu/~knepley/ 
> <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200323/d57e09a3/attachment.html>


More information about the petsc-users mailing list