<div dir="ltr"><div class="gmail_extra"><br>
<br><br><div class="gmail_quote">On Wed, Sep 25, 2013 at 1:46 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div class="im">On Wed, Sep 25, 2013 at 4:40 AM, Christophe Ortiz <span dir="ltr"><<a href="mailto:christophe.ortiz@ciemat.es" target="_blank">christophe.ortiz@ciemat.es</a>></span> wrote:<br></div><div class="gmail_extra">

<div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hi Matt,<div>
Thanks for your prompt reply.<br><div class="gmail_extra"><br><div class="gmail_quote">
On Wed, Sep 25, 2013 at 1:34 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>On Wed, Sep 25, 2013 at 4:31 AM, Christophe Ortiz <span dir="ltr"><<a href="mailto:christophe.ortiz@ciemat.es" target="_blank">christophe.ortiz@ciemat.es</a>></span> wrote:<br>


</div><div class="gmail_extra">
<div class="gmail_quote"><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">


Hi guys,</div>
<div style="font-family:arial,sans-serif;font-size:13.333333969116211px"><br></div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">
Please apologize if this question has already been raised in previous posts.</div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px"><br></div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">




I am developing a code in fortran 90 to solve a 1D multicomponent problem.</div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px"><div class="gmail_extra">For instance, something like</div><div class="gmail_extra">




<br></div><div class="gmail_extra">u_t = u_xx + R(u,v)</div><div class="gmail_extra">v_t = v_xx + R(u,v)</div></div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px"><br></div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">




I have already implemented this for one component (u) and using DMDA. So far no problem. It works fine.<br></div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px"><div class="gmail_extra"><br></div>




<div class="gmail_extra">Now I am trying to implement several components per node. Following example ex22f.F, for the residual function I would have for node i (1D)</div><div class="gmail_extra"><br></div><div class="gmail_extra">




F(1,i) = ....</div><div class="gmail_extra">F(2,i) = ....</div><div class="gmail_extra"><br></div><div class="gmail_extra">Now, I am not quite sure to understand how to construct the Jacobian when there are various components. In this case, how is the vector in PETSc ?</div>



</div></div></blockquote><div><br></div></div><div>The Jacobian is a matrix, and the rows are ordered in the same way as in the residual function. The columns are the same as the rows.</div></div></div></div></blockquote>


<div><br></div><div>Yes, I understand this for one component. My question is when you have dof > 1. For a multicomponent problem you can write the residual function as an array:</div><div><br></div><div>F(1,i) =...           (component 1)</div>


<div>F(2,i) = ...          (component 2)</div><div><br></div><div>Since there is only one Jacobian for the whole system, how are the components of the Jacobian ordered in that case ? Is it first the components of u, then the components of v ?</div>

</div></div></div></div></blockquote><div><br></div></div><div>The ordering of the rows (and columns) of the Jacobian match the rows of the residual EVEN in the multicomponent case.</div><div><br></div><div>   Matt</div>
<div class="im"><div> </div></div></div></div></div></blockquote><div><br></div><div>Ok. But what I still don't understand is the ordering of the residual in the multicomponent case. Let's say dof=2, components u and v. Which is the correct ordering in the following ?</div>
<div><br></div><div>Fu0, Fu1, Fu2,...Fumx-1, Fv0, Fv1, Fv2, ...Fvmx-1</div><div><br></div><div>or</div><div><br></div><div>Fu0, Fv0, Fu1, Fv1, Fu2, Fv2, ...    ?</div><div><br></div><div>It is this point that is not clear to me.</div>
<div><br></div><div>Also, which subroutine do you advice to use to fill in the Matrix ? MatSetValues ? MatSetValuesBlocked ?</div><div><br></div><div>Christophe</div><div><br></div><div> </div></div></div></div>