thermal.py

class openconcept.thermal.thermal.PerfectHeatTransferComp(**kwargs)

Bases: ExplicitComponent

Models heat transfer to coolant loop assuming zero thermal resistance.

Inputs:
  • T_in (float) – Incoming coolant temperature (vector, K)

  • q (float) – Heat flow into fluid stream; positive is heat addition (vector, W)

  • mdot_coolant (float) – Coolant mass flow (vector, kg/s)

Outputs:
  • T_out (float) – Outgoing coolant temperature (vector, K)

  • T_average (float) – Average coolant temperature (vector K)

Options:
  • num_nodes (int) – Number of analysis points to run (scalar, default 1)

  • specific_heat (float) – Specific heat of the coolant (scalar, J/kg/K, default 3801 glycol/water)

class openconcept.thermal.thermal.ThermalComponentWithMass(**kwargs)

Bases: ExplicitComponent

Computes thermal residual of a component with heating, cooling, and thermal mass

Inputs:
  • q_in (float) – Heat generated by the component (vector, W)

  • q_out (float) – Heat to waste stream (vector, W)

  • mass (float) – Thermal mass (scalar, kg)

Outputs:

dTdt (float) – First derivative of temperature (vector, K/s)

Options:
  • specific_heat (float) – Specific heat capacity of the object in J / kg / K (default 921 = aluminum)

  • num_nodes (int) – The number of analysis points to run

class openconcept.thermal.thermal.ThermalComponentMassless(**kwargs)

Bases: ImplicitComponent

Computes thermal residual of a component with heating, cooling, and thermal mass

Inputs:
  • q_in (float) – Heat generated by the component (vector, W)

  • q_out (float) – Heat to waste stream (vector, W)

Outputs:

T_object (float) – Object temperature (vector, K/s)

Options:

num_nodes (int) – The number of analysis points to run

class openconcept.thermal.thermal.ConstantSurfaceTemperatureColdPlate_NTU(**kwargs)

Bases: ExplicitComponent

Computes heat rejection to fluid stream of a microchannel cold plate with uniform temperature

Inputs:
  • T_in (float) – Coolant inlet temperature (vector, K)

  • T_surface (float) – Temperature of the cold plate (vector, K)

  • mdot_coolant (float) – Mass flow rate of the coolant (vector, kg/s)

  • channel_length (float) – Length of each microchannel (scalar, m)

  • channel_width (float) – Width of each microchannel (scalar, m)

  • channel_height (float) – Height of each microchannel (scalar, m)

  • n_parallel (float) – Number of fluid channels (scalar, dimensionless)

Outputs:
  • q (float) – Heat transfer rate from the plate to the fluid (vector, W)

  • T_out (float) – Outlet fluid temperature (vector, K)

Options:
  • num_nodes (int) – The number of analysis points to run

  • fluid_rho (float) – Coolant density in kg/m**3 (default 0.997, water)

  • fluid_k (float) – Thermal conductivity of the fluid (W/m/K) (default 0.405, glycol/water)

  • nusselt (float) – Hydraulic diameter Nusselt number of the coolant in the channels (default 7.54 for constant temperature infinite parallel plate)

  • specific_heat (float) – Specific heat of the coolant (J/kg/K) (default 3801, glycol/water)

class openconcept.thermal.thermal.LiquidCooledComp(**kwargs)

Bases: Group

A component (heat producing) with thermal mass cooled by a cold plate.

Inputs:
  • q_in (float) – Heat produced by the operating component (vector, W)

  • mdot_coolant (float) – Coolant mass flow rate (vector, kg/s)

  • T_in (float) – Instantaneous coolant inflow temperature (vector, K)

  • mass (float) – Object mass (only required in thermal mass mode) (scalar, kg)

  • T_initial (float) – Initial temperature of the cold plate (only required in thermal mass mode) / object (scalar, K)

  • duration (float) – Duration of mission segment, only required in unsteady mode

  • channel_width (float) – Width of coolant channels (scalar, m)

  • channel_height (float) – Height of coolant channels (scalar, m)

  • channel_length (float) – Length of coolant channels (scalar, m)

  • n_parallel (float) – Number of identical coolant channels (scalar, dimensionless)

Outputs:
  • T_out (float) – Instantaneous coolant outlet temperature (vector, K)

  • T (float) – Object temperature (vector, K)

Options:
  • specific_heat_object (float) – Specific heat capacity of the object in J / kg / K (default 921 = aluminum)

  • specific_heat_coolant (float) – Specific heat capacity of the coolant in J / kg / K (default 3801, glycol/water)

  • num_nodes (int) – Number of analysis points to run

  • quasi_steady (bool) – Whether or not to treat the component as having thermal mass

class openconcept.thermal.thermal.CoolantReservoir(**kwargs)

Bases: Group

A reservoir of coolant capable of buffering temperature

Inputs:
  • mdot_coolant (float) – Coolant mass flow rate (vector, kg/s)

  • T_in (float) – Coolant inflow temperature (vector, K)

  • mass (float) – Object mass (only required in thermal mass mode) (scalar, kg)

  • T_initial (float) – Initial temperature of the coolant reservoir(only required in thermal mass mode) / object (scalar, K)

  • duration (float) – Time step of each mission segment (one for each segment) (scalar, s) If a single segment is provided (by default) this variable will be called just ‘dt’ only required in thermal mass mode

Outputs:

T_out (float) – Coolant outlet temperature (vector, K)

Options:

num_nodes (int) – Number of analysis points to run

class openconcept.thermal.thermal.CoolantReservoirRate(**kwargs)

Bases: ExplicitComponent

Computes dT/dt of a coolant reservoir based on inflow and current temps and flow rate

Inputs:
  • T_in (float) – Coolant stream in (vector, K)

  • T_out (float) – Temperature of the reservoir (vector, K)

  • mass (float) – Total quantity of coolant (scalar, kg)

  • mdot_coolant (float) – Mass flow rate of the coolant (vector, kg/s)

Outputs:

dTdt (float) – First derivative of temperature (vector, K/s)

Options:

num_nodes (int) – The number of analysis points to run