-
Notifications
You must be signed in to change notification settings - Fork 841
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
Feature ddes #333
Feature ddes #333
Conversation
- Roe Low Dissipation: (1 - f_d) + Ducros Sensor - Turbulence models: Edward’s SA, Compressibility Correction SA, Edward’s + CC. - In SA_DDES, the low Reynolds term was disabled. - Start of Venkatakrishnan Limiter Modification.
# Conflicts: # Common/include/config_structure.hpp # SU2_CFD/include/numerics_structure.hpp # SU2_CFD/src/SU2_CFD.cpp # SU2_CFD/src/driver_structure.cpp # SU2_CFD/src/numerics_direct_mean.cpp
# Resolved conflicts in: # Common/include/config_structure.hpp # SU2_CFD/include/numerics_structure.hpp # SU2_CFD/src/SU2_CFD.cpp # SU2_CFD/src/driver_structure.cpp # SU2_CFD/src/numerics_direct_mean.cpp
- Now ROW_LOW_DISSIPATION flag has the following options: - FD: Numerical blending using the DDES’s Fd function. - NTS: Numerical blending of Travin and Shur. - NTS_DUCROS: NTS + Ducros’ Shock Sensor. All these options must be tested extensively.
Hi Eduardo, is it intended that you want to merge that into feature_DDES ? If so, you can just go ahead and push it to that branch, without creating a pull request. Otherwise, if you think that your implementation is ready, create a pull request to develop. |
@talbring: yes, we are just taking this opportunity to first move things from Eduardo's fork over into the SU2 repo so that we can more easily collaborate on an internal branch. We'll do another PR at a later date into develop. @EduardoMolina: if you have a moment, can you please check the conflicts on this PR and get them sorted? After that, we'll merge this into the feature_ddes branch and work together from there... |
Perfect, then just ignore my comment :) Looking forward to see some interesting applications! |
Hi all, @economon : Just a question before I proceed, the su2code/feature_ddes is already 244 commits ahead of su2/master. All my implementations are on top of the su2code/master... Is this correct? |
Eduardo, Yes, this is fine. I created the feature_ddes branch starting from the develop branch, which is the most up-to-date version of the code. By design, the master branch always contains the most recent, stable release (so, it lags behind develop in commits). We first want to get your DDES implementation on par with the develop branch and make any necessary changes/improvements in SU2/feature_ddes. Next, SU2/feature_ddes will move into SU2/develop with a pull request that all can comment on publicly. Lastly, we will eventually push develop into the master branch as part of a future release. Tom |
# Conflicts: # Common/include/config_structure.hpp # Common/include/config_structure.inl # SU2_CFD/src/SU2_CFD.cpp # SU2_CFD/src/driver_structure.cpp Resolved conflicts.
Hi Tom, Sorry for the late replay. I just solved the conflicts. Eduardo |
Great! Thanks, Eduardo. Let's work now together in this branch to make sure that everything is integrated nicely. Just let me know what help you may need. |
Hi Tom,
The code is running with nice results. However, at low Mach numbers, the code is presenting poor convergence due to the wide disparity between the particle and acoustic wave speeds in the dual time stepping. During the last weeks, I studied some preconditioning formulations that can be added to SU2. Currently, we are only scaling the dissipation part improving accuracy not convergence at Low Mach number flows.
I found this interesting paper that presents the preconditioning formulation in conservative variables (minor changes in the code) for implicit solvers based on the classical Weiss and Smith formulation.
A robust low speed preconditioning formulation for viscous flow … <https://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjS8_vzre3QAhXIjJAKHatADsQQFggfMAA&url=http%3A%2F%2Fwww.sciencedirect.com%2Fscience%2Farticle%2Fpii%2FS0045793011000223&usg=AFQjCNG9Pc2UPSeqsdqHfVa0symixryb9w&sig2=2eqLmLoBa4t3XCMT_DWSrQ&bvm=bv.141320020,d.Y2I>
Preconditioning applied to variable and constant density flows - AIAA <https://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&sqi=2&ved=0ahUKEwjF65S3s-3QAhXFkZAKHfwbDlEQFggfMAA&url=http%3A%2F%2Farc.aiaa.org%2Fdoi%2Fpdf%2F10.2514%2F3.12946&usg=AFQjCNGpofvU3ntuYJaA6o_nAz8MOKubCg&sig2=YIumr88W2hKQK0AMzI3fAw&bvm=bv.141320020,d.Y2I>
I really would like some help to implement the above preconditioning implicit dual time-step formulation (Eq. 18 of the Weiss and Smith paper or section 4.3.3 of Colin et al.). Supposing I already have the preconditioning matrix, I just have to modify CEulerSolver::SetResidual_DualTime?
Thanks in advance.
Eduardo
… On 5 Dec 2016, at 17:29, Thomas D. Economon ***@***.***> wrote:
Great! Thanks, Eduardo. Let's work now together in this branch to make sure that everything is integrated nicely. Just let me know what help you may need.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub <#333 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AJVmCZ5PvOBqyi5FUUq329-qySSrsIOzks5rFGYWgaJpZM4K3iN4>.
|
Eduardo, Thanks for the papers. I think we need to spend a little time verifying that everything is still ok in the old preconditioning implementation. You're correct that we are computing the dual time source, i.e., the time derivative term discretized using BDF2 for instance, within CEulerSolver::SetResidual_DualTime(). However, it looks to me that in Eqn. 18 of Weiss and Smith, these terms are not affected by the preconditioning (the right-hand side of Eqn. 18 is what we have implemented currently, and I think it is ok). But, you're right about needing to precondition the pseudo-time term, which eventually goes to zero. One major difference for us from that paper is the scheme we use to relax the pseudo-time problem. They are using an explicit multi-stage scheme, while we are solving with a fully implicit scheme. While they will compute the update of ∆Q in Eqn. 18 by inverting that small matrix locally at each node, we will smooth our global linear system that resulted from our implicit discretization to get solution updates at all nodes. Therefore, when they add the Gamma term on the left-hand side locally, I think we should be adding that to the diagonal of our larger system matrix. In fact, we are doing something like this already, but I think we should double-check that everything is ok. Can you please look at CEulerSolver::ImplicitEuler_Iteration() to make sure the implementation for the preconditioning there is correct? Tom |
Hi all,
I have implemented the Delayed Detached Eddy Simulation (DDES) in SU2. Also, I added 2 of the newest sub-grid scales (SGS) in order to mitigate the so-called "grey area": Vorticity based SGS (Deck et al. 2012) and Shear-layer adapted SGS (Shur et at. 2015). This option is available as "HYBRID RANS/LES= SA_DDES, SA_ZDES OR SA_EDDES".
In order to lower the dissipation of the Roe scheme in LES areas, 3 different numerical blending are available: FD (Using the DDES' F_dt function), NTS (Travin et al. 2002 numerical blending) and NTS_DUCROS (the NTS + Ducros' Shock Sensor). Option: "ROE_LOW_DISSIPATION= FD"
Lastly, 3 SA's turbulence model variants were added: Edward and Chandra Modification (SA_E), Mixing layer Compressibility Correction (SA_COMP) and both together (SA_E_COMP).
I would like to hear some comments about the implementation.
Regards,
Eduardo.
Please see the attached pdf showing some detailed implementation and preliminary results.
Molina_DDESinSU2.pdf