-
Notifications
You must be signed in to change notification settings - Fork 918
NEMO solver - simulation of chemically-reactive and nonequilibrium flows #1014
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
…sidual not exactly right
…ical nonequilibrium not working
This reverts commit cd876b6bf0718463fc36f703de882688e10b92ec.
…e: this and all previous commits refer only to Euler test-cases. Next step: NS solver
…s (nonphysical points)
…version. NS still not giving physical results. NS initialization too slow
pcarruscag
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Glad to see this feature making it into develop 👍 and looking forward to see some cool results in the conference.
Some comments below, more will come later, I like pretty much everything except the (maybe unnecessary) duplication.
pcarruscag
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few more comments, there are definitely a lot of interesting things going on in those new numerics classes, which I will not pretend I understand xD so... good chance some of my comments don't make sense. But this duplication of CEulerSolver methods needs to be avoided.
|
@CatarinaGarbacz thanks for bringing this up with develop. @pcarruscag thanks for helping the less skilled programmers (i.e. me) walking through these comments! |
|
@pcarruscag the new and old comments have been addressed. Also the many warnings the code was generating. |
pcarruscag
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, thank you for the changes @CatarinaGarbacz, LGTM but let's try to get at least another set of eyes over the code.
… which were causing NaN and negative vibrational energy values
| if ((Boundary == HEAT_FLUX) || (Boundary == ISOTHERMAL) || (Boundary == CHT_WALL_INTERFACE)) { | ||
| /*--- Forces initialization at each Marker ---*/ | ||
| if ((Boundary == HEAT_FLUX) || | ||
| (Boundary == ISOTHERMAL) || | ||
| (Boundary == CHT_WALL_INTERFACE) || | ||
| (Boundary == SMOLUCHOWSKI_MAXWELL)) { /*--- Forces initialization at each Marker ---*/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fmpmorgado please don't do this, modify "CConfig::GetViscous_Wall()" to include the new marker and use it instead.
This repetition of enums throughout the code is a major source of bugs and it is impossible to maintain, see #770.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the comment. I believe it is working now
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The compilation problem is solved but you will still need to add SMOLUCHOWSKI_MAXWELL to that function.
pcarruscag
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, merging after tests pass
Proposed Changes
Adding the new solver NEMO to the develop branch. The NEMO solver concerns the simulation of hypersonic flows, accounting for thermal nonequilibrium and finite-rate chemistry, following Park's 2Temperature model. The system of equations to solve is the conservation of each chemical species mass, momentum, total energy and vibrational energy. Both inviscid and viscous simulations are available, respectively, solver NEMO_EULER and NEMO_NAVIER_STOKES.
Most of the changes consisted in the addition of new files (listed below), and all the necessary changes in the high-level classes (drivers, integration, config).
new files concerning this solver:
output/CNEMOCompOutput.cpp
variables/CNEMOEulerVariable.cpp
variables/CNEMONSVariable.cpp
solvers/CNEMOEulerSolver.cpp
solvers/CNEMONSSolver.cpp
numerics/NEMO/convection/lax.cpp
numerics/NEMO/convection/roe.cpp
numerics/NEMO/convection/ausm.cpp
numerics/NEMO/convection/ausmplusup2.cpp
numerics/NEMO/convection/ausmpwplus.cpp
numerics/NEMO/convection/msw.cpp
numerics/NEMO/NEMO_diffusion.cpp
numerics/NEMO/NEMO_sources.cpp
Future/ongoing work is looking into making use of the CFluidModel class , introducing a new child class CNEMOGas to handle all mixture/thermodynamics/transport/chemistry related computations - follwing the generic SU2 structure.
Related Work
Resolve any issues (bug fix or feature request), note any related PRs, or mention interactions with the work of others, if any.
PR Checklist
Put an X by all that apply. You can fill this out after submitting the PR. If you have any questions, don't hesitate to ask! We want to help. These are a guide for you to know what the reviewers will be looking for in your contribution.