CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   Programming a coupled solver (

didomenico March 3, 2006 06:11

Dear all, I know this is a
Dear all,
I know this is a subject already discussed in this list, but I could not find any ultimate answer to the problem.
In order to increase the stability of OpenFOAM, I would like to implement a coupled version of the solver. In my experience, the solver's stability is greatly improved even if only the three velocity components are solved together (higher CFL numbers / relaxation factor can be used) even with a diagonal preconditioner. Moreover, in some problems (stiff chemistry, hypersonic flows) I experienced convergence problems due to the strong coupling between the equations.
So, I would like to start with a point-implicit coupling in order to keep the number of changes ast the minimum.
First question: should I implement it at matrix level (a new fvCoupledMatrix class?) or somewhere else? I have already started some work, but I am not sure if this is the right level at which the changes have to be done.
Second question: according to the presentation that Hrvoje gave in the "OpenFOAM Training and Workshop" (unfortunatelly I could not be there ) there should be already some work done. If possible, I would like to contribute to its development. In particular, I would like to try it on some cases which show very bad convergence because of coupling between the three velocity component (viscous, hypersonic flows).

Thank you for your help

hjasak March 5, 2006 04:04

Yes, a lot of work is already
Yes, a lot of work is already done. The block coefficient, coefficient field, and block matrix classes are finished, together with the linear equation solvers (currently, block CG and Gauss-Seidel + the segregation solver algorithms off the same matrix), constraint conditions etc. I also have some discretisation operators sufficient to test this thing on real problems. The bad news is that there's still some bugs and I haven't got the time to get it sorted out until the rest of my life is put into order.

I am also planning another layer of FOAM-related stuff on top of the matrix support to handle arbitrary coupling and trasnparent multi-variable handling.

However, I am not ready to release this publicly just yet. This project adds substantial new capabilities (including the stuff you are after), it has taken quite a long time, it needs to be finished and i want to get my work published. Of course, a part of the game is that the code gets debugged and validated in the process. If you wish to know more, feel free to drop me an E-mail.


All times are GMT -4. The time now is 08:37.