OK, you solve the linearization of NS. With 60000 dofs I think the condition number of your system matrix is too big, that's why you have low convergence. A preconditioner as ILU for GMRES is not good enough for Stokes.
You say Vanka doesn't work. Here there is a wrapper for a Schur complement preconditioner: http://www.dealii.org/developer/doxygen/deal.II/group__Preconditioners.html but I have no experience with that. Cheers Thomas On Tue, 25 Nov 2008, Isabel Gil wrote: > Hello, > > I am working with NS. The conservation of momentum equation has a temporal > term, an advective term, a diffusive term and the gradient of the pressure. > > My mesh has about 60000 dofs (total dofs, I mean, taking into account > velocity's nodes (U and V) and pressure nodes). > > I thought the problem having a lot of nodes was when we wanted to use a direct > solver, not an iterative one... > > Best > Isa > > > thomas carraro wrote: > > Dear Isabel, > > > > I think you are speaking of the Stokes not NS, isn't it? > > > > Anyway, I believe that your mesh is too fine for an iterative solver without > > a multigrid preconditioner. > > > > Try with less than 1000 DoF, if it works, you need a multigrid... > > > > Cheers > > > > Thomas > > > > > > On Tue, 25 Nov 2008, Isabel Gil wrote: > > > > > > > Dear DealII's users, > > > > > > Thanks Martin, Thomas, Ruhollah and Wolgang for your replies. > > > > > > My system comes from Navier-Stokes equation. > > > I use Q2 for velocity and Q1 for pressure, so LBB is satisfied. > > > > > > The geometry and boundary conditions are the following ones: > > > _________________2____________ > > > | | > > > 1| | > > > |____2____ | > > > | | > > > 2 | |3 > > > _____2___| | > > > | | > > > 1| | > > > |________________2____________| > > > > > > Where in 1 we put Dirichlet boundary condition, that is a parabolic flow > > > in > > > component U and zero in componet V, in 2 we put (U,V)=(0,0) and in 3 we > > > put a > > > Neumann condition that is > > > (p*n-viscosity(grad(u)*n)) =0, where n is the normal component on boundary > > > 3. > > > > > > If I use GMRES+Precondition_Identity (that if UMFPACK solver works, this > > > should work too) in the first iteration I have: > > > > > > DEAL:GMRES::Starting value 0.00852830 > > > DEAL:GMRES::Failure step 100000 value 1.06883e-05 > > > terminate called after throwing an instance of > > > 'dealii::SolverControl::NoConvergence' > > > what(): Iterative method reported convergence failure in step 100000 with > > > residual 1.06883e-05 > > > > > > And as I said in my previous email, using Vanka and ILU precondition, the > > > behaviour is even worse. > > > > > > Again, thanks in advance. > > > Best > > > Isa > > > > > > > > > > > > Martin Kronbichler wrote: > > > > > > > Dear Isabel, > > > > > > > > > > > > > > > > > I am trying to solve a matricial system Ax=b, where > > > > > A=|A11 A12| > > > > > |A21 0| > > > > > > > > > > with four different solvers: > > > > > > > > > > - SparseDirectUMFPACK > > > > > - GMRES + Precondition_Identity() as preconditioner > > > > > - GMRES + SparseILU<double> ilu as preconditioner > > > > > - GMRES + Vanka preconditioner as preconditioner > > > > > > > > > > The only one that seems to get good results is the first one, i.e., > > > > > the > > > > > direct one. I decided to use the other ones because in the future this > > > > > system will have a huge quantity of nodes, so direct solver won't be > > > > > feasible. > > > > > > > > > > GMRES with SparseILU as preconditioner has a Starting Value of 946,719 > > > > > GMRES with Vanka as preconditioner has a Staring Value of 2.99566E+12 > > > > > In those cases, the solver breaks down in the first iteration. > > > > > > > > > > GMRES with Precondition_Identity as preconditioner has a Starting > > > > > Value of > > > > > 0.0129254 (i.e. the same as doing "by hand", norm L2 of(b-Ax)). In > > > > > this > > > > > case, the solver solves the first iteration but it breaks down just in > > > > > the > > > > > second one. > > > > > > > > > > > > > > Since the direct solver does not break down, the matrix system seems to > > > > be solvable (i.e., there seems to be one unique solution, otherwise > > > > UMFPACK would complain/fail). In such a case, GMRES with > > > > Precondition_Identity() should actually work fine as well (even though > > > > it might need lots of iterations). The only reason that makes GMRES fail > > > > is when some matrix inner product y^T A x gets zero, which means that > > > > the matrix is actually not solvable (but singular). > > > > > > > > Are you sure that your matrix is non-singular (maybe you were just lucky > > > > to get UMFPACK running)? Where does the matrix come from (I guess some > > > > Stokes or Navier-Stokes system) and what were the boundary conditions? > > > > > > > > Best regards, > > > > Martin > > > > > > > > > > > > > > > > > > _______________________________________________
