Approximate calculation of the mean convective heat transfer coefficient kc for forced convection with a fully developed fluid flow in a turbulent regime. See more information.
Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).
| Name | Description |
|---|---|
| Mean convective heat transfer coefficient for forced convection | approximation | turbulent regime | hydrodynamically developed fluid flow | |
| Mean convective heat transfer coefficient for forced convection | approximation | turbulent regime | hydrodynamically developed fluid flow | |
| Input record for function kc_approxForcedConvection and kc_approxForcedConvection_KC | |
| Input record for function kc_approxForcedConvection and kc_approxForcedConvection_KC |
Approximate calculation of the mean convective heat transfer coefficient kc for forced convection with a fully developed fluid flow in a turbulent regime.
A detailled documentation for this convective heat transfer calculation can be found in its underlying function kc_approxForcedConvection_KC . Note that additionally a failure status is observed in this function to check if the intended boundary conditions are fulfilled. See more information .
| Type | Name | Default | Description |
|---|---|---|---|
| Constant inputs | |||
| kc_approxForcedConvection_IN_con | IN_con | Input record for function kc_approxForcedConvection | |
| Variable inputs | |||
| kc_approxForcedConvection_IN_var | IN_var | Input record for function kc_approxForcedConvection | |
| Type | Name | Description |
|---|---|---|
| Output | ||
| CoefficientOfHeatTransfer | kc | Convective heat transfer coefficient [W/(m2.K)] |
| PrandtlNumber | Pr | Prandl number [1] |
| ReynoldsNumber | Re | Reynolds number [1] |
| NusseltNumber | Nu | Nusselt number [1] |
| Real | failureStatus | 0== boundary conditions fulfilled | 1== failure >> check if still meaningfull results |
function kc_approxForcedConvection
"Mean convective heat transfer coefficient for forced convection | approximation | turbulent regime | hydrodynamically developed fluid flow"
//SOURCE: A Bejan and A.D. Kraus. Heat Transfer handbook.John Wiley & Sons, 2nd edition, 2003. (p.424 ff)
//Notation of equations according to SOURCE
//input records
input Modelica.Fluid.Dissipation.HeatTransfer.General.kc_approxForcedConvection_IN_con
IN_con "Input record for function kc_approxForcedConvection";
input Modelica.Fluid.Dissipation.HeatTransfer.General.kc_approxForcedConvection_IN_var
IN_var "Input record for function kc_approxForcedConvection";
//output variables
output SI.CoefficientOfHeatTransfer kc "Convective heat transfer coefficient";
output SI.PrandtlNumber Pr "Prandl number";
output SI.ReynoldsNumber Re "Reynolds number";
output SI.NusseltNumber Nu "Nusselt number";
output Real failureStatus
"0== boundary conditions fulfilled | 1== failure >> check if still meaningfull results";
protected
type TYP = Modelica.Fluid.Dissipation.Utilities.Types.kc_general;
Real MIN=Modelica.Constants.eps;
Real prandtlMax[3]={120,16700,500} "Maximum Prandtl number";
Real prandtlMin[3]={0.7,0.7,1.5} "Minimum Prandtl number";
Real reynoldsMax[3]={1.24e5,1e6,1e6} "Maximum Reynolds number";
Real reynoldsMin[3]={2500,1e4,3e3} "Minimum Reynolds number";
SI.Diameter d_hyd=max(MIN, 4*IN_con.A_cross/max(MIN, IN_con.perimeter))
"Hydraulic diameter";
//failure status
Real fstatus[2] "Check of expected boundary conditions";
algorithm
Pr := Modelica.Fluid.Dissipation.Utilities.Functions.General.PrandtlNumber(
IN_var.cp,
IN_var.eta,
IN_var.lambda);
Re := max(1, Modelica.Fluid.Dissipation.Utilities.Functions.General.ReynoldsNumber(
IN_con.A_cross,
IN_con.perimeter,
IN_var.rho,
IN_var.eta,
abs(IN_var.m_flow))) "Reynolds number";
kc := Modelica.Fluid.Dissipation.HeatTransfer.General.kc_approxForcedConvection_KC(
IN_con, IN_var);
Nu := kc*d_hyd/max(MIN, IN_var.lambda);
//failure status
fstatus[1] := if IN_con.target == TYP.Rough then if Pr > prandtlMax[1] or Pr
< prandtlMin[1] then 1 else 0 else if IN_con.target == TYP.Middle then if
Pr > prandtlMax[2] or Pr < prandtlMin[2] then 1 else 0 else if IN_con.target
== TYP.Finest then if Pr > prandtlMax[3] or Pr < prandtlMin[3] then 1 else
0 else 0;
fstatus[2] := if IN_con.target == TYP.Rough then if Re > reynoldsMax[1] or Re
< reynoldsMin[1] then 1 else 0 else if IN_con.target == TYP.Middle then
if Re > reynoldsMax[2] or Re < reynoldsMin[2] then 1 else 0 else if IN_con.target
== TYP.Finest then if Re > reynoldsMax[3] or Re < reynoldsMin[3] then 1 else
0 else 0;
failureStatus := 0;
for i in 1:size(fstatus, 1) loop
if fstatus[i] == 1 then
failureStatus := 1;
end if;
end for;
end kc_approxForcedConvection;
Approximate calculation of the mean convective heat transfer coefficient kc for forced convection with a fully developed fluid flow in a turbulent regime. See more information .
| Type | Name | Default | Description |
|---|---|---|---|
| Constant inputs | |||
| kc_approxForcedConvection_IN_con | IN_con | Input record for function kc_approxForcedConvection_KC | |
| Variable inputs | |||
| kc_approxForcedConvection_IN_var | IN_var | Input record for function kc_approxForcedConvection_KC | |
| Type | Name | Description |
|---|---|---|
| CoefficientOfHeatTransfer | kc | Output for function kc_approxForcedConvection_KC [W/(m2.K)] |
function kc_approxForcedConvection_KC
"Mean convective heat transfer coefficient for forced convection | approximation | turbulent regime | hydrodynamically developed fluid flow"
//SOURCE: A Bejan and A.D. Kraus. Heat Transfer handbook.John Wiley & Sons, 2nd edition, 2003. (p.424 ff)
//Notation of equations according to SOURCE
//type =
//input records
input Modelica.Fluid.Dissipation.HeatTransfer.General.kc_approxForcedConvection_IN_con
IN_con "Input record for function kc_approxForcedConvection_KC";
input Modelica.Fluid.Dissipation.HeatTransfer.General.kc_approxForcedConvection_IN_var
IN_var "Input record for function kc_approxForcedConvection_KC";
//output variables
output SI.CoefficientOfHeatTransfer kc
"Output for function kc_approxForcedConvection_KC";
protected
type TYP = Modelica.Fluid.Dissipation.Utilities.Types.kc_general;
Real MIN=Modelica.Constants.eps;
SI.Diameter d_hyd=max(MIN, 4*IN_con.A_cross/max(MIN, IN_con.perimeter))
"Hydraulic diameter";
SI.PrandtlNumber Pr=max(MIN, abs(IN_var.eta*IN_var.cp/max(MIN, IN_var.lambda)))
"Prandtl number";
SI.ReynoldsNumber Re=max(1, 4*abs(IN_var.m_flow)/max(MIN, IN_con.perimeter*
IN_var.eta)) "Reynolds number";
algorithm
kc := IN_var.lambda/d_hyd*(if IN_con.target == TYP.Rough then 0.023*Re^(4/5)*
Pr^IN_con.exp_Pr else if IN_con.target == TYP.Middle then 0.023*Re^(4/5)*Pr
^(1/3)*(IN_var.eta/IN_var.eta_wall)^0.14 else if IN_con.target == 3 and Pr
<= 1.5 then 0.0214*max(1, abs(Re^0.8 - 100))*Pr^0.4 else if IN_con.target
== TYP.Finest then 0.012*max(1, abs(Re^0.87 - 280))*Pr^0.4 else 0);
//Documentation
end kc_approxForcedConvection_KC;
Modelica.Fluid.Dissipation.HeatTransfer.General.kc_approxForcedConvection_IN_con
Extends from Modelica.Fluid.Dissipation.Utilities.Records.HeatTransfer.General (Input for generic correlation).
| Type | Name | Default | Description |
|---|---|---|---|
| Generic variables | |||
| kc_general | target | Dissipation.Utilities.Types.... | Target correlation |
| Area | A_cross | Modelica.Constants.pi*0.1^2/4 | Cross sectional area [m2] |
| Length | perimeter | Modelica.Constants.pi*0.1 | Wetted perimeter [m] |
| Real | exp_Pr | 0.4 | Exponent for Prandtl number w.r.t. Dittus/Boelter | 0.4 for heating | 0.3 for cooling |
record kc_approxForcedConvection_IN_con
"Input record for function kc_approxForcedConvection and kc_approxForcedConvection_KC"
//generic variables
extends Modelica.Fluid.Dissipation.Utilities.Records.HeatTransfer.General;
parameter Real exp_Pr=0.4
"Exponent for Prandtl number w.r.t. Dittus/Boelter | 0.4 for heating | 0.3 for cooling";
end kc_approxForcedConvection_IN_con;
Modelica.Fluid.Dissipation.HeatTransfer.General.kc_approxForcedConvection_IN_var
Extends from Modelica.Fluid.Dissipation.Utilities.Records.General.FluidProperties (Base record for fluid properties).
| Type | Name | Default | Description |
|---|---|---|---|
| Fluid properties | |||
| SpecificHeatCapacityAtConstantPressure | cp | Specific heat capacity of fluid at constant pressure [J/(kg.K)] | |
| DynamicViscosity | eta | Dynamic viscosity of fluid [Pa.s] | |
| ThermalConductivity | lambda | Thermal conductivity of fluid [W/(m.K)] | |
| Density | rho | Density of fluid [kg/m3] | |
| DynamicViscosity | eta_wall | Dynamic viscosity of fluid at wall temperature [Pa.s] | |
| Input | |||
| MassFlowRate | m_flow | [kg/s] | |
record kc_approxForcedConvection_IN_var "Input record for function kc_approxForcedConvection and kc_approxForcedConvection_KC" //fluid property variables extends Modelica.Fluid.Dissipation.Utilities.Records.General.FluidProperties; SI.DynamicViscosity eta_wall "Dynamic viscosity of fluid at wall temperature"; //input variable (mass flow rate) SI.MassFlowRate m_flow;end kc_approxForcedConvection_IN_var;