<div dir="ltr"><div dir="ltr">On Mon, Mar 23, 2020 at 8:31 AM Elias Karabelas <<a href="mailto:karabelaselias@gmail.com">karabelaselias@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>Dear Matt,</p>
<p>I've just found this answer from 2014</p>
<p><a href="https://lists.mcs.anl.gov/pipermail/petsc-users/2014-August/022450.html" target="_blank">https://lists.mcs.anl.gov/pipermail/petsc-users/2014-August/022450.html</a></p>
<p>wondering if this would theoretically work.</p>
<p></p></div></blockquote><div>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. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><p>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.</p></div></blockquote><div>The FEM-FCT I am familiar with from Lohner was phrased on a mesh.</div><div><br></div><div> Thanks,</div><div><br></div><div> Matt </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
<p>Best regards</p>
<p>Elias<br>
</p>
<div>On 23/03/2020 13:02, Matthew Knepley
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">On Mon, Mar 23, 2020 at 7:46 AM Elias Karabelas
<<a href="mailto:karabelaselias@gmail.com" target="_blank">karabelaselias@gmail.com</a>>
wrote:<br>
</div>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dear Users,<br>
<br>
I want to implement a FCT (flux corrected transport) scheme
with PETSc. <br>
To this end I have amongst other things create a Matrix
whose entries <br>
are given by<br>
<br>
L_ij = -max(0, A_ij, A_ji) for i neq j<br>
<br>
L_ii = Sum_{j=0,..n, j neq i} L_ij<br>
<br>
where Mat A is an (non-symmetric) Input Matrix created
beforehand.<br>
<br>
I was wondering how to do this. My first search brought me
to <br>
<a href="https://www.mcs.anl.gov/petsc/petsc-current/src/mat/examples/tutorials/ex16.c.html" rel="noreferrer" target="_blank">https://www.mcs.anl.gov/petsc/petsc-current/src/mat/examples/tutorials/ex16.c.html</a>
<br>
<br>
<br>
but this just goes over the rows of one matrix to set new
values and now <br>
I would need to run over the rows and columns of the matrix.
My Idea was <br>
to just create a transpose of A and do the same but then the
row-layout <br>
will be different and I can't use the same for loop for A
and AT and <br>
thus also won't be able to calculate the max's above.<br>
<br>
Any help would be appreciated<br>
</blockquote>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>The problem here is that in parallel there would be no
easy way to get the halo you need using a matrix. You</div>
<div>really want the ghosted space for assembly, and that is
provided by the DM objects. Does this make sense?</div>
<div>Unless anybody in PETSc has a better idea.</div>
<div><br>
</div>
<div> Thanks,</div>
<div><br>
</div>
<div> Matt</div>
<div> <br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Best regards<br>
<br>
Elias<br>
<br>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>What most experimenters take for granted before
they begin their experiments is infinitely more
interesting than any results to which their
experiments lead.<br>
-- Norbert Wiener</div>
<div><br>
</div>
<div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>