<div dir="ltr"><div><div>Hi,<br></div>Thanks to Barry and Jed. I might come back later with few other questions.<br></div>Amlan<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Dec 26, 2012 at 11:02 AM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
On Dec 26, 2012, at 10:24 AM, Jed Brown <<a href="mailto:jedbrown@mcs.anl.gov">jedbrown@mcs.anl.gov</a>> wrote:<br>
<br>
> On Wed, Dec 26, 2012 at 1:00 AM, amlan barua <<a href="mailto:abarua@iit.edu">abarua@iit.edu</a>> wrote:<br>
> Hi,<br>
> Greetings to the team! I am currently using PETSc for my research. Here is a brief description of my problem and my query<br>
> a) I have a set a points distributed on a 3 dimensional lattice.<br>
> b) Corresponding to each point in this set, 7 odes are defined.<br>
> c) Of these 7 odes, 6 are uncoupled but one is coupled to nearest neighbors.<br>
><br>
> I suggest not optimizing for "missing" coupling to start with. We can do the optimization in the solver, perhaps by splitting the DMDA into the local and coupled parts.<br>
<br>
</div> I agree with Jed here. Coincidently I am working on a similar problem but with thousands of ODEs (mostly decoupled). You can use DMDASetBlockFills(), the ofill parameter to indicate exactly what fields are coupled to neighbors and which are not, this reduces the unneeded zero Jacobian entries (you can also use the dfill parameter to reduce unneeded zero entries in the 7 by 7 block). Eventually we'll use the same information to reduce the ghost point communication also.<br>
<span class="HOEnZb"><font color="#888888"><br>
Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
> d) To integrate the odes I am using PETSc's DMDA and TS. But my application needs implicit as well as locally high order solver. I am looking for an implicit RK4 type method. Does PETSc have an IRK4 support or equivalent?<br>
><br>
> If you are happy with a diagonally implicit method, you can use TSARKIMEX (these integrators can be IMEX, but can also do any diagonally implicit method).<br>
><br>
> If you want a fully implicit RK (like Gauss, Radau IIA, etc) then all stages are coupled together. Those methods are not currently implemented in PETSc, though you could implement it either as a new TS implementation (good for code reuse; you can do this outside of PETSc, but the code you write is like library code) or manually using SNES (not reusable).<br>
><br>
> e) Suppose I want to build my own implicit time stepper. Should I imitate ex2.c of SNES solver?<br>
> Thanks<br>
> Amlan<br>
> IISER Pune, India<br>
><br>
<br>
</div></div></blockquote></div><br></div>