Dear all,
I've got multigrid solver matrix-free for FSI in ALE formulation. For 
deforming grid I'm using MappingFEField, stored 
in std::shared_ptr<Mapping<dim>>. On the coarsest level I'm assembling the 
sparse matrix in standard way, I then initialize direct solver (MUMPS from 
Trilinos) and than I'm using it as a preconditioner 
in MGCoarseGridIterativeSolver. So I should get convergance of coarse 
solver in 1 iteration (or at most several iterations if the matrix is 
really badly conditioned). I also have a test that check if the matrix free 
operator is the same as assembled matrix (by doing  N vmults).

In case when the mesh is undeformed this is exactly what happens i.e, the 
solver coverges in 1 iteration. However if mesh is deformed the number of 
iterations of coarse level grows. The number of coarse iterations in case 
of Turek FSI3 benchmark may exceed 30. 

I've double-checked the solver, I'm updating mapping on every time step:
  for (unsigned int lvl = 0; lvl < triangulation.n_global_levels(); ++lvl)
//level_mappings are shared pointers, the same as mapping.
I am also sure that I'm interpolating fine mapping to mg levels. 

The problem occurs only on level matrices, the system matrix that I'm 
solving is OK. The coarse solver assembler gets the same mapping as 
MatrixFree object. 

I've only spotted the problem at coarsest level, but I think it is also an 
issue on other levels. I am using 9.3.0-pre (cluster) and 9.2.0-pre (my 
PC)  versions of Deal.II, the same problem appears on both.

Best ,

The deal.II project is located at
For mailing list/forum options, see
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
To view this discussion on the web visit

Reply via email to