-
Notifications
You must be signed in to change notification settings - Fork 913
Improve the Euler wall Jacobian #2486
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
Conversation
|
I've updated the serial regression tests so we can see what is going on. It looks like for most cases, there was a small improvement in the residual values. Usually a good sign. |
|
By the way, does the SU2 code use weak or strong boundary conditions? |
|
It varies, I think Euler walls can be seen as strongly imposed now, velocity on no-slip walls is imposed strongly but temperature on isothermal boundaries is imposed weakly (via a flux), most other compressible boundaries are imposed weakly, for the incompressible solver it is possible to select the treatment for some boundaries. If you have recommendations from experience with other vertex-centered codes, we would certainly like to hear them. |
|
Thank you for clarifying this. My experience is with cell-centered solvers, and BC's implicit treatment is easier. |
|
I think that would be valuable, thank you. I think for engineering applications the most important boundary is no slip wall, for the longest time I've wanted to try a weak no slip condition to see if it is more robust than the current approach of strongly imposing 0 velocity. It would be great if your colleague can share any notes with either approach. |
|
Hi, |
|
Hi Yair, Now, there are some important details. Our current treatment for no-slip walls involves setting the velocity equal to the grid velocity (or the momentum = rho * v_grid) strongly, and doing nothing special for the mass and energy fluxes (when there is a Neuman condition on temperature). This would be a treatment similar to cell-centered codes, where values are set on boundary faces. So in what I'm thinking we don't need to impose values (e.g. velocity) on the boundary points, if they converge to slightly different values than the boundary states it is not a problem, they would just behave like the first CVs in cell centered codes. |
|
Hi, Thank you for the comments. I understand that in most cases, the grid is generated with one grid point connected to one interior point, as in the near-wall prism layers. Hence, the solution is extrapolated from a single interior point if required. For example, extrapolating the pressure at a stationary no-slip BC. Moreover, extrapolating the pressure to the BC point at a perfectly orthogonal grid automatically satisfies the zero pressure gradient. My schematic illustration of the possible grid was to give a general idea, and it is less common in near-wall BC. However, such a grid may happen in other BCs, such as symmetry plans and far fields. Some of the interior information is extrapolated to these BCs and should be reflected in the implicit treatment suggested in the note. If I understood correctly, you suggested testing weak BCs in the SU2. In such a case, one doesn't impose the BC at the point but solves this point and imposes the BCs at the faces on the boundaries. This will be similar to the cell-centered concept. It also circumvents the situation of a given point that is located on different BC surfaces. However, (although I don't have much experience with this), it always bothered me how the source term is treated in such a case. For example, a singular term happens in the axisymmetric case. In my opinion, it is worth making the effort to consider the fully implicit treatment at the current BSc implementation, especially for solid walls (no-slip and impermeable) and symmetry planes. |
|
I've slightly modified the note (again), and I hope it will clarify the main idea better. |
|
I understand, I don't think it would be a weak BC because we would still enforce what is known about the flux, for example, 0 mass flux at walls. A weak treatment would not enforce the mass flow, letting it converge to 0 as the grid is refined and the solution in the boundary point approaches the imposed boundary state. |
|
I'm not fully following up on why using strong BCs would result in a non-accurate Jacobian. Could you please elaborate more on this? Naively, I would consider the formulation given in the note to be an accurate Jacobian (first-order accurate). |
|
I'm not saying it would result in a non-accurate Jacobian, but rather that the consistency of the Jacobian with the flux or boundary treatment is a choice. In my experience the best performing Jacobian depends on the application (flow regime, primal or adjoint) and the different options need to be tested. |
|
Agreed. All I'm saying is that in order to understand if the BCs are treated appropriately, the first-order Jacobian and the first-order flux should be able to obtain a Newton method. This is just a way to check the implementation, and not a way for actual computations. In actual computations, we use second-order flux with first-order Jacobian, which, of course, can not achieve Newton iterations and has its limitations, as you mentioned. I don't suggest going for the second-order Jacobian, either. |
|
I have tried the changes in this PR on the SWBLI case. With previous implementation it was diverging after a few iterations (NaN in the residual), whereas now I can obtain deep residual convergence. However, at some point I get an oscillatory behavior of the residuals. Plus, I still cannot achieve deep convergence of the turbulence equations, as the residuals stagnate at certain values. I have tried with the combination WLS-LS instead of GG only for the gradient computation and it gets worse. Here the files to replicate SWBLI.zip . |
|
I have tested it one the problem in #2390 and I still don't get zero-gradients on the symmetry planes. I have zero-gradients for the Pressure but not for any other variable. And I still don't know if it is an expected behavior or not. |
|
I would check how forcing positivity (this is missing in the code) of the reconstructed (the 2nd-order reconstruction) relevant primitive values (density and pressure) about the convergence |
|
In most cases the grid that are generated for high-Reynolds viscous flows, characterize by prismatic elements near the wall surface. Hence a single surface point point connected to a single interior point. However, there are situations where this is not the case, for example at singular geometry, such as in sharp trailing edge, where a single surface grid point connected to several interior points. How the pressure on this singular surface grid point is specified? |


#2485