On Wed, Feb 9, 2011 at 10:44 AM, Peter Wang <span dir="ltr">&lt;<a href="mailto:pengxwang@hotmail.com">pengxwang@hotmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">




<div>
Thank, Matt,<br>
 <br>
   Did you mean All the Krylov methods alone will get worse with increasing grid number? Since the finer grid has smaller size and more number of grid.<br>
 <br>
   Since I am a new user of PETSc, the easiest way for me is still keep in KSP solver. However, if the solver cannot satisfy the speed reqirement. I am thinking to use MG method. However, I don&#39;t have any experience on multigrid. Could you please give me some suggestion on it? </div>
</blockquote><div><br></div><div>The best thing to do is get a book about solvers and preconditioners. All your questions depend on what type of operator</div><div>you are trying to invert. I recommend Saad for Iteravtive Methods and maybe Briggs for an intro to MG. Barry&#39;s book has</div>
<div>a good overview of Domain Decomposition.</div><div><br></div><div> Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div> <br>
 1, Since I  have built the Matrix and the vector for finite difference scheme in KSP solver, where should I start from to transfer to multigrid?  I studied the example in: src/ksp/ksp/examples/tutorials/ex22f.F. Is it a good prototype to be based on to create my own code?  Is DMMG is the best tool for my problem?<br>
<br>
 <br>
 2,  How many levels of the subgrid are needed to obtain a solution close enough to the exact solution for a problem with 6 orders in length scale?<br>
 <br>
 3, The procedure of building Matrix and RHS vector in MG method is to build the matrix and RHS in the finest grid level and the MG will start the computation from the coarsest level, right?<br>
 <br>
Thanks for your considerate reponse.<br><br>
 <br>
 <br> <br>

<hr>
Date: Wed, 9 Feb 2011 10:00:37 -0600<br>From: <a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a><div><div></div><div class="h5"><br>To: <a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a><br>
Subject: Re: [petsc-users] questions about the multigrid framework<br><br>On Wed, Feb 9, 2011 at 9:58 AM, Peter Wang <span dir="ltr">&lt;<a href="mailto:pengxwang@hotmail.com" target="_blank">pengxwang@hotmail.com</a>&gt;</span> wrote:<br>

