On Thu, Feb 19, 2009 at 3:48 PM, Randall Mackie <span dir="ltr">&lt;<a href="mailto:rlmackie862@gmail.com">rlmackie862@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Barry,<br>
<br>
I&#39;m a little confused then, by how you set the size of the coarse grid<br>
in relation to the fine grid. What if my fine grid is 283x107x113? Can<br>
I just use a coarse grid of 3x3x3 and then the finer ones are generated<br>
until it gets to my fine grid? I&#39;ve been trying to follow ex22f.F, where<br>
you set the coarse grid, and number of levels, but I can&#39;t figure out<br>
the relation between the grid size on each level and how you specify<br>
the grid size at the finest level.</blockquote><div><br>This is exactly why we only let the user set the coarse grid. Not all grids<br>are possible with this simple scheme. If you truly need that particular grid,<br>then you cannot use DMMG as is, as it is too simple. You can, however,<br>
provide your own grids and restriction or interpolation matrices to DMMG,<br>and it will handle the solution process.<br><br>&nbsp; Matt<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
In ex22f.F, when I run it, I see the first level is 27x27 (since the<br>
3D grid is 3x3x3). Then at the next level it goes to 125x125 or 5x5x5.<br>
Then the final level is 729x729, or 9x9x9.<br>
<br>
Thanks, Randy<br>
<br>
Barry Smith wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
On Feb 19, 2009, at 3:22 PM, Randall Mackie wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I&#39;m trying to modify my code to use the DMMG routines to solve my system<br>
by multi-grid, instead of the usual krylov solver. In my previous code,<br>
I would set up a DA for my finite difference grid, set the matrix<br>
preallocation using MATCreateMPIAIJ, then fill the matrix, etc.<br>
<br>
In the code I&#39;ve modified to use DMMG, here is my sequence of routines<br>
so far:<br>
<br>
 &nbsp; &nbsp;call DMMGCreate(...)<br>
 &nbsp; &nbsp;call DACreate3D(....) ! to set the DA on the finest level<br>
 &nbsp; &nbsp;call DMMGSetDM(...)<br>
<br>
<br>
 &nbsp; &nbsp;call DMMGSETKSP(...)<br>
<br>
<br>
Questions:<br>
<br>
1) I want to set the DA on the finest level and use Galerkin to get<br>
the coarser matrices. So, is the DACreate above the way to do this?<br>
</blockquote>
<br>
 &nbsp; The current design always has you setting the coarsest DA; DMMG generates all the finer ones<br>
automatically. This is independent of using Galerkin coarse grids or not.<br>
<br>
To have DMMG use Galerkin to generate the coarser matrices call DMMGSetUseGalerkinCoarse()<br>
after you se the number of levels or use the option -dmmg_galerkin<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
2) How do I set the matrix preallocation here for use in the DMMG routines?<br>
Would I use the same MATCreateMPIAIJ as before, and if so, where do I<br>
put that? In the routine that fills the Jacobian, or in the main program<br>
someplace?<br>
</blockquote>
<br>
 &nbsp; &nbsp;DMMG manages all this for you; it creates the empty matrices (based on the DA stencil) and gives them<br>
the right nonzero structure.<br>
<br>
 &nbsp;See, for example, src/ksp/ksp/examples/tutorials/ex34.c<br>
<br>
 &nbsp; Barry<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
<br>
Thanks, Randy<br>
</blockquote>
<br>
</blockquote>
</blockquote></div><br><br clear="all"><br>-- <br>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<br>