This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

Mixed Navier Stokes Solver+Preconditioner Configuration

0 votes

Hi,

I'm trying to approximate the solution of a mixed Navier-Stokes variational formulation, as follows (note that $u = u^n$, the spatial discretization is "semi-implicit", therefore is still a linear problem):

$ \displaystyle
\dfrac{\rho}{\Delta t} \int_{\Omega} u~v~ d\Omega + \int_{\Omega} \mu \nabla u~ \nabla ~v ~d \Omega - \int_{\Omega} (\nabla \cdot v) p ~d \Omega $

$
\displaystyle + \rho \int_{\Omega} (u_{n-1} \cdot \nabla)~u \cdot v ~ d\Omega + \frac{\rho}{2} \int_{\Omega} (v \cdot u) \nabla \cdot u_{n-1} ~ d \Omega + \int_\Omega ( \nabla \cdot u ) v ~ d \Omega$

$
\displaystyle = \dfrac{\rho}{\Delta t} \int_{\Omega} u_{n-1}~v~ d\Omega + \int_{\Gamma_N} g~v ~ds $

where v and q are test functions (P1 and P1 + bubble, the minuim to satisfy the needed inf-sup condition), u and p are the trial functions (velocity and pressure), rho is the density and $\mu$ is the dynamic viscosity.

To solve the associated spatial discretized system I'm using a MUMPS solver, and works very well. But, considering the amount of memory used by MUMPS for large problems, I would like to change the solver to something like gmres+amg, but doing that I get
spurious solutions.

So the question is, what iterative solver and preconditioner is suitable for my problem? (I think is a general question for a mixed NS problem, but if someone think that I have to upload more info relative to the problem, I will).

For the record, I know this is not really a FeniCS question, but still can be useful for the community.

Greetings!
Felipe

asked Mar 14, 2016 by felipe_galarce FEniCS User (1,190 points)

1 Answer

+1 vote

The problem with making a preconditioner based on the whole system
is that the matrix is indefinite (and also non-symmetric). For this reason
an approach with just gmres+amg quite often gives spurious solutions.
It is common to make block preconditioners and the main motivation is
to ensure that the preconditioner is definite so that it forms a norm.

The most efficient way to solve the system will depend a lot on your application.
Chapter 21 and 37 in the FEniCS book discuss different approaches to this.
As you see, it depends very much on your application.

answered Mar 15, 2016 by Kent-Andre Mardal FEniCS Expert (14,380 points)
...