On Feb 9, 2011, at 9:58 AM, Peter Wang wrote:

> Thanks Barry,
>  
>     I run the code with -ksp_monitor_true_residual  -ksp_converged_reason, 
> and it turns out that the computation didn'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) 
> at IT=72009, true resid norm 1.638857052871e-01 ||Ae||/||Ax|| 
> 9.159199925235e-07
>   IT=400000,true resid norm 1.638852449299e-01 ||Ae||/||Ax|| 
> 9.159174196917e-07.
> and it didn't converge yet.
>  
>   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.

    You have a little confusion here. Multigrid (in the context of PETSc and 
numerical solvers) is ONLY an efficient way to solve a set of linear equations 
arising from discretizing a PDE. It is not a different way of discretizing the 
PDEs or giving a different or better solution. It is only a way of getting the 
same solution (potentially much) faster than running the slower convergent 
solver.

    Definitely configure PETSc with --download-ml --download-hypre and make 
runs using -pc_type hypre and then -pc_type ml to see how algebraic multigrid 
works, it should work fine for your problem.

   Barry


>  
>   
> > From: bsmith at mcs.anl.gov
> > Date: Sun, 6 Feb 2011 21:30:56 -0600
> > To: petsc-users at mcs.anl.gov
> > Subject: Re: [petsc-users] questions about the multigrid framework
> > 
> > 
> > On Feb 6, 2011, at 5:00 PM, Peter Wang wrote:
> > 
> > > Hello, I have some concerns about the multigrid framework in PETSc.
> > > 
> > > 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.
> > > 
> > > 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. 
> > 
> > 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't suddenly get less accurate with a 
> > finer mesh.
> > 
> > Are you running with -ksp_monitor_true_residual -ksp_converged_reason to 
> > make sure that it is converging? and using a smaller -ksp_rtol <tol> 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
> > 
> > Barry
> > 
> > We'll deal with the multigrid questions after we've resolved the more basic 
> > issues.
> > 
> > 
> > > The solver I used is a KSP solver in PETSc, which is set by calling :
> > > 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.
> > > 
> > > I did some research work on the website and found the slides by Barry on
> > > http://www.mcs.anl.gov/petsc/petsc-2/documentation/tutorials/Columbia04/DDandMultigrid.pdf
> > > 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:
> > > 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?
> > > 
> > > 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?
> > > 
> > > 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?
> > > 
> > 

Reply via email to