🎨 Add blkt pipes output - #4369
Conversation
|
Can you fix the conflicts before I do my first review. Please also add which variables have been renamed in the PR body |
a175010 to
3b043bb
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #4369 +/- ##
==========================================
+ Coverage 49.46% 49.86% +0.40%
==========================================
Files 150 151 +1
Lines 30069 30047 -22
==========================================
+ Hits 14874 14984 +110
+ Misses 15195 15063 -132 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
611c3c1 to
188a388
Compare
There was a problem hiding this comment.
For large tokamak (eval and nof) I am getting 0's for most of the quantities in the summary PDF:
They are being written as 0 to the MFile:
Pressure_drop_for_straight_sections_of_outboard_blanket_(Pa)_____________ (dpres_blkt_outboard_coolant_channel_straight_total)_ 0.00000000000000000e+00 OP
Pressure_drop_for_90°_bends_of_outboard_blanket_(Pa)_____________________ (dpres_blkt_outboard_coolant_channel_90_bend)_ 0.00000000000000000e+00 OP
Total_pressure_drop_for_90°_bends_of_outboard_blanket_(Pa)_______________ (dpres_blkt_outboard_coolant_channel_90_bends_total)_ 0.00000000000000000e+00 OP
Pressure_drop_for_180°_bends_of_outboard_blanket_(Pa)____________________ (dpres_blkt_outboard_coolant_channel_180_bend)_ 0.00000000000000000e+00 OP
Total_pressure_drop_for_180°_bends_of_outboard_blanket_(Pa)______________ (dpres_blkt_outboard_coolant_channel_180_bends_total)_ 0.00000000000000000e+00 OP
Total_pressure_drop_for_all_bends_(Pa)___________________________________ (dpres_blkt_outboard_bends_total)_ 0.00000000000000000e+00 OP
Reynolds_number_of_outboard_blanket_coolant______________________________ (reynolds_blkt_outboard_coolant)_ 0.00000000000000000e+00 OP
Darcy_friction_factor_of_outboard_blanket_coolant________________________ (darcy_frict_blkt_outboard_coolant)_ 0.00000000000000000e+00 OP
Pressure_drop_coefficient_for_straight_sections_of_outboard_blanket______ (f_straight_blkt_outboard_coolant)_ 0.00000000000000000e+00 OP
Total_length_of_straight_sections_of_outboard_blanket_coolant_channels_(m)_ (len_blkt_outboard_coolant_channel_straight_total)_ 0.00000000000000000e+00 OP
Pressure_drop_coefficient_for_90°_bends_in_outboard_blanket______________ (f_elbow_blkt_outboard_90_bend)_ 0.00000000000000000e+00 OP
Pressure_drop_coefficient_for_180°_bends_in_outboard_blanket_____________ (f_elbow_blkt_outboard_180_bend)_ 0.00000000000000000e+00 OP
Mass_flow_rate_of_outboard_blanket_coolant_(kg/s)________________________ (mflow_blkt_outboard_coolant)__ 0.00000000000000000e+00 OP
Mass_flow_rate_of_outboard_blanket_coolant_in_single_channel_(kg/s)______ (mflow_blkt_outboard_coolant_channel)_ 0.00000000000000000e+00 OP
Velocity_of_outboard_blanket_coolant_in_single_channel_(m/s)_____________ (vel_blkt_outboard_coolant)____ 0.00000000000000000e+00 OP
You will need to specify |
We probably should not be writing values out to the MFile which are not being calculated because they may get misused by those without that specific knowledge (as I have just done :D). I also do not think we should be including them in the output PDF in this case either. |
693fcfd to
7e03a94
Compare
Have changed it so that the coolant pumping vars are only output if |
| N_FW_PIPE_90_DEG_BENDS = 2 | ||
| "Number of 90 degree bends in first wall coolant channels." | ||
| N_FW_PIPE_180_DEG_BENDS = 0 | ||
| "Number of 180 degree bends in first wall coolant channels." |
There was a problem hiding this comment.
Would it make sense to allow these as inputs?
There was a problem hiding this comment.
This would need to be a separate PR as the FW is assumed to just be a vertical pipe with a 90 degree inlet and outlet. We would need to change the geometry functions if we wanted to include more bends that arent at the ends
|
|
||
| ## Required mass flow rate | `calculate_required_mass_flow_rate()` | ||
|
|
||
| The required mass flow rate of a coolant is given simply by the fundamental heat transfer equation: | ||
|
|
||
| $$ | ||
| \dot{m} = \frac{P}{c_{\text{p}}(T)\times \Delta T} | ||
| $$ | ||
|
|
||
| where $\dot{m}$ is the required mass flow rate in, $P$ is the heating power to be removed, $c_{\text{p}}$ is the coolant specific heat capacity for constant pressure and $\Delta T$ is the temperature change in the coolant. | ||
|
|
||
| !!! note "Variation specific heat capacity" | ||
|
|
||
| The heat capacity itself is a function of temperature. Therefore it is common to use the heat capacity value at the simple average between the initial and final temperature. | ||
| This however assumes a linear relationship. Ideally the equation should be solves as: | ||
|
|
||
| $$ | ||
| \dot{m} = \frac{P}{\int_{T_{\text{in}}}^{T_{\text{in}}}c_{\text{p}}(T) dT} | ||
| $$ | ||
|
|
||
|
|
||
| !!! info "Choice of specific heat capacity" | ||
|
|
||
| For pumping, the specific heat capacity for constant pressure $(c_{\text{p}})$ is used as cooling loops are open-flow systems where the fluid moves continuously through pipes, heat exchangers, and pumps. As the coolant heats up, it expands freely along the loop. Because it is free to expand, the local pressure remains relatively constant while the volume changes. | ||
|
|
||
| You would only use the specific heat capacity for constant volume $(c_{\text{v}})$ if the coolant was completely sealed inside a rigid, unyielding container with zero flow, where heating it would cause the pressure to spike but the volume to stay exactly the same. No newline at end of file |
There was a problem hiding this comment.
I think this bit of doc is new, so probably worth an @ukaea/process-model-review looking at it
|
@chris-ashe maybe you can assist me in setting up a DCLL input file too just so we can check nothing changes before and after |
90684e7 to
6da8415
Compare
|
Getting the following error when trying to run the DCLL model: |
…he new generic Pumping class
…nd INPUT_PRESSURE_DROP
Co-authored-by: Timothy <75321887+timothy-nunn@users.noreply.github.com>
4d9bcef to
db47075
Compare
…dd docstring improvements
…umber and elbow_coeff functions
timothy-nunn
left a comment
There was a problem hiding this comment.
Couple of style requests and comments from previous reviews not addressed.
Need to prompt @ukaea/process-model-review to provide a review too.
| f"Pressure drop for straight sections: {m_file.get('dpres_blkt_inboard_coolant_channel_straight_total', scan=scan):.2e} Pa\n" | ||
| f"Pressure drop for 90° bends: {m_file.get('dpres_blkt_inboard_coolant_channel_90_bend', scan=scan):.2e} Pa\n" | ||
| f"Total pressure drop for 90° bends: {m_file.get('dpres_blkt_inboard_coolant_channel_90_bends_total', scan=scan):.2e} Pa\n" | ||
| f"Pressure drop for 180° bends: {m_file.get('dpres_blkt_inboard_coolant_channel_180_bend', scan=scan):.2e} Pa\n" | ||
| f"Total pressure drop for 180° bends: {m_file.get('dpres_blkt_inboard_coolant_channel_180_bends_total', scan=scan):.2e} Pa\n" | ||
| f"Total pressure drop for all bends: {m_file.get('dpres_blkt_inboard_bends_total', scan=scan):.2e} Pa\n\n" |
There was a problem hiding this comment.
I'm not sure we want to use scientific notation here as it makes the slide look a little bit busy. The numbers are not too big (magnitudes 0 to 2) so we should just output them with say 3 sig figs.
| f"Pressure drop for straight sections: {m_file.get('dpres_blkt_outboard_coolant_channel_straight_total', scan=scan):.2e} Pa\n" | ||
| f"Pressure drop for 90° bends: {m_file.get('dpres_blkt_outboard_coolant_channel_90_bend', scan=scan):.2e} Pa\n" | ||
| f"Total pressure drop for 90° bends: {m_file.get('dpres_blkt_outboard_coolant_channel_90_bends_total', scan=scan):.2e} Pa\n" | ||
| f"Pressure drop for 180° bends: {m_file.get('dpres_blkt_outboard_coolant_channel_180_bend', scan=scan):.2e} Pa\n" | ||
| f"Total pressure drop for 180° bends: {m_file.get('dpres_blkt_outboard_coolant_channel_180_bends_total', scan=scan):.2e} Pa\n" | ||
| f"Total pressure drop for all bends: {m_file.get('dpres_blkt_outboard_bends_total', scan=scan):.2e} Pa\n\n" |
Co-authored-by: Timothy <75321887+timothy-nunn@users.noreply.github.com>
…erties and remove unnecessary @staticmethod decorator from calculate_required_mass_flow_rate
There was a problem hiding this comment.
if you have completely moved the documentation, this file should be deleted, No?
There was a problem hiding this comment.
This just removes the generic pumping equations and puts them into the pumping file. The blanket overview page will still be needed
There was a problem hiding this comment.
ok, then could you please write here something like "To be written" or similar? File with just a heading and section heading but no text looks odd
| $$ | ||
| fp = \frac{T_{\text{pump,out}}\left(\frac{P_{\text{pump,out}}}{P_{\text{pump,in}}}\right)^{-\frac{\gamma -1}{\gamma}}}{\eta \left(T_{\text{pump,in}}-T_{\text{pump,out}}\right)} | ||
| $$ |
| This however assumes a linear relationship. Ideally the equation should be solves as: | ||
|
|
||
| $$ | ||
| \dot{m} = \frac{P}{\int_{T_{\text{in}}}^{T_{\text{in}}}c_{\text{p}}(T) dT} |
There was a problem hiding this comment.
typo: Upper limit should be T_out
|
|
||
| !!! info "Choice of specific heat capacity" | ||
|
|
||
| For pumping, the specific heat capacity for constant pressure $(c_{\text{p}})$ is used as cooling loops are open-flow systems where the fluid moves continuously through pipes, heat exchangers, and pumps. As the coolant heats up, it expands freely along the loop. Because it is free to expand, the local pressure remains relatively constant while the volume changes. |
There was a problem hiding this comment.
Being free to expand does not necessarily, or intuitively, mean that the local pressure remains constant. The pressure behaviour, in fact, depends collectively on the specific system configuration, such as the pressure-control scheme, expansion tank or reservoir, rather than simply on whether the coolant is free to expand.
This pull request introduces significant improvements to the documentation, data structure, and output related to blanket coolant channel pumping and pressure drop calculations. The main changes include moving detailed coolant pumping and pressure drop documentation to a more appropriate location, adding new variables for coolant flow and pressure drop tracking, enhancing plotting capabilities for coolant properties, and updating variable names for clarity.
Documentation Improvements:
blanket_overview.mdinto a new section ingeneric_methods/pumping.md, making the documentation more modular and easier to maintain. Also added a new section on calculating required mass flow rate and clarified when to use specific heat capacities at constant pressure or volume.🔄 Renames
mfblktpi- >mflow_blkt_inboard_coolant_channelmfblktpo->mflow_blkt_outboard_coolant_channelcp_fw->heatcap_pres_fw_coolant_averagecv_fw->heatcap_vol_fw_coolant_averagecp_bl->heatcap_pres_blkt_coolant_averagecv_bl->heatcap_vol_blkt_coolant_averageData Structure and Variable Enhancements:
BlanketDatafor tracking Reynolds numbers, Darcy friction factors, bend loss coefficients, friction coefficients, pressure drops, and mass flow rates for both inboard and outboard blanket coolant channels. Updated variable names for mass flow rates for clarity and consistency.roughness_fw_channelinFWBSDatafor clarity.Plotting and Output Updates:
plot_blanket_coolant_channel_structure_and_properties, tosummary.pythat provides a comprehensive summary of coolant channel structure and properties for both inboard and outboard blankets. Integrated this new plot into the summary plotting workflow.Naming and Standards:
heatcap_,heatcap_vol_, andheatcap_pres_prefixes.These changes collectively improve the clarity, maintainability, and usability of the codebase and its documentation for coolant channel analysis and reporting.
Checklist
I confirm that I have completed the following checks: