-
Notifications
You must be signed in to change notification settings - Fork 849
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linear Solvers (for large sparse systems) #648
Comments
I think that is everyone. |
Following this discussion, I want to share certain points related to convergence - 1- Some good/fast solution initialisation methods will be helpful to start with (commercial solver like Fluent uses Full Multigrid initialisation /FMG - euler initialisation, which provides fast initial guess to start with) 2- Switching from first order to second order gradually will be helpful 3- Smart/tuned CFL ramping strategy (some commercial codes have tuned way of doing it where CFL range varies from subsonic to hypersonic Mach number) 4- As Dr. Economon mentioned exact Jacobians play important role (In SU2 code, HLLC, JST and Roe have exact/nearly exact Jacobians). I observed that with inconsistent discretization (with some of the problems), solution does not go with higher CFL even in later stages and takes more iterations to converge 5- It will be desirable to arrive at fewer set/combination of Linear solver+preconditioner which covers broad range of problems. That will help in faster evolution of solution convergence strategies 6- Handling poor quality cells in some way may be important from practical usage point of view with realistic geometries (I don’t know how much literature is available for such stuff) Regards |
There is one thing that is not mentioned yet, which is rather important. I assume we are talking RANS here. In that case it does not make sense to ramp up the CFL number to values higher than 50 or so with the current segregated setup of mean flow, turbulence and possibly transition solvers (not even talking about multidisciplinary problems). The segregated character makes it extremely flexible for adding additional models, but it does not work for a full blown Newton solver. In that case you have to switch to a strong coupling between the mean flow and the turbulence solver, which will require a significant change in the data-structures. Also, computing the exact Jacobians for a second order scheme is not trivial and as Tom mentioned, it may be needed to use AD tools for that, which makes it quite costly. Furthermore the memory usage for storing the exact Jacobians is very big. An alternative would be to use a matrix free approach, i.e. use a Frechet derivative for the matrix vector products in the Krylov solver (although you still need a good preconditioner). When a coupled with a turbulence model (especially k-omega type models), this will be extremely sensitive to the epsilon parameter you have to choose. There are ways around this, e.g. using dual numbers and possibly with CoDiPack, but these will increase your computational cost by at least a factor of 4. I think it is definitely worth trying, but seen all the pitfalls you may run into, you may want to test things out first with a test solver before implementing it in SU2 itself. My two cents, Edwin |
This can continue in #711 |
The discussion in #643 revealed that this (the performance of the linear solvers) is a concern for a lot of us.
I am opening this issue so we can discuss each issue separately, I will quote relevant comments from #643 below.
The text was updated successfully, but these errors were encountered: