heat_pipe.py
- class openconcept.thermal.heat_pipe.HeatPipe(**kwargs)
Bases:
Group
Model for an ammonia heat pipe. After model has been run, make sure that the heat transfer is always less than the q_max output!
- Inputs:
T_evap (float) – Temperature of connection to evaporator end of heat pipe (vector, degC)
q (float) – Heat transferred from evaporator side to condenser side by heat pipe (vector, W)
length (float) – Heat pipe length (scalar, m)
inner_diam (float) – Inner diameter of heat pipe vapor/wick section (scalar, m)
n_pipes (float) – Number of heat pipes in parallel; non-integer values are nonphysical but maintained for gradient optimization purposes (scalar, dimensionless)
T_design (float) – Max temperature expected in heat pipe, used to compute weight (scalar, degC)
- Outputs:
q_max (float) – Maximum heat transfer possible by heat pipes before dry-out (vector, W)
T_cond (float) – Temperature of connection to condenser end of heat pipe (vector, degC)
weight (float) – Weight of heat pipe walls, excludes working fluid (scalar, kg)
- Options:
num_nodes (int) – Number of analysis points to run (scalar, dimensionless)
length_evap (float) – Length of evaporator, default 0.25 m (scalar, m)
length_cond (float) – Length of condenser, default 0.25 m (scalar, m)
wall_conduct (float) – Thermal conductivity of wall material, default aluminum 7075 (scalar, W/(m-K))
wick_thickness (float) – Thickness of internal wick liner in heat pipe, default no wick (scalar, m)
wick_conduct (float) – Thermal conductivity of wick liner, default 4 (scalar, W/(m-K)) Note: default is from wick resistance on slide 21 of https://www.youtube.com/watch?v=JnS0ui8Pt64 and backs out thermal conductivity using an assumed thickness of ~0.005” (rough estimate based on the x-section picture)
yield_stress (float) – Yield stress of the heat pipe materia;, default 7075 aluminum (scalar, MPa)
rho_wall (float) – Density of the wall material, default 7075 aluminum (scalar, kg/m^3)
stress_safety_factor (float) – Factor of safety for the wall hoop stress, default 4 (scalar, dimensionless)
theta (float) – Tilt from vertical of heat pipe, default 0 deg; MUST be greater than or equal to 0 less than 90 (scalar, deg)
q_max_warn (float) – User will be warned if q input exceeds q_max_warn * q_max, default 0.75 (scalar, dimensionless)
- class openconcept.thermal.heat_pipe.HeatPipeThermalResistance(**kwargs)
Bases:
ExplicitComponent
Computes thermal resistance of a heat pipe with metal exterior, wicking liner, and vapor core.
- Inputs:
inner_diam (float) – Inner diameter of vapor/wick portion of heat pipe (scalar, m)
wall_thickness (float) – Thickness of outer metallic wall of heat pipe, default 1.25 mm (scalar, m)
q (float) – Heat transferred through the pipe per unit time, should always be positive; must be specified if vapor_resistance = True, otherwise unused (vector, W)
delta_T (float) – Vapor temperature drop from one end of the heat pipe to the other; must be specified if vapor_resistance = True, otherwise unused (vector, degC)
- Outputs:
thermal_resistance (float) – Effective thermal resistance of heat pipe, takes into account heat entering/exiting through pipe and wick boundary radially and traveling axially along the pipe (vector, K/W)
- Options:
num_nodes (int) – Number of analysis points to run (scalar, dimensionless)
length_evap (float) – Length of evaporator, default 0.25 m (scalar, m)
length_cond (float) – Length of condenser, default 0.25 m (scalar, m)
wall_conduct (float) – Thermal conductivity of wall material, default aluminum 7075 (scalar, W/(m-K))
wick_thickness (float) – Thickness of internal wick liner in heat pipe, default no wick (scalar, m)
wick_conduct (float) – Thermal conductivity of wick liner, default 4 (scalar, W/(m-K)) Note: default is from wick resistance on slide 21 of https://www.youtube.com/watch?v=JnS0ui8Pt64 and backs out thermal conductivity using an assumed thickness of ~0.005” (rough estimate based on the x-section picture)
vapor_resistance (bool) – Set to true to include vapor resistance (usually negligible) in calculation, default false. If set to true, the q and temp inputs MUST be connected
- class openconcept.thermal.heat_pipe.HeatPipeVaporTempDrop(**kwargs)
Bases:
ExplicitComponent
Inputs the vapor space temp drop due to pressure drop
This component is hard-coded on ammonia and uses a curve fit of the slope of the temp-pressure curve applicable from -10C to 100C operating temperatures
- Inputs:
q (float) – Heat transfer in the heat pipe (vector, W)
temp (float) – Mean temp of the heat pipe (vector, degC)
rho_vapor (float) – Vapor density (vector, kg/m3)
vapor_pressure (float) – Vapor pressure (vector, Pa)
inner_diam (float) – Inner diameter of the heat pipe (scalar, m)
length (float) – Length of the heat pipe (scalar, m)
- Outputs:
delta_T (float) – Temperature differential across the vapor phase (vector, K)
- Options:
num_nodes (int) – Number of analysis points to run, default 1 (scalar, dimensionless)
Other options shouldn’t be adjusted since they’re for ammonia and there is a
hardcoded curve fit also for ammonia in the compute method
- class openconcept.thermal.heat_pipe.HeatPipeWeight(**kwargs)
Bases:
ExplicitComponent
Computes the weight of a heat pipe neglecting liquid/vapor weight. Uses a simple expression for hoop stress times a factor of safety.
- Inputs:
design_pressure (float) – The maximum design vapor pressure (scalar, MPa)
inner_diam (float) – Inner diameter of the heat pipe (scalar, m)
length (float) – Length of the heat pipe (scalar, m)
- Outputs:
heat_pipe_weight (float) – The material weight of the heat pipe tube (scalar, kg)
wall_thickness (float) – Thickness of heat pipe walls (scalar, m)
- Options:
yield_stress (float) – Yield stress of the heat pipe material in MPa
rho_wall (float) – Density of the wall material in kg/m3
stress_safety_factor (float) – Factor of safety for the wall hoop stress
- class openconcept.thermal.heat_pipe.AmmoniaProperties(**kwargs)
Bases:
Group
Computes properties of ammonia at liquid-vapor equilibrium as a function of temperature using a cubic interpolation of data here: https://en.wikipedia.org/wiki/Ammonia_(data_page)#Vapor%E2%80%93liquid_equilibrium_data
NOTE: Data is from -75 to 100 deg C, any temps outside this range may be inaccurate
- Inputs:
temp (float) – Temperature of ammonia liquid/vapor (vector, degC)
- Outputs:
rho_liquid (float) – Ammonia liquid density (vector, kg/m^3)
rho_vapor (float) – Ammonia vapor density (vector, kg/m^3)
vapor_pressure (float) – Ammonia vapor pressure (vector, kPa)
- Options:
num_nodes (int) – Number of analysis points to run, default 1 (scalar, dimensionless)
- class openconcept.thermal.heat_pipe.QMaxHeatPipe(**kwargs)
Bases:
Group
Computes the maximum possible heat transfer rate of an ammonia heat pipe. As a rule of thumb, the heat pipe should stay below 75% of this value.
- NOTE: This model uses experimental data to compute the ammonia surface tension
and liquid/vapor density, so it is invalid for any other working fluid. The walls are assumed to be 7075 Al with a factor of safety of 4
- Inputs:
inner_diam (float) – Inner diameter of heat pipe (scalar, m)
length (float) – Length of the heat pipe (scalar, m)
temp (float) – Average temperature in heat pipe (vector, degC)
design_temp (float) – Max design temperature of the heat pipe (scalar, degC)
- Outputs:
q_max (float) – Maximum heat transfer possible in heat pipe (vector, W)
heat_pipe_weight (float) – Weight of heat pipe walls (scalar, kg)
- Options:
num_nodes (int) – Number of analysis points to run, default 1 (scalar, dimensionless)
theta (float) – Tilt from vertical, default 0 deg (scalar, deg)
yield_stress (float) – Yield stress of the heat pipe material in MPa
rho_wall (float) – Density of the wall material in kg/m3
stress_safety_factor (float) – Factor of safety for the wall hoop stress
- class openconcept.thermal.heat_pipe.QMaxAnalyticalPart(**kwargs)
Bases:
ExplicitComponent
Computes the analytical part of the Q max calculation. For the overall Q max calculation, use the QMaxHeatPipe group, not this component.
Equations from https://www.1-act.com/resources/heat-pipe-performance/. Surface tension data from page 16 of http://web.iiar.org/membersonly/PDF/CO/databook_ch2.pdf. Both accessed on Aug 9, 2022.
- Inputs:
inner_diam (float) – Inner diameter of heat pipe (scalar, m)
temp (float) – Average temperature in heat pipe (vector, K)
rho_liquid (float) – Density of working fluid in liquid form (vector, m)
rho_vapor (float) – Density of working fluid in vapor form (vector, m)
- Outputs:
q_max (float) – Maximum heat transfer possible in heat pipe (vector, W)
- Options:
num_nodes (int) – Number of analysis points to run, default 1 (scalar, dimensionless)
theta (float) – Tilt from vertical, default 0 deg (scalar, deg)
latent_heat (float) – Latent heat of vaporization, default ammonia 1,371,200 J/kg (scalar, J/kg)
surface_tension_base (float) – Surface tension at 0 deg C, default ammonia (in 0-50 deg C range) 0.026 N/m (scalar, N/m)
surface_tension_incr (float) – Surface tension sensitivity w.r.t. temperature (used for linear estimate), default ammonia (in 0-50 deg C range) -2.3e-4 N/m/degC (scalar, N/m/degC)
- class openconcept.thermal.heat_pipe.QMaxWarning(**kwargs)
Bases:
ExplicitComponent
Component to warn user if the heat transfer ever exceeds a specified fraction of Q max.
- Inputs:
q (float) – Heat transferred from evaporator side to condenser side by heat pipe (vector, W)
q_max (float) – Maximum heat transfer possible by heat pipes before dry-out (vector, W)
- Outputs:
None
- Options:
num_nodes (int) – Number of analysis points to run (scalar, dimensionless)
q_max_warn (float) – User will be warned if q input exceeds q_max_warn * q_max, default 0.75 (scalar, dimensionless)