<div>
<blockquote style="padding-left:1ex;border-left:#ccc 1px solid">
<div>Thanks Barry,<br> <br>    I run the code with -ksp_monitor_true_residual  -ksp_converged_reason, and it turns out that the computation didn&#39;t get the real convergence.  After I set the rtol and more iteration, the numerical solution get better. However, the computation converges very slowly with finer grid points. For example, with nx=2500 and ny=10000, (lx=2.5e-4,ly=1e-3, and the distribution varys mainly in y direction) <br>
at IT=72009, <span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;">true resid norm 1.638857052871e-01 ||Ae||/||Ax|| 9.159199925235e-07</span><br><span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;">  IT=400000,<span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;">true resid norm 1.638852449299e-01 ||Ae||/||Ax|| 9.159174196917e-07.</span></span><br>
<span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;"><span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;">and it didn&#39;t converge yet.</span></span><br><span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;"><span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;"></span></span> <br>
<span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;"><span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;">  I am wondering if the solver is changed, the convergency speed could get fater? Or, I should take anohte approach to use finer grids, like multigrid? Thanks for your help.</span></span><br>
<span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;"><span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;"></span></span></div></blockquote>
<div><br></div>
<div>If you can get MG to work for your problem, its optimal. All the Krylov methods alone will get worse with increasing grid size.</div>
<div><br></div>
<div>   Matt</div>
<div> </div>
<blockquote style="padding-left:1ex;border-left:#ccc 1px solid">
<div><span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;"><span lang="EN-US" style="font-size:9pt;font-family:&#39;Courier New&#39;">  </span></span><br>&gt; From: <a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a><br>
&gt; Date: Sun, 6 Feb 2011 21:30:56 -0600<br>&gt; To: <a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a><br>&gt; Subject: Re: [petsc-users] questions about the multigrid framework<br>&gt; <br>
&gt; <br>&gt; On Feb 6, 2011, at 5:00 PM, Peter Wang wrote:<br>&gt; <br>&gt; &gt; Hello, I have some concerns about the multigrid framework in PETSc.<br>&gt; &gt; <br>&gt; &gt; We are trying to solve a two dimensional problem with a large variety in length scales. The length of computational domain is in order of 1e3 m, and the width is in 1 m, nevertheless, there is a tiny object with 1e-3 m in a corner of the domain.<br>
&gt; &gt; <br>&gt; &gt; As a first thinking, we tried to solve the problem with a larger number of uniform or non-uniform grids. However, the error of the numerical solution increases when the number of the grid is too large. In order to test the effect of the grid size on the solution, a domain with regular scale of 1m by 1m was tried to solve. It is found that the extreme small grid size might lead to large variation to the exact solution. For example, the exact solution is a linear distribution in the domain. The numerical solution is linear as similar as the exact solution when the grid number is nx=1000 by ny=1000. However, if the grid number is nx=10000 by ny=10000, the numerical solution varies to nonlinear distribution which boundary is the only same as the exact solution. <br>
&gt; <br>&gt; Stop right here. 99.9% of the time what you describe should not happen, with a finer grid your solution (for a problem with a known solution for example) will be more accurate and won&#39;t suddenly get less accurate with a finer mesh.<br>
&gt; <br>&gt; Are you running with -ksp_monitor_true_residual -ksp_converged_reason to make sure that it is converging? and using a smaller -ksp_rtol &lt;tol&gt; for more grid points. For example with 10,000 grid points in each direction and no better idea of what the discretization error is I would use a tol of 1.e-12<br>
&gt; <br>&gt; Barry<br>&gt; <br>&gt; We&#39;ll deal with the multigrid questions after we&#39;ve resolved the more basic issues.<br>&gt; <br>&gt; <br>&gt; &gt; The solver I used is a KSP solver in PETSc, which is set by calling :<br>
&gt; &gt; KSPSetOperators(ksp,A,A,DIFFERENT_NONZERO_PATTERN,ierr). Whether this solver is not suitable to the system with small size grid? Or, whether the problem crossing 6 orders of length scale is solvable with only one level grid system when the memory is enough for large matrix? Since there is less coding work for one level grid size, it would be easy to implement the solver.<br>
&gt; &gt; <br>&gt; &gt; I did some research work on the website and found the slides by Barry on<br>&gt; &gt; <a href="http://www.mcs.anl.gov/petsc/petsc-2/documentation/tutorials/Columbia04/DDandMultigrid.pdf" target="_blank">http://www.mcs.anl.gov/petsc/petsc-2/documentation/tutorials/Columbia04/DDandMultigrid.pdf</a><br>
&gt; &gt; It seems that the multigrid framework in PETSc is a possible approach to our problem. We are thinking to turn to the multigrid framework in PETSc to solve the problem. However, before we dig into it, there are some issues confusing us. It would be great if we can get any suggestion from you:<br>
&gt; &gt; 1 Whether the multigrid framework can handle the problem with a large variety in length scales (up to 6 orders)? Is DMMG is the best tool for our problem?<br>&gt; &gt; <br>&gt; &gt; 2 The coefficient matrix A and the right hand side vector b were created for the finite difference scheme of the domain and solved by KSP solver (callKSPSetOperators(ksp,A,A,DIFFERENT_NONZERO_PATTERN,ierr)). Is it easy to immigrate the created Matrix A and Vector b to the multigrid framework?<br>
&gt; &gt; <br>&gt; &gt; 3 How many levels of the subgrid are needed to obtain a solution close enough to the exact solution for a problem with 6 orders in length scale?<br>&gt; &gt; <br>&gt; <br></div></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>                                               </div>
</div></div>
</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>