-
Notifications
You must be signed in to change notification settings - Fork 12
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
photoelectric heating #766
Conversation
/azp run |
Azure Pipelines successfully started running 2 pipeline(s). |
OK, another stylistic question. The design here seems a bit different than our normal paradigm, in that you have the various source and exchange models protected by ifdef brackets, and you forward-declare the various exchange and solver functions is radiation_system.hpp so that even if you turn off a particular exchange model by not #define'ing the appropriate flag to turn it on, you don't get compilation errors thanks to the forward declaration. This is contrary to our style thus far of mostly using if constexpr's and templates to manage conditional compilation. The paradigm that I would think would work would be remove the forward declarations from radiation_system.hpp and the protection ifdef's from the various model files, and just #include the various model files in radiation_system.hpp, but then select which model to use at compile time with a trait in the problem file. Is there a reason not to use this paradigm here? |
for more information, see https://pre-commit.ci
I also tried another paradigm and I just pushed it. In this paradigm, there are two main files in src/radiation: Both of the two hpp files have to be protected by ifdef in this new paradigm. |
/azp run |
Azure Pipelines successfully started running 2 pipeline(s). |
Thanks, that structure is much cleaner. I left a few minor stylistic comments (mostly about your comments!), but once those are resolved I'm happy to approve. |
OK. All done. |
for more information, see https://pre-commit.ci
Quality Gate passedIssues Measures |
/azp run |
Azure Pipelines successfully started running 2 pipeline(s). |
Description
In this PR, I implement photoelectric heating within the current gas-radiation-dust interaction framework. PE can be enabled by setting
enable_photoelectric_heating = true
inISM_Traits
. The prerequisite isnGroups > 1
andenable_dust_gas_thermal_coupling_model = true
.Added two test problems,
RadiationMarshakDustPE-coupled
andRadiationMarshakDustPE-decoupled
, to test photoelectric heating in cases where gas and dust are well coupled and decoupled. These two tests share the same problem codetest_radiation_marshak_dust_and_PE.cpp
but use different runtime parameters.Here is the code structure:
Related issues
A modification to #733 to include PE heating.
Checklist
Before this pull request can be reviewed, all of these tasks should be completed. Denote completed tasks with an
x
inside the square brackets[ ]
in the Markdown source below:/azp run
.