Dear all, I know this is a
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 http://www.cfd-online.com/OpenFOAM_D...part/angry.gif ) 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
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 15:30.|