Heat Exchanger Classes¶
mcycle.components.hxs.hx_basic.HxBasic (…) |
Characterises a basic heat exchanger consisting of working fluid and secondary fluid flows separated by a solid wall with single-phase or multi-phase working fluid but only single-phase secondary fluid. |
mcycle.components.hxs.hxunit_basic.HxUnitBasic (…) |
Characterises a basic heat exchanger unit consisting of working fluid and secondary fluid flows separated by a solid wall with single-phase or multi-phase working fluid but only single-phase secondary fluid. |
mcycle.components.hxs.hx_basicplanar.HxBasicPlanar (…) |
Characterises a basic planar heat exchanger consisting of working fluid and secondary fluid flows separated by a solid wall with single-phase or multi-phase working fluid but only single-phase secondary fluid. |
mcycle.components.hxs.hxunit_basicplanar.HxUnitBasicPlanar (…) |
Characterises a basic planar heat exchanger unit consisting of working fluid and secondary fluid flows separated by a solid wall with single-phase or multi-phase working fluid but only single-phase secondary fluid. |
mcycle.components.hxs.hx_plate.HxPlate (…) |
Characterises a basic plate heat exchanger consisting of alternating working fluid and secondary fluid flows separated by a solid wall with single-phase or multi-phase working fluid but only single-phase secondary fluid. |
mcycle.components.hxs.hxunit_plate.HxUnitPlate (…) |
Characterises a basic plate heat exchanger unit consisting of alternating working fluid and secondary fluid flows separated by a solid wall with single-phase or multi-phase working fluid but only single-phase secondary fluid. |
HxBasic Class¶
-
class
mcycle.components.hxs.hx_basic.
HxBasic
(unicode flowSense=u'counterflow', int NWf=1, int NSf=1, int NWall=1, double hWf_liq=nan, double hWf_tp=nan, double hWf_vap=nan, double hSf=nan, double RfWf=0, double RfSf=0, SolidMaterial wall=None, double tWall=nan, double A=nan, double ARatioWf=1, double ARatioSf=1, double ARatioWall=1, double effThermal=1.0, FlowState flowInWf=None, FlowState flowInSf=None, FlowState flowOutWf=None, FlowState flowOutSf=None, FlowState ambient=None, unicode sizeAttr=u'NPlate', list sizeBounds=[1, 100], list sizeUnitsBounds=[1e-5, 1.], runBounds=[nan, nan], unicode name=u'HxBasic instance', unicode notes=u'No notes/model info.', Config config=Config(), _unitClass=HxUnitBasic)¶ Bases:
mcycle.bases.component.Component22
Characterises a basic heat exchanger consisting of working fluid and secondary fluid flows separated by a solid wall with single-phase or multi-phase working fluid but only single-phase secondary fluid.
Parameters: flowSense : str, optional
Relative direction of the working and secondary flows. May be either “counterflow” or “parallel”. Defaults to “counterflow”.
NWf : int, optional
Number of parallel working fluid channels [-]. Defaults to 1.
NSf : int, optional
Number of parallel secondary fluid channels [-]. Defaults to 1.
NWall : int, optional
Number of parallel walls [-]. Defaults to 1.
UWf_liq : float, optional
Heat transfer coefficient of the working fluid in the single-phase liquid region (subcooled). Defaults to nan.
UWf_tp : float, optional
Heat transfer coefficient of the working fluid in the two-phase liquid/vapour region. Defaults to nan.
UWf_vap : float, optional
Heat transfer coefficient of the working fluid in the single-phase vapour region (superheated). Defaults to nan.
USf : float, optional
Heat transfer coefficient of the secondary fluid in a single-phase region. Defaults to nan.
RfWf : float, optional
Thermal resistance factor due to fouling on the working fluid side [m^2K/W]. Defaults to 0.
RfSf : float, optional
Thermal resistance factor due to fouling on the secondary fluid side [m^2K/W]. Defaults to 0.
wall : SolidMaterial, optional
Wall material. Defaults to None.
tWall : float, optional
Thickness of the wall [m]. Defaults to nan.
A : float, optional
Heat transfer surface area [m^2]. Defaults to nan.
ARatioWf : float, optional
Multiplier for the heat transfer surface area of the working fluid [-]. Defaults to 1.
ARatioSf : float, optional
Multiplier for the heat transfer surface area of the secondary fluid [-]. Defaults to 1.
ARatioWall : float, optional
Multiplier for the heat transfer surface area of the wall [-]. Defaults to 1.
effThermal : float, optional
Thermal efficiency [-]. Defaults to 1.
flowInWf : FlowState, optional
Incoming FlowState of the working fluid. Defaults to None.
flowInSf : FlowState, optional
Incoming FlowState of the secondary fluid. Defaults to None.
flowOutWf : FlowState, optional
Outgoing FlowState of the working fluid. Defaults to None.
flowOutSf : FlowState, optional
Outgoing FlowState of the secondary fluid. Defaults to None.
ambient : FlowState, optional
Ambient environment flow state. Defaults to None.
sizeAttr : string, optional
Default attribute used by size(). Defaults to “N”.
sizeBounds : float or list of float, optional
Bracket containing solution of size(). Defaults to [1, 100].
- if sizeBounds=[a,b]: scipy.optimize.brentq is used.
- if sizeBounds=a or [a]: scipy.optimize.newton is used.
sizeUnitsBounds : float or list of float, optional
Bracket passed on to any HxUnits containing solution of size() for the unit. Typically this bounds is used to size for the length of the HxUnit. Defaults to [1e-5, 1.].
name : string, optional
Description of object. Defaults to “HxBasic instance”.
notes : string, optional
Additional notes on the component such as model numbers. Defaults to “No notes/model info.”.
config : Config, optional
Configuration parameters. Defaults to the default Config object.
kwargs : optional
Arbitrary keyword arguments.
Attributes
A
A: ‘double’ ARatioSf
ARatioSf: ‘double’ ARatioWall
ARatioWall: ‘double’ ARatioWf
ARatioWf: ‘double’ NSf
NSf: ‘int’ NWall
NWall: ‘int’ NWf
NWf: ‘int’ Rf
float: Average of RfWf & RfSf. RfSf
RfSf: ‘double’ RfWf
RfWf: ‘double’ ambient
ambient: mcycle.bases.flowstate.FlowState config
config: mcycle.bases.config.Config effThermal
effThermal: ‘double’ flowInSf
Alias for self.flowsIn[1] flowInWf
Alias for self.flowsIn[0] flowOutSf
Alias for self.flowsOut[1] flowOutWf
Alias for self.flowsOut[0] flowSense
flowSense: unicode flowsIn
flowsIn: list flowsOut
flowsOut: list hSf
hSf: ‘double’ hWf
float: Average of hWf_liq, hWf_tp & hWf_vap. hWf_liq
hWf_liq: ‘double’ hWf_sp
float: Average of hWf_liq & hWf_vap. hWf_tp
hWf_tp: ‘double’ hWf_vap
hWf_vap: ‘double’ mSf
Alias for self.flowsIn[1].m mWf
Alias for self.flowsIn[0].m name
name: unicode notes
notes: unicode runBounds
runBounds: ‘double [2]’ sizeAttr
sizeAttr: unicode sizeBounds
sizeBounds: list sizeUnitsBounds
sizeUnitsBounds: list tWall
tWall: ‘double’ wall
wall: mcycle.bases.solidmaterial.SolidMaterial Methods
copy
(self, dict kwargs={})Return a new copy of a class object. dpSf
(self)dpWf
(self)isEvap
(self)bool: True if the Hx is an evaporator; heat transfer from secondary fluid to working fluid. run
(self)Abstract method: must be defined by subclasses. size
(self, unicode attr=u, list bounds=[], …)sizeUnits
(self, unicode attr, list bounds)summary
(self, bool printSummary=True[, …])Returns (and prints) a summary of the component attributes/properties/flows. unitise
(self)Divides the Hx into HxUnits according to divT and divX defined in the configuration parameters, for calculating accurate heat transfer properties. update
(self, dict kwargs)Update (multiple) variables using keyword arguments. weight
(self)float: Estimate of weight [Kg], based purely on wall properties. -
A
¶ A: ‘double’
-
ARatioSf
¶ ARatioSf: ‘double’
-
ARatioWall
¶ ARatioWall: ‘double’
-
ARatioWf
¶ ARatioWf: ‘double’
-
NSf
¶ NSf: ‘int’
-
NWall
¶ NWall: ‘int’
-
NWf
¶ NWf: ‘int’
-
Rf
¶ float: Average of RfWf & RfSf. Setter makes both equal to desired value.
-
RfSf
¶ RfSf: ‘double’
-
RfWf
¶ RfWf: ‘double’
-
ambient
¶ ambient: mcycle.bases.flowstate.FlowState
-
config
¶ config: mcycle.bases.config.Config
-
copy
(self, dict kwargs={})¶ Return a new copy of a class object. Kwargs (as dict) are passed to update() as a shortcut of simultaneously copying and updating.
Parameters: kwargs : dict, optional
Dictionary of attributes and their updated value.
-
dpSf
(self) → double¶
-
dpWf
(self) → double¶
-
effThermal
¶ effThermal: ‘double’
-
flowInSf
¶ Alias for self.flowsIn[1]
-
flowInWf
¶ Alias for self.flowsIn[0]
-
flowOutSf
¶ Alias for self.flowsOut[1]
-
flowOutWf
¶ Alias for self.flowsOut[0]
-
flowSense
¶ flowSense: unicode
-
flowsIn
¶ flowsIn: list
-
flowsOut
¶ flowsOut: list
-
hSf
¶ hSf: ‘double’
-
hWf
¶ float: Average of hWf_liq, hWf_tp & hWf_vap. Setter makes all equal to desired value.
-
hWf_liq
¶ hWf_liq: ‘double’
-
hWf_sp
¶ float: Average of hWf_liq & hWf_vap. Setter makes both equal to desired value.
-
hWf_tp
¶ hWf_tp: ‘double’
-
hWf_vap
¶ hWf_vap: ‘double’
-
isEvap
(self) → bool¶ bool: True if the Hx is an evaporator; heat transfer from secondary fluid to working fluid.
-
mSf
¶ Alias for self.flowsIn[1].m
-
mWf
¶ Alias for self.flowsIn[0].m
-
name
¶ name: unicode
-
notes
¶ notes: unicode
-
run
(self) → void¶ Abstract method: must be defined by subclasses.
-
runBounds
¶ runBounds: ‘double [2]’
-
size
(self, unicode attr=u'', list bounds=[], list unitsBounds=[])¶
-
sizeAttr
¶ sizeAttr: unicode
-
sizeBounds
¶ sizeBounds: list
-
sizeUnits
(self, unicode attr, list bounds) → void¶
-
sizeUnitsBounds
¶ sizeUnitsBounds: list
-
summary
(self, bool printSummary=True, propertyKeys=u'all', flowKeys=u'none', unicode name=u'', int rstHeading=0)¶ Returns (and prints) a summary of the component attributes/properties/flows.
Parameters: printSummary : bool, optional
If true, the summary string is printed as well as returned. Defaults to True.
propertyKeys : list or str, optional
Keys of component properties to be included. The following strings are also accepted as inputs:
‘all’: all properties in _properties are included,
‘none’: no properties are included.
Defaults to ‘all’.
flowKeys : list or str, optional
Keys of component flows to be included. The following strings are also accepted as inputs:
‘all’: all flows are included,
‘none’: no flows are included.
Defaults to ‘none’.
name : str, optional
Name of instance used in summary heading. If None, the name property of the instance is used. Defaults to None.
rstHeading : int, optional
Level of reStructuredText heading to give the summary, 0 being the top heading. Heading style taken from mcycle.DEFAULTS.RSTHEADINGS. Defaults to 0.
-
tWall
¶ tWall: ‘double’
-
unitise
(self)¶ Divides the Hx into HxUnits according to divT and divX defined in the configuration parameters, for calculating accurate heat transfer properties.
-
update
(self, dict kwargs) → void¶ Update (multiple) variables using keyword arguments.
-
wall
¶ wall: mcycle.bases.solidmaterial.SolidMaterial
-
weight
(self) → double¶ float: Estimate of weight [Kg], based purely on wall properties.
HxUnitBasic Class¶
-
class
mcycle.components.hxs.hxunit_basic.
HxUnitBasic
(unicode flowSense=u'counterflow', int NWf=1, int NSf=1, int NWall=1, double hWf=float(u'nan'), double hSf=float(u'nan'), double RfWf=0, double RfSf=0, SolidMaterial wall=None, double tWall=float(u'nan'), double A=float(u'nan'), double ARatioWf=1, double ARatioSf=1, double ARatioWall=1, double effThermal=1.0, FlowState flowInWf=None, FlowState flowInSf=None, FlowState flowOutWf=None, FlowState flowOutSf=None, unicode sizeAttr=u'A', list sizeBounds=[0.01, 10.0], unicode name=u'HxUnitBasic instance', unicode notes=u'No notes/model info.', Config config=Config())¶ Bases:
mcycle.bases.component.Component22
Characterises a basic heat exchanger unit consisting of working fluid and secondary fluid flows separated by a solid wall with single-phase or multi-phase working fluid but only single-phase secondary fluid.
Parameters: flowSense : str, optional
Relative direction of the working and secondary flows. May be either “counterflow” or “parallel”. Defaults to “counterflow”.
NWf : int, optional
Number of parallel working fluid channels [-]. Defaults to 1.
NSf : int, optional
Number of parallel secondary fluid channels [-]. Defaults to 1.
NWall : int, optional
Number of parallel walls [-]. Defaults to 1.
hWf : float, optional
Heat transfer coefficient of the working fluid.. Defaults to nan.
hSf : float, optional
Heat transfer coefficient of the secondary fluid. Defaults to nan.
RfWf : float, optional
Thermal resistance factor due to fouling on the working fluid side [m^2K/W]. Defaults to 0.
RfSf : float, optional
Thermal resistance factor due to fouling on the secondary fluid side [m^2K/W]. Defaults to 0.
wall : SolidMaterial, optional
Wall material. Defaults to None.
tWall : float, optional
Thickness of the wall [m]. Defaults to nan.
A : float, optional
Heat transfer surface area [m^2]. Defaults to nan.
ARatioWf : float, optional
Multiplier for the heat transfer surface area of the working fluid [-]. Defaults to 1.
ARatioSf : float, optional
Multiplier for the heat transfer surface area of the secondary fluid [-]. Defaults to 1.
ARatioWall : float, optional
Multiplier for the heat transfer surface area of the wall [-]. Defaults to 1.
effThermal : float, optional
Thermal efficiency [-]. Defaults to 1.
flowInWf : FlowState, optional
Incoming FlowState of the working fluid. Defaults to None.
flowInSf : FlowState, optional
Incoming FlowState of the secondary fluid. Defaults to None.
flowOutWf : FlowState, optional
Outgoing FlowState of the working fluid. Defaults to None.
flowOutSf : FlowState, optional
Outgoing FlowState of the secondary fluid. Defaults to None.
sizeAttr : string, optional
Default attribute used by size(). Defaults to “N”.
sizeBounds : float or list of float, optional
Bracket containing solution of size(). Defaults to [3, 100].
- if sizeBounds=[a,b]: scipy.optimize.brentq is used.
- if sizeBounds=a or [a]: scipy.optimize.newton is used.
name : string, optional
Description of Component object. Defaults to “HxBasic instance”.
notes : string, optional
Additional notes on the component such as model numbers. Defaults to “No notes/model info.”.
config : Config, optional
Configuration parameters. Defaults to the default Config object.
kwargs : optional
Arbitrary keyword arguments.
Attributes
A
A: ‘double’ ARatioSf
ARatioSf: ‘double’ ARatioWall
ARatioWall: ‘double’ ARatioWf
ARatioWf: ‘double’ N
int: Number of flow channels, returns average of NWf & NSf. NSf
NSf: ‘int’ NWall
NWall: ‘int’ NWf
NWf: ‘int’ RfSf
RfSf: ‘double’ RfWf
RfWf: ‘double’ ambient
ambient: mcycle.bases.flowstate.FlowState config
config: mcycle.bases.config.Config effThermal
effThermal: ‘double’ flowInSf
Alias for self.flowsIn[1] flowInWf
Alias for self.flowsIn[0] flowOutSf
Alias for self.flowsOut[1] flowOutWf
Alias for self.flowsOut[0] flowSense
flowSense: unicode flowsIn
flowsIn: list flowsOut
flowsOut: list hSf
hSf: ‘double’ hWf
hWf: ‘double’ mSf
Alias for self.flowsIn[1].m mWf
Alias for self.flowsIn[0].m name
name: unicode notes
notes: unicode runBounds
runBounds: ‘double [2]’ sizeAttr
sizeAttr: unicode sizeBounds
sizeBounds: list sizeUnitsBounds
sizeUnitsBounds: list tWall
tWall: ‘double’ twoPhaseWf
bool: Return True if working fluid is in 2-phase region. wall
wall: mcycle.bases.solidmaterial.SolidMaterial Methods
LMTD
(self)float: Log-mean temperature difference [K] Q
(self)float: Heat transfer from the secondary fluid to the working fluid [W]. U
(self)float: Overall heat transfer coefficient [W/m^2.K]; heat transfer coefficients of each flow channel and wall, summed in series. copy
(self, dict kwargs={})Return a new copy of a class object. dpSf
(self)dpWf
(self)isEvap
(self)bool: True if the Hx is an evaporator; heat transfer from secondary fluid to working fluid. phaseSf
(self)str: Identifier of secondary fluid phase: ‘liq’: subcooled liquid, ‘vap’: superheated vapour, ‘sp’: unknown single-phase. phaseWf
(self)str: Identifier of working fluid phase: ‘liq’: subcooled liquid, ‘vap’: superheated vapour, ‘tpEvap’ or ‘tpCond’: evaporating or condensing in two-phase liq/vapour region. run
(self)Run the HX from the incoming FlowState, using the epsilon-NTU method to produce an initial solution estimate. size
(self, unicode attr=u, list bounds=[], …)sizeUnits
(self, unicode attr, list bounds)Size for the value of the nominated attribute required to achieve the defined outgoing FlowState. summary
(self, bool printSummary=True[, …])Returns (and prints) a summary of the component attributes/properties/flows. update
(self, dict kwargs)Update (multiple) class variables from a dictionary of keyword arguments. weight
(self)float: Estimate of weight [Kg], based purely on wall properties. -
A
¶ A: ‘double’
-
ARatioSf
¶ ARatioSf: ‘double’
-
ARatioWall
¶ ARatioWall: ‘double’
-
ARatioWf
¶ ARatioWf: ‘double’
-
LMTD
(self) → double¶ float: Log-mean temperature difference [K]
-
N
¶ int: Number of flow channels, returns average of NWf & NSf. Setter makes both equal to desired value.
-
NSf
¶ NSf: ‘int’
-
NWall
¶ NWall: ‘int’
-
NWf
¶ NWf: ‘int’
-
Q
(self) → double¶ float: Heat transfer from the secondary fluid to the working fluid [W].
-
RfSf
¶ RfSf: ‘double’
-
RfWf
¶ RfWf: ‘double’
-
U
(self) → double¶ float: Overall heat transfer coefficient [W/m^2.K]; heat transfer coefficients of each flow channel and wall, summed in series.
-
ambient
¶ ambient: mcycle.bases.flowstate.FlowState
-
config
¶ config: mcycle.bases.config.Config
-
copy
(self, dict kwargs={})¶ Return a new copy of a class object. Kwargs (as dict) are passed to update() as a shortcut of simultaneously copying and updating.
Parameters: kwargs : dict, optional
Dictionary of attributes and their updated value.
-
dpSf
(self) → double¶
-
dpWf
(self) → double¶
-
effThermal
¶ effThermal: ‘double’
-
flowInSf
¶ Alias for self.flowsIn[1]
-
flowInWf
¶ Alias for self.flowsIn[0]
-
flowOutSf
¶ Alias for self.flowsOut[1]
-
flowOutWf
¶ Alias for self.flowsOut[0]
-
flowSense
¶ flowSense: unicode
-
flowsIn
¶ flowsIn: list
-
flowsOut
¶ flowsOut: list
-
hSf
¶ hSf: ‘double’
-
hWf
¶ hWf: ‘double’
-
isEvap
(self) → bool¶ bool: True if the Hx is an evaporator; heat transfer from secondary fluid to working fluid.
-
mSf
¶ Alias for self.flowsIn[1].m
-
mWf
¶ Alias for self.flowsIn[0].m
-
name
¶ name: unicode
-
notes
¶ notes: unicode
-
phaseSf
(self) → unicode¶ str: Identifier of secondary fluid phase: ‘liq’: subcooled liquid, ‘vap’: superheated vapour, ‘sp’: unknown single-phase.
-
phaseWf
(self) → unicode¶ str: Identifier of working fluid phase: ‘liq’: subcooled liquid, ‘vap’: superheated vapour, ‘tpEvap’ or ‘tpCond’: evaporating or condensing in two-phase liq/vapour region.
-
run
(self) → void¶ Run the HX from the incoming FlowState, using the epsilon-NTU method to produce an initial solution estimate.
-
runBounds
¶ runBounds: ‘double [2]’
-
size
(self, unicode attr=u'', list bounds=[], list unitsBounds=[])¶
-
sizeAttr
¶ sizeAttr: unicode
-
sizeBounds
¶ sizeBounds: list
-
sizeUnits
(self, unicode attr, list bounds) → void¶ Size for the value of the nominated attribute required to achieve the defined outgoing FlowState.
Parameters: attr : string, optional
Component attribute to be sized. If None, self.sizeAttr is used. Defaults to None.
bounds : float or list of float, optional
Bracket containing solution of size(). If None, self.sizeBounds is used. Defaults to None.
- if bounds=[a,b]: scipy.optimize.brentq is used.
- if bounds=a or [a]: scipy.optimize.newton is used.
-
sizeUnitsBounds
¶ sizeUnitsBounds: list
-
summary
(self, bool printSummary=True, propertyKeys=u'all', flowKeys=u'none', unicode name=u'', int rstHeading=0)¶ Returns (and prints) a summary of the component attributes/properties/flows.
Parameters: printSummary : bool, optional
If true, the summary string is printed as well as returned. Defaults to True.
propertyKeys : list or str, optional
Keys of component properties to be included. The following strings are also accepted as inputs:
‘all’: all properties in _properties are included,
‘none’: no properties are included.
Defaults to ‘all’.
flowKeys : list or str, optional
Keys of component flows to be included. The following strings are also accepted as inputs:
‘all’: all flows are included,
‘none’: no flows are included.
Defaults to ‘none’.
name : str, optional
Name of instance used in summary heading. If None, the name property of the instance is used. Defaults to None.
rstHeading : int, optional
Level of reStructuredText heading to give the summary, 0 being the top heading. Heading style taken from mcycle.DEFAULTS.RSTHEADINGS. Defaults to 0.
-
tWall
¶ tWall: ‘double’
-
twoPhaseWf
¶ bool: Return True if working fluid is in 2-phase region.
-
update
(self, dict kwargs) → void¶ Update (multiple) class variables from a dictionary of keyword arguments.
Parameters: kwargs : dict
Dictionary of attributes and their updated value; kwargs={‘key’: value}.
-
wall
¶ wall: mcycle.bases.solidmaterial.SolidMaterial
-
weight
(self) → double¶ float: Estimate of weight [Kg], based purely on wall properties.
HxBasicPlanar Class¶
-
class
mcycle.components.hxs.hx_basicplanar.
HxBasicPlanar
(unicode flowSense=u'counterflow', int NWf=1, int NSf=1, int NWall=1, hWf_liq=nan, hWf_tp=nan, hWf_vap=nan, double hSf=nan, double RfWf=0, double RfSf=0, SolidMaterial wall=None, double tWall=nan, double L=nan, double W=nan, double ARatioWf=1, double ARatioSf=1, double ARatioWall=1, double effThermal=1.0, FlowState flowInWf=None, FlowState flowInSf=None, FlowState flowOutWf=None, FlowState flowOutSf=None, FlowState ambient=None, unicode sizeAttr=u'NPlate', list sizeBounds=[1, 100], list sizeUnitsBounds=[1e-5, 1.], runBounds=[nan, nan], unicode name=u'HxBasic instance', unicode notes=u'No notes/model info.', Config config=Config(), _unitClass=HxUnitBasicPlanar)¶ Bases:
mcycle.components.hxs.hx_basic.HxBasic
Characterises a basic planar heat exchanger consisting of working fluid and secondary fluid flows separated by a solid wall with single-phase or multi-phase working fluid but only single-phase secondary fluid.
Parameters: flowSense : str, optional
Relative direction of the working and secondary flows. May be either “counterflow” or “parallel”. Defaults to “counterflow”.
NWf : int, optional
Number of parallel working fluid channels [-]. Defaults to 1.
NSf : int, optional
Number of parallel secondary fluid channels [-]. Defaults to 1.
NWall : int, optional
Number of parallel walls [-]. Defaults to 1.
hWf_liq : float, optional
Heat transfer coefficient of the working fluid in the single-phase liquid region (subcooled). Defaults to nan.
hWf_tp : float, optional
Heat transfer coefficient of the working fluid in the two-phase liquid/vapour region. Defaults to nan.
hWf_vap : float, optional
Heat transfer coefficient of the working fluid in the single-phase vapour region (superheated). Defaults to nan.
hSf : float, optional
Heat transfer coefficient of the secondary fluid in a single-phase region. Defaults to nan.
RfWf : float, optional
Thermal resistance due to fouling on the working fluid side. Defaults to 0.
RfSf : float, optional
Thermal resistance due to fouling on the secondary fluid side. Defaults to 0.
wall : SolidMaterial, optional
Wall material. Defaults to None.
tWall : float, optional
Thickness of the wall [m]. Defaults to nan.
L : float, optional
Length of the heat transfer surface area (dimension parallel to flow direction) [m]. Defaults to nan.
W : float, optional
Width of the heat transfer surface area (dimension perpendicular to flow direction) [m]. Defaults to nan.
ARatioWf : float, optional
Multiplier for the heat transfer surface area of the working fluid [-]. Defaults to 1.
ARatioSf : float, optional
Multiplier for the heat transfer surface area of the secondary fluid [-]. Defaults to 1.
ARatioWall : float, optional
Multiplier for the heat transfer surface area of the wall [-]. Defaults to 1.
effThermal : float, optional
Thermal efficiency [-]. Defaults to 1.
flowInWf : FlowState, optional
Incoming FlowState of the working fluid. Defaults to None.
flowInSf : FlowState, optional
Incoming FlowState of the secondary fluid. Defaults to None.
flowOutWf : FlowState, optional
Outgoing FlowState of the working fluid. Defaults to None.
flowOutSf : FlowState, optional
Outgoing FlowState of the secondary fluid. Defaults to None.
ambient : FlowState, optional
Ambient environment flow state. Defaults to None.
sizeAttr : string, optional
Default attribute used by size(). Defaults to “N”.
sizeBounds : float or list of float, optional
Bracket containing solution of size(). Defaults to [1, 100].
- if sizeBounds=[a,b]: scipy.optimize.brentq is used.
- if sizeBounds=a or [a]: scipy.optimize.newton is used.
sizeUnitsBounds : float or list of float, optional
Bracket passed on to any HxUnits containing solution of size() for the unit. Typically this bounds is used to size for the length of the HxUnit. Defaults to [1e-5, 1.].
name : string, optional
Description of object. Defaults to “HxBasicPlanar instance”.
notes : string, optional
Additional notes on the component such as model numbers. Defaults to “No notes/model info.”.
config : Config, optional
Configuration parameters. Defaults to the default Config object.
kwargs : optional
Arbitrary keyword arguments.
Attributes
A
float: Heat transfer surface area. A = L * W. ARatioSf
ARatioSf: ‘double’ ARatioWall
ARatioWall: ‘double’ ARatioWf
ARatioWf: ‘double’ L
L: ‘double’ NSf
NSf: ‘int’ NWall
NWall: ‘int’ NWf
NWf: ‘int’ Rf
float: Average of RfWf & RfSf. RfSf
RfSf: ‘double’ RfWf
RfWf: ‘double’ W
W: ‘double’ ambient
ambient: mcycle.bases.flowstate.FlowState config
config: mcycle.bases.config.Config effThermal
effThermal: ‘double’ flowInSf
Alias for self.flowsIn[1] flowInWf
Alias for self.flowsIn[0] flowOutSf
Alias for self.flowsOut[1] flowOutWf
Alias for self.flowsOut[0] flowSense
flowSense: unicode flowsIn
flowsIn: list flowsOut
flowsOut: list hSf
hSf: ‘double’ hWf
float: Average of hWf_liq, hWf_tp & hWf_vap. hWf_liq
hWf_liq: ‘double’ hWf_sp
float: Average of hWf_liq & hWf_vap. hWf_tp
hWf_tp: ‘double’ hWf_vap
hWf_vap: ‘double’ mSf
Alias for self.flowsIn[1].m mWf
Alias for self.flowsIn[0].m name
name: unicode notes
notes: unicode runBounds
runBounds: ‘double [2]’ sizeAttr
sizeAttr: unicode sizeBounds
sizeBounds: list sizeUnitsBounds
sizeUnitsBounds: list tWall
tWall: ‘double’ wall
wall: mcycle.bases.solidmaterial.SolidMaterial Methods
copy
(self, dict kwargs={})Return a new copy of a class object. dpSf
(self)dpWf
(self)isEvap
(self)bool: True if the Hx is an evaporator; heat transfer from secondary fluid to working fluid. run
(self)size
(self, unicode attr=u, list bounds=[], …)sizeUnits
(self, unicode attr, list bounds)size_L
(self, list unitsBounds)float: Solve for the required length of the Hx to satisfy the heat transfer equations [m]. summary
(self, bool printSummary=True[, …])Returns (and prints) a summary of the component attributes/properties/flows. unitise
(self)Divides the Hx into HxUnits according to divT and divX defined in the configuration parameters, for calculating accurate heat transfer properties. update
(self, dict kwargs)Update (multiple) variables using keyword arguments. weight
(self)float: Estimate of weight [Kg], based purely on wall properties. -
A
¶ float: Heat transfer surface area. A = L * W. Setter preserves the ratio of L/W.
-
ARatioSf
¶ ARatioSf: ‘double’
-
ARatioWall
¶ ARatioWall: ‘double’
-
ARatioWf
¶ ARatioWf: ‘double’
-
L
¶ L: ‘double’
-
NSf
¶ NSf: ‘int’
-
NWall
¶ NWall: ‘int’
-
NWf
¶ NWf: ‘int’
-
Rf
¶ float: Average of RfWf & RfSf. Setter makes both equal to desired value.
-
RfSf
¶ RfSf: ‘double’
-
RfWf
¶ RfWf: ‘double’
-
W
¶ W: ‘double’
-
ambient
¶ ambient: mcycle.bases.flowstate.FlowState
-
config
¶ config: mcycle.bases.config.Config
-
copy
(self, dict kwargs={})¶ Return a new copy of a class object. Kwargs (as dict) are passed to update() as a shortcut of simultaneously copying and updating.
Parameters: kwargs : dict, optional
Dictionary of attributes and their updated value.
-
dpSf
(self) → double¶
-
dpWf
(self) → double¶
-
effThermal
¶ effThermal: ‘double’
-
flowInSf
¶ Alias for self.flowsIn[1]
-
flowInWf
¶ Alias for self.flowsIn[0]
-
flowOutSf
¶ Alias for self.flowsOut[1]
-
flowOutWf
¶ Alias for self.flowsOut[0]
-
flowSense
¶ flowSense: unicode
-
flowsIn
¶ flowsIn: list
-
flowsOut
¶ flowsOut: list
-
hSf
¶ hSf: ‘double’
-
hWf
¶ float: Average of hWf_liq, hWf_tp & hWf_vap. Setter makes all equal to desired value.
-
hWf_liq
¶ hWf_liq: ‘double’
-
hWf_sp
¶ float: Average of hWf_liq & hWf_vap. Setter makes both equal to desired value.
-
hWf_tp
¶ hWf_tp: ‘double’
-
hWf_vap
¶ hWf_vap: ‘double’
-
isEvap
(self) → bool¶ bool: True if the Hx is an evaporator; heat transfer from secondary fluid to working fluid.
-
mSf
¶ Alias for self.flowsIn[1].m
-
mWf
¶ Alias for self.flowsIn[0].m
-
name
¶ name: unicode
-
notes
¶ notes: unicode
-
run
(self) → void¶
-
runBounds
¶ runBounds: ‘double [2]’
-
size
(self, unicode attr=u'', list bounds=[], list unitsBounds=[])¶
-
sizeAttr
¶ sizeAttr: unicode
-
sizeBounds
¶ sizeBounds: list
-
sizeUnits
(self, unicode attr, list bounds) → void¶
-
sizeUnitsBounds
¶ sizeUnitsBounds: list
-
size_L
(self, list unitsBounds) → double¶ float: Solve for the required length of the Hx to satisfy the heat transfer equations [m].
-
summary
(self, bool printSummary=True, propertyKeys=u'all', flowKeys=u'none', unicode name=u'', int rstHeading=0)¶ Returns (and prints) a summary of the component attributes/properties/flows.
Parameters: printSummary : bool, optional
If true, the summary string is printed as well as returned. Defaults to True.
propertyKeys : list or str, optional
Keys of component properties to be included. The following strings are also accepted as inputs:
‘all’: all properties in _properties are included,
‘none’: no properties are included.
Defaults to ‘all’.
flowKeys : list or str, optional
Keys of component flows to be included. The following strings are also accepted as inputs:
‘all’: all flows are included,
‘none’: no flows are included.
Defaults to ‘none’.
name : str, optional
Name of instance used in summary heading. If None, the name property of the instance is used. Defaults to None.
rstHeading : int, optional
Level of reStructuredText heading to give the summary, 0 being the top heading. Heading style taken from mcycle.DEFAULTS.RSTHEADINGS. Defaults to 0.
-
tWall
¶ tWall: ‘double’
-
unitise
(self)¶ Divides the Hx into HxUnits according to divT and divX defined in the configuration parameters, for calculating accurate heat transfer properties.
-
update
(self, dict kwargs) → void¶ Update (multiple) variables using keyword arguments.
-
wall
¶ wall: mcycle.bases.solidmaterial.SolidMaterial
-
weight
(self) → double¶ float: Estimate of weight [Kg], based purely on wall properties.
HxUnitBasicPlanar Class¶
-
class
mcycle.components.hxs.hxunit_basicplanar.
HxUnitBasicPlanar
(unicode flowSense=u'counterflow', int NWf=1, int NSf=1, int NWall=1, double hWf=float(u'nan'), double hSf=float(u'nan'), double RfWf=0, double RfSf=0, SolidMaterial wall=None, double tWall=float(u'nan'), double L=float(u'nan'), double W=float(u'nan'), double ARatioWf=1, double ARatioSf=1, double ARatioWall=1, double effThermal=1.0, FlowState flowInWf=None, FlowState flowInSf=None, FlowState flowOutWf=None, FlowState flowOutSf=None, unicode sizeAttr=u'A', list sizeBounds=[0.01, 10.0], unicode name=u'HxUnitBasic instance', unicode notes=u'No notes/model info.', Config config=Config())¶ Bases:
mcycle.components.hxs.hxunit_basic.HxUnitBasic
Characterises a basic planar heat exchanger unit consisting of working fluid and secondary fluid flows separated by a solid wall with single-phase or multi-phase working fluid but only single-phase secondary fluid.
Parameters: flowSense : str, optional
Relative direction of the working and secondary flows. May be either “counterflow” or “parallel”. Defaults to “counterflow”.
NWf : int, optional
Number of parallel working fluid channels [-]. Defaults to 1.
NSf : int, optional
Number of parallel secondary fluid channels [-]. Defaults to 1.
NWall : int, optional
Number of parallel walls [-]. Defaults to 1.
hWf : float, optional
Heat transfer coefficient of the working fluid. Defaults to nan.
hSf : float, optional
Heat transfer coefficient of the secondary fluid. Defaults to nan.
RfWf : float, optional
Thermal resistance factor due to fouling on the working fluid side [m^2K/W]. Defaults to 0.
RfSf : float, optional
Thermal resistance factor due to fouling on the secondary fluid side [m^2K/W]. Defaults to 0.
wall : SolidMaterial, optional
Wall material. Defaults to None.
tWall : float, optional
Thickness of the wall [m]. Defaults to nan.
L : float, optional
Length of the heat transfer surface area (dimension parallel to flow direction) [m]. Defaults to nan.
W : float, optional
Width of the heat transfer surface area (dimension perpendicular to flow direction) [m]. Defaults to nan.
ARatioWf : float, optional
Multiplier for the heat transfer surface area of the working fluid [-]. Defaults to 1.
ARatioSf : float, optional
Multiplier for the heat transfer surface area of the secondary fluid [-]. Defaults to 1.
ARatioWall : float, optional
Multiplier for the heat transfer surface area of the wall [-]. Defaults to 1.
effThermal : float, optional
Thermal efficiency [-]. Defaults to 1.
flowInWf : FlowState, optional
Incoming FlowState of the working fluid. Defaults to None.
flowInSf : FlowState, optional
Incoming FlowState of the secondary fluid. Defaults to None.
flowOutWf : FlowState, optional
Outgoing FlowState of the working fluid. Defaults to None.
flowOutSf : FlowState, optional
Outgoing FlowState of the secondary fluid. Defaults to None.
sizeAttr : string, optional
Default attribute used by size(). Defaults to “N”.
sizeBounds : float or list of float, optional
Bracket containing solution of size(). Defaults to [3, 100].
- if sizeBounds=[a,b]: scipy.optimize.brentq is used.
- if sizeBounds=a or [a]: scipy.optimize.newton is used.
name : string, optional
Description of Component object. Defaults to “HxBasic instance”.
notes : string, optional
Additional notes on the component such as model numbers. Defaults to “No notes/model info.”.
config : Config, optional
Configuration parameters. Defaults to the default Config object.
kwargs : optional
Arbitrary keyword arguments.
Attributes
A
float: A = L * W. ARatioSf
ARatioSf: ‘double’ ARatioWall
ARatioWall: ‘double’ ARatioWf
ARatioWf: ‘double’ L
L: ‘double’ N
int: Number of flow channels, returns average of NWf & NSf. NSf
NSf: ‘int’ NWall
NWall: ‘int’ NWf
NWf: ‘int’ RfSf
RfSf: ‘double’ RfWf
RfWf: ‘double’ W
W: ‘double’ ambient
ambient: mcycle.bases.flowstate.FlowState config
config: mcycle.bases.config.Config effThermal
effThermal: ‘double’ flowInSf
Alias for self.flowsIn[1] flowInWf
Alias for self.flowsIn[0] flowOutSf
Alias for self.flowsOut[1] flowOutWf
Alias for self.flowsOut[0] flowSense
flowSense: unicode flowsIn
flowsIn: list flowsOut
flowsOut: list hSf
hSf: ‘double’ hWf
hWf: ‘double’ mSf
Alias for self.flowsIn[1].m mWf
Alias for self.flowsIn[0].m name
name: unicode notes
notes: unicode runBounds
runBounds: ‘double [2]’ sizeAttr
sizeAttr: unicode sizeBounds
sizeBounds: list sizeUnitsBounds
sizeUnitsBounds: list tWall
tWall: ‘double’ twoPhaseWf
bool: Return True if working fluid is in 2-phase region. wall
wall: mcycle.bases.solidmaterial.SolidMaterial Methods
LMTD
(self)float: Log-mean temperature difference [K] Q
(self)float: Heat transfer from the secondary fluid to the working fluid [W]. U
(self)float: Overall heat transfer coefficient [W/m^2.K]; heat transfer coefficients of each flow channel and wall, summed in series. copy
(self, dict kwargs={})Return a new copy of a class object. dpSf
(self)dpWf
(self)isEvap
(self)bool: True if the Hx is an evaporator; heat transfer from secondary fluid to working fluid. phaseSf
(self)str: Identifier of secondary fluid phase: ‘liq’: subcooled liquid, ‘vap’: superheated vapour, ‘sp’: unknown single-phase. phaseWf
(self)str: Identifier of working fluid phase: ‘liq’: subcooled liquid, ‘vap’: superheated vapour, ‘tpEvap’ or ‘tpCond’: evaporating or condensing in two-phase liq/vapour region. run
(self)Run the HX from the incoming FlowState, using the epsilon-NTU method to produce an initial solution estimate. size
(self, unicode attr=u, list bounds=[], …)sizeUnits
(self, unicode attr, list bounds)Solves for the value of the nominated component attribute required to return the defined outgoing FlowState. summary
(self, bool printSummary=True[, …])Returns (and prints) a summary of the component attributes/properties/flows. update
(self, dict kwargs)Update (multiple) class variables from a dictionary of keyword arguments. weight
(self)float: Estimate of weight [Kg], based purely on wall properties. -
A
¶ float: A = L * W. Setter preserves the ratio of L/W.
-
ARatioSf
¶ ARatioSf: ‘double’
-
ARatioWall
¶ ARatioWall: ‘double’
-
ARatioWf
¶ ARatioWf: ‘double’
-
L
¶ L: ‘double’
-
LMTD
(self) → double¶ float: Log-mean temperature difference [K]
-
N
¶ int: Number of flow channels, returns average of NWf & NSf. Setter makes both equal to desired value.
-
NSf
¶ NSf: ‘int’
-
NWall
¶ NWall: ‘int’
-
NWf
¶ NWf: ‘int’
-
Q
(self) → double¶ float: Heat transfer from the secondary fluid to the working fluid [W].
-
RfSf
¶ RfSf: ‘double’
-
RfWf
¶ RfWf: ‘double’
-
U
(self) → double¶ float: Overall heat transfer coefficient [W/m^2.K]; heat transfer coefficients of each flow channel and wall, summed in series.
-
W
¶ W: ‘double’
-
ambient
¶ ambient: mcycle.bases.flowstate.FlowState
-
config
¶ config: mcycle.bases.config.Config
-
copy
(self, dict kwargs={})¶ Return a new copy of a class object. Kwargs (as dict) are passed to update() as a shortcut of simultaneously copying and updating.
Parameters: kwargs : dict, optional
Dictionary of attributes and their updated value.
-
dpSf
(self) → double¶
-
dpWf
(self) → double¶
-
effThermal
¶ effThermal: ‘double’
-
flowInSf
¶ Alias for self.flowsIn[1]
-
flowInWf
¶ Alias for self.flowsIn[0]
-
flowOutSf
¶ Alias for self.flowsOut[1]
-
flowOutWf
¶ Alias for self.flowsOut[0]
-
flowSense
¶ flowSense: unicode
-
flowsIn
¶ flowsIn: list
-
flowsOut
¶ flowsOut: list
-
hSf
¶ hSf: ‘double’
-
hWf
¶ hWf: ‘double’
-
isEvap
(self) → bool¶ bool: True if the Hx is an evaporator; heat transfer from secondary fluid to working fluid.
-
mSf
¶ Alias for self.flowsIn[1].m
-
mWf
¶ Alias for self.flowsIn[0].m
-
name
¶ name: unicode
-
notes
¶ notes: unicode
-
phaseSf
(self) → unicode¶ str: Identifier of secondary fluid phase: ‘liq’: subcooled liquid, ‘vap’: superheated vapour, ‘sp’: unknown single-phase.
-
phaseWf
(self) → unicode¶ str: Identifier of working fluid phase: ‘liq’: subcooled liquid, ‘vap’: superheated vapour, ‘tpEvap’ or ‘tpCond’: evaporating or condensing in two-phase liq/vapour region.
-
run
(self) → void¶ Run the HX from the incoming FlowState, using the epsilon-NTU method to produce an initial solution estimate.
-
runBounds
¶ runBounds: ‘double [2]’
-
size
(self, unicode attr=u'', list bounds=[], list unitsBounds=[])¶
-
sizeAttr
¶ sizeAttr: unicode
-
sizeBounds
¶ sizeBounds: list
-
sizeUnits
(self, unicode attr, list bounds) → void¶ Solves for the value of the nominated component attribute required to return the defined outgoing FlowState.
Parameters: attr : string, optional
Attribute to be sized. If None, self.sizeAttr is used. Defaults to None.
bounds : float or list of float, optional
Bracket containing solution of size(). If None, self.sizeBounds is used. Defaults to None.
- if bounds=[a,b]: scipy.optimize.brentq is used.
- if bounds=a or [a]: scipy.optimize.newton is used.
-
sizeUnitsBounds
¶ sizeUnitsBounds: list
-
summary
(self, bool printSummary=True, propertyKeys=u'all', flowKeys=u'none', unicode name=u'', int rstHeading=0)¶ Returns (and prints) a summary of the component attributes/properties/flows.
Parameters: printSummary : bool, optional
If true, the summary string is printed as well as returned. Defaults to True.
propertyKeys : list or str, optional
Keys of component properties to be included. The following strings are also accepted as inputs:
‘all’: all properties in _properties are included,
‘none’: no properties are included.
Defaults to ‘all’.
flowKeys : list or str, optional
Keys of component flows to be included. The following strings are also accepted as inputs:
‘all’: all flows are included,
‘none’: no flows are included.
Defaults to ‘none’.
name : str, optional
Name of instance used in summary heading. If None, the name property of the instance is used. Defaults to None.
rstHeading : int, optional
Level of reStructuredText heading to give the summary, 0 being the top heading. Heading style taken from mcycle.DEFAULTS.RSTHEADINGS. Defaults to 0.
-
tWall
¶ tWall: ‘double’
-
twoPhaseWf
¶ bool: Return True if working fluid is in 2-phase region.
-
update
(self, dict kwargs) → void¶ Update (multiple) class variables from a dictionary of keyword arguments.
Parameters: kwargs : dict
Dictionary of attributes and their updated value; kwargs={‘key’: value}.
-
wall
¶ wall: mcycle.bases.solidmaterial.SolidMaterial
-
weight
(self) → double¶ float: Estimate of weight [Kg], based purely on wall properties.
HxPlate Class¶
-
class
mcycle.components.hxs.hx_plate.
HxPlate
(unicode flowSense=u'counterflow', int NPlate=3, double RfWf=0, double RfSf=0, SolidMaterial plate=None, double tPlate=nan, Geom geomPlateWf=None, Geom geomPlateSf=None, double L=nan, double W=nan, double ARatioWf=1, double ARatioSf=1, double ARatioPlate=1, double DPortWf=nan, double DPortSf=nan, double LVertPortWf=nan, double LVertPortSf=nan, list coeffs_LPlate=[0, 1], list coeffs_WPlate=[0, 1], list coeffs_weight=[], double effThermal=1.0, FlowState flowInWf=None, FlowState flowInSf=None, FlowState flowOutWf=None, FlowState flowOutSf=None, FlowState ambient=None, unicode sizeAttr=u'NPlate', list sizeBounds=[3, 100], list sizeUnitsBounds=[1e-5, 10.], runBounds=[nan, nan], unicode name=u'HxBasic instance', unicode notes=u'No notes/model info.', Config config=Config(), _unitClass=HxUnitPlate)¶ Bases:
mcycle.components.hxs.hx_basicplanar.HxBasicPlanar
Characterises a basic plate heat exchanger consisting of alternating working fluid and secondary fluid flows separated by a solid wall with single-phase or multi-phase working fluid but only single-phase secondary fluid.
Parameters: flowSense : str, optional
Relative direction of the working and secondary flows. May be either “counterflow” or “parallel”. Defaults to “counterflow”.
RfWf : float, optional
Thermal resistance due to fouling on the working fluid side. Defaults to 0.
RfSf : float, optional
Thermal resistance due to fouling on the secondary fluid side. Defaults to 0.
plate : SolidMaterial, optional
Plate material. Defaults to None.
tPlate : float, optional
Thickness of the plate [m]. Defaults to nan.
L : float, optional
Length of the heat transfer surface area (dimension parallel to flow direction) [m]. Defaults to nan.
W : float, optional
Width of the heat transfer surface area (dimension perpendicular to flow direction) [m]. Defaults to nan.
ARatioWf : float, optional
Multiplier for the heat transfer surface area of the working fluid [-]. Defaults to 1.
ARatioSf : float, optional
Multiplier for the heat transfer surface area of the secondary fluid [-]. Defaults to 1.
ARatioPlate : float, optional
Multiplier for the heat transfer surface area of the plate [-]. Defaults to 1.
NPlate : int, optional
Number of parallel plates [-]. The number of thermally activate plates is equal to NPlate - 2, due to the 2 end plates. Must be >= 3. Defaults to 3.
DPortWf : float, optional
Diameter of the working fluid flow ports [m]. Defaults to nan.
DPortSf : float, optional
Diameter of the secondary fluid flow ports [m]. Defaults to nan.
LVertPortWf : float, optional
Vertical distance between incoming and outgoing working fluid flow ports [m]. If None, L is used. Defaults to None.
LVertPortSf : float, optional
Vertical distance between incoming and outgoing secondary fluid flow ports [m]. If None, L is used. Defaults to None.
coeffs_LPlate : list of float, optional
Coefficients to calculate the total plate length from the length of the heat transfer area. LPlate = sum(coeffs_LPlate[i] * L**i). Defaults to [0, 1].
coeffs_WPlate : list of float, optional
Coefficients to calculate the total plate width from the width of the heat transfer area. wPlate = sum(coeffs_WPlate[i] * W**i). Defaults to [0, 1].
coeffs_weight : list of float, optional
- Coefficients to calculate the total weight of the plates from the number of plates and the plate volume.::
weight = sum(coeffs_weight[i] * NPlates**i)*(LPlate*WPlate*tPlate).
If None, the weight is approximated from the plate geometry. Defaults to None.
effThermal : float, optional
Thermal efficiency [-]. Defaults to 1.
flowInWf : FlowState, optional
Incoming FlowState of the working fluid. Defaults to None.
flowInSf : FlowState, optional
Incoming FlowState of the secondary fluid. Defaults to None.
flowOutWf : FlowState, optional
Outgoing FlowState of the working fluid. Defaults to None.
flowOutSf : FlowState, optional
Outgoing FlowState of the secondary fluid. Defaults to None.
ambient : FlowState, optional
Ambient environment flow state. Defaults to None.
sizeAttr : string, optional
Default attribute used by size(). Defaults to “NPlate”.
sizeBounds : float or list of float, optional
Bracket containing solution of size(). Defaults to [3, 100].
- if sizeBounds=[a,b]: scipy.optimize.brentq is used.
- if sizeBounds=a or [a]: scipy.optimize.newton is used.
sizeUnitsBounds : float or list of float, optional
Bracket passed on to any HxUnits containing solution of size() for the unit. Typically this bounds is used to size for the length of the HxUnit. Defaults to [1e-5, 1.].
name : string, optional
Description of object. Defaults to “HxPlate instance”.
notes : string, optional
Additional notes on the component such as model numbers. Defaults to “No notes/model info.”.
config : Config, optional
Configuration parameters. Defaults to the default Config object.
kwargs : optional
Arbitrary keyword arguments.
Attributes
A
float: Heat transfer surface area. A = L * W. ARatioPlate
float: Alias of self.ARatioWall ARatioSf
ARatioSf: ‘double’ ARatioWall
ARatioWall: ‘double’ ARatioWf
ARatioWf: ‘double’ DPortSf
DPortSf: ‘double’ DPortWf
DPortWf: ‘double’ L
L: ‘double’ LVertPortSf
LVertPortSf: ‘double’ LVertPortWf
LVertPortWf: ‘double’ NPlate
int: Alias of self.NWall NSf
NWall
NWall: ‘int’ NWf
Rf
float: Average of RfWf & RfSf. RfSf
RfSf: ‘double’ RfWf
RfWf: ‘double’ W
W: ‘double’ ambient
ambient: mcycle.bases.flowstate.FlowState coeffs_LPlate
coeffs_LPlate: list coeffs_WPlate
coeffs_WPlate: list coeffs_weight
coeffs_weight: list config
config: mcycle.bases.config.Config effThermal
effThermal: ‘double’ flowInSf
Alias for self.flowsIn[1] flowInWf
Alias for self.flowsIn[0] flowOutSf
Alias for self.flowsOut[1] flowOutWf
Alias for self.flowsOut[0] flowSense
flowSense: unicode flowsIn
flowsIn: list flowsOut
flowsOut: list geomPlate
geomPlateSf
geomPlateSf: mcycle.bases.geom.Geom geomPlateWf
geomPlateWf: mcycle.bases.geom.Geom hSf
hSf: ‘double’ hWf
float: Average of hWf_liq, hWf_tp & hWf_vap. hWf_liq
hWf_liq: ‘double’ hWf_sp
float: Average of hWf_liq & hWf_vap. hWf_tp
hWf_tp: ‘double’ hWf_vap
hWf_vap: ‘double’ mSf
Alias for self.flowsIn[1].m mWf
Alias for self.flowsIn[0].m name
name: unicode notes
notes: unicode plate
SolidMaterial: Alias of self.wall runBounds
runBounds: ‘double [2]’ sizeAttr
sizeAttr: unicode sizeBounds
sizeBounds: list sizeUnitsBounds
sizeUnitsBounds: list tPlate
float: Alias of self.tWall tWall
tWall: ‘double’ wall
wall: mcycle.bases.solidmaterial.SolidMaterial Methods
LPlate
(self)float: Total length of the plate; sum(coeffs_LPlate[i] * L**i). WPlate
(self)float: Total width of the plate; sum(coeffs_WPlate[i] * W**i). copy
(self, dict kwargs={})Return a new copy of a class object. dpAccSf
(self)float: Acceleration pressure drop of the secondary fluid [Pa]. dpAccWf
(self)float: Acceleration pressure drop of the working fluid [Pa]. dpFSf
(self)float: Frcitional pressure drop of the secondary fluid [Pa]. dpFWf
(self)float: Frictional pressure drop of the working fluid [Pa]. dpHeadSf
(self)float: Static head pressure drop of the secondary fluid [Pa]. Assumes the hot flow flows downwards and the cold flow flows upwards. dpHeadWf
(self)float: Static head pressure drop of the working fluid [Pa]. Assumes the hot flow flows downwards and the cold flow flows upwards. dpPortSf
(self)float: Port pressure loss of the secondary fluid [Pa]. dpPortWf
(self)float: Port pressure loss of the working fluid [Pa]. dpSf
(self)float: Total pressure drop of the secondary fluid [Pa]. dpWf
(self)float: Total pressure drop of the working fluid [Pa]. isEvap
(self)bool: True if the Hx is an evaporator; heat transfer from secondary fluid to working fluid. run
(self)size
(self, unicode attr=u, list bounds=[], …)sizeUnits
(self, unicode attr, list bounds)size_L
(self, list unitsBounds)float: Solve for the required length of the Hx to satisfy the heat transfer equations [m]. size_NPlate
(self)int: size for NPlate that requires L to be closest to self.L summary
(self, bool printSummary=True[, …])Returns (and prints) a summary of the component attributes/properties/flows. unitise
(self)Divides the Hx into HxUnits according to divT and divX defined in the configuration parameters, for calculating accurate heat transfer properties. update
(self, dict kwargs)Update (multiple) variables using keyword arguments. weight
(self)float: Approximate total weight of the heat exchanger plates [Kg], calculated as either -
A
¶ float: Heat transfer surface area. A = L * W. Setter preserves the ratio of L/W.
-
ARatioPlate
¶ float: Alias of self.ARatioWall
-
ARatioSf
¶ ARatioSf: ‘double’
-
ARatioWall
¶ ARatioWall: ‘double’
-
ARatioWf
¶ ARatioWf: ‘double’
-
DPortSf
¶ DPortSf: ‘double’
-
DPortWf
¶ DPortWf: ‘double’
-
L
¶ L: ‘double’
-
LPlate
(self) → double¶ float: Total length of the plate; sum(coeffs_LPlate[i] * L**i).
-
LVertPortSf
¶ LVertPortSf: ‘double’
-
LVertPortWf
¶ LVertPortWf: ‘double’
-
NPlate
¶ int: Alias of self.NWall
-
NWall
¶ NWall: ‘int’
-
Rf
¶ float: Average of RfWf & RfSf. Setter makes both equal to desired value.
-
RfSf
¶ RfSf: ‘double’
-
RfWf
¶ RfWf: ‘double’
-
W
¶ W: ‘double’
-
WPlate
(self) → double¶ float: Total width of the plate; sum(coeffs_WPlate[i] * W**i).
-
ambient
¶ ambient: mcycle.bases.flowstate.FlowState
-
coeffs_LPlate
¶ coeffs_LPlate: list
-
coeffs_WPlate
¶ coeffs_WPlate: list
-
coeffs_weight
¶ coeffs_weight: list
-
config
¶ config: mcycle.bases.config.Config
-
copy
(self, dict kwargs={})¶ Return a new copy of a class object. Kwargs (as dict) are passed to update() as a shortcut of simultaneously copying and updating.
Parameters: kwargs : dict, optional
Dictionary of attributes and their updated value.
-
dpAccSf
(self) → double¶ float: Acceleration pressure drop of the secondary fluid [Pa].
-
dpAccWf
(self) → double¶ float: Acceleration pressure drop of the working fluid [Pa].
-
dpFSf
(self) → double¶ float: Frcitional pressure drop of the secondary fluid [Pa].
-
dpFWf
(self) → double¶ float: Frictional pressure drop of the working fluid [Pa].
-
dpHeadSf
(self) → double¶ float: Static head pressure drop of the secondary fluid [Pa]. Assumes the hot flow flows downwards and the cold flow flows upwards.
-
dpHeadWf
(self) → double¶ float: Static head pressure drop of the working fluid [Pa]. Assumes the hot flow flows downwards and the cold flow flows upwards.
-
dpPortSf
(self) → double¶ float: Port pressure loss of the secondary fluid [Pa].
-
dpPortWf
(self) → double¶ float: Port pressure loss of the working fluid [Pa].
-
dpSf
(self) → double¶ float: Total pressure drop of the secondary fluid [Pa].
-
dpWf
(self) → double¶ float: Total pressure drop of the working fluid [Pa].
-
effThermal
¶ effThermal: ‘double’
-
flowInSf
¶ Alias for self.flowsIn[1]
-
flowInWf
¶ Alias for self.flowsIn[0]
-
flowOutSf
¶ Alias for self.flowsOut[1]
-
flowOutWf
¶ Alias for self.flowsOut[0]
-
flowSense
¶ flowSense: unicode
-
flowsIn
¶ flowsIn: list
-
flowsOut
¶ flowsOut: list
-
geomPlateSf
¶ geomPlateSf: mcycle.bases.geom.Geom
-
geomPlateWf
¶ geomPlateWf: mcycle.bases.geom.Geom
-
hSf
¶ hSf: ‘double’
-
hWf
¶ float: Average of hWf_liq, hWf_tp & hWf_vap. Setter makes all equal to desired value.
-
hWf_liq
¶ hWf_liq: ‘double’
-
hWf_sp
¶ float: Average of hWf_liq & hWf_vap. Setter makes both equal to desired value.
-
hWf_tp
¶ hWf_tp: ‘double’
-
hWf_vap
¶ hWf_vap: ‘double’
-
isEvap
(self) → bool¶ bool: True if the Hx is an evaporator; heat transfer from secondary fluid to working fluid.
-
mSf
¶ Alias for self.flowsIn[1].m
-
mWf
¶ Alias for self.flowsIn[0].m
-
name
¶ name: unicode
-
notes
¶ notes: unicode
-
plate
¶ SolidMaterial: Alias of self.wall
-
run
(self) → void¶
-
runBounds
¶ runBounds: ‘double [2]’
-
size
(self, unicode attr=u'', list bounds=[], list unitsBounds=[])¶
-
sizeAttr
¶ sizeAttr: unicode
-
sizeBounds
¶ sizeBounds: list
-
sizeUnits
(self, unicode attr, list bounds) → void¶
-
sizeUnitsBounds
¶ sizeUnitsBounds: list
-
size_L
(self, list unitsBounds) → double¶ float: Solve for the required length of the Hx to satisfy the heat transfer equations [m].
-
size_NPlate
(self) → int¶ int: size for NPlate that requires L to be closest to self.L
-
summary
(self, bool printSummary=True, propertyKeys=u'all', flowKeys=u'none', unicode name=u'', int rstHeading=0)¶ Returns (and prints) a summary of the component attributes/properties/flows.
Parameters: printSummary : bool, optional
If true, the summary string is printed as well as returned. Defaults to True.
propertyKeys : list or str, optional
Keys of component properties to be included. The following strings are also accepted as inputs:
‘all’: all properties in _properties are included,
‘none’: no properties are included.
Defaults to ‘all’.
flowKeys : list or str, optional
Keys of component flows to be included. The following strings are also accepted as inputs:
‘all’: all flows are included,
‘none’: no flows are included.
Defaults to ‘none’.
name : str, optional
Name of instance used in summary heading. If None, the name property of the instance is used. Defaults to None.
rstHeading : int, optional
Level of reStructuredText heading to give the summary, 0 being the top heading. Heading style taken from mcycle.DEFAULTS.RSTHEADINGS. Defaults to 0.
-
tPlate
¶ float: Alias of self.tWall
-
tWall
¶ tWall: ‘double’
-
unitise
(self)¶ Divides the Hx into HxUnits according to divT and divX defined in the configuration parameters, for calculating accurate heat transfer properties.
-
update
(self, dict kwargs) → void¶ Update (multiple) variables using keyword arguments.
-
wall
¶ wall: mcycle.bases.solidmaterial.SolidMaterial
-
weight
(self) → double¶ float: Approximate total weight of the heat exchanger plates [Kg], calculated as either
- sum(coeffs_weight[i] * NPlate**i)*(LPlate*WPlate*tPlate) if coeffs_weight is defined,
- or (LPlate*WPlate - 2(0.25*pi*DPortWf**2 + 0.25*pi*DPortSf**2))*tPlate*plate.rho*NPlate.
HxUnitPlate Class¶
-
class
mcycle.components.hxs.hxunit_plate.
HxUnitPlate
(unicode flowSense=u'counterflow', int NPlate=3, double RfWf=0, double RfSf=0, SolidMaterial plate=None, double tPlate=float(u'nan'), Geom geomPlateWf=None, Geom geomPlateSf=None, double L=float(u'nan'), double W=float(u'nan'), double ARatioWf=1, double ARatioSf=1, double ARatioPlate=1, double effThermal=1.0, FlowState flowInWf=None, FlowState flowInSf=None, FlowState flowOutWf=None, FlowState flowOutSf=None, unicode sizeAttr=u'L', list sizeBounds=[1e-5, 10.0], unicode name=u'HxUnitPlateCorrugated instance', unicode notes=u'No notes/model info.', Config config=Config())¶ Bases:
mcycle.components.hxs.hxunit_basicplanar.HxUnitBasicPlanar
Characterises a basic plate heat exchanger unit consisting of alternating working fluid and secondary fluid flows separated by a solid wall with single-phase or multi-phase working fluid but only single-phase secondary fluid.
Parameters: flowSense : str, optional
Relative direction of the working and secondary flows. May be either “counterflow” or “parallel”. Defaults to “counterflow”.
NPlate : int, optional
Number of parallel plates [-]. Defaults to 3.
RfWf : float, optional
Thermal resistance due to fouling on the working fluid side. Defaults to 0.
RfSf : float, optional
Thermal resistance due to fouling on the secondary fluid side. Defaults to 0.
plate : SolidMaterial, optional
Plate material. Defaults to None.
tPlate : float, optional
Thickness of the plate [m]. Defaults to nan.
L : float, optional
Length of the heat transfer surface area (dimension parallel to flow direction) [m]. Defaults to nan.
W : float, optional
Width of the heat transfer surface area (dimension perpendicular to flow direction) [m]. Defaults to nan.
ARatioWf : float, optional
Multiplier for the heat transfer surface area of the working fluid [-]. Defaults to 1.
ARatioSf : float, optional
Multiplier for the heat transfer surface area of the secondary fluid [-]. Defaults to 1.
ARatioPlate : float, optional
Multiplier for the heat transfer surface area of the plate [-]. Defaults to 1.
beta : float, optional
Plate corrugation chevron angle [deg]. Defaults to nan.
phi : float, optional
Corrugated plate surface enlargement factor; ratio of developed length to projected length. Defaults to 1.2.
pitchCor : float, optional
Plate corrugation pitch [m] (distance between corrugation ‘bumps’). Defaults to nan. .. note: Not to be confused with the plate pitch which is usually defined as the sum of the plate channel spacing and one plate thickness.
effThermal : float, optional
Thermal efficiency [-]. Defaults to 1.
flowInWf : FlowState, optional
Incoming FlowState of the working fluid. Defaults to None.
flowInSf : FlowState, optional
Incoming FlowState of the secondary fluid. Defaults to None.
flowOutWf : FlowState, optional
Outgoing FlowState of the working fluid. Defaults to None.
flowOutSf : FlowState, optional
Outgoing FlowState of the secondary fluid. Defaults to None.
sizeAttr : string, optional
Default attribute used by size(). Defaults to “L”.
sizeBounds : float or list of float, optional
Bracket containing solution of size(). Defaults to [1e-5, 10.0].
- if sizeBounds=[a,b]: scipy.optimize.brentq is used.
- if sizeBounds=a or [a]: scipy.optimize.newton is used.
name : string, optional
Description of object. Defaults to “HxUnitPlateCorrugated instance”.
notes : string, optional
Additional notes on the component such as model numbers. Defaults to “No notes/model info.”.
config : Config, optional
Configuration parameters. Defaults to the default Config object.
kwargs : optional
Arbitrary keyword arguments.
Attributes
A
float: A = L * W. ARatioPlate
alias of self.ARatioWall. ARatioSf
ARatioSf: ‘double’ ARatioWall
ARatioWall: ‘double’ ARatioWf
ARatioWf: ‘double’ L
L: ‘double’ N
int: Number of flow channels, returns average of NWf & NSf. NPlate
alias of self.NWall. NSf
NSf: ‘int’ NWall
NWall: ‘int’ NWf
NWf: ‘int’ RfSf
RfSf: ‘double’ RfWf
RfWf: ‘double’ W
W: ‘double’ ambient
ambient: mcycle.bases.flowstate.FlowState config
config: mcycle.bases.config.Config effThermal
effThermal: ‘double’ flowInSf
Alias for self.flowsIn[1] flowInWf
Alias for self.flowsIn[0] flowOutSf
Alias for self.flowsOut[1] flowOutWf
Alias for self.flowsOut[0] flowSense
flowSense: unicode flowsIn
flowsIn: list flowsOut
flowsOut: list geomPlate
geomPlateSf
geomPlateSf: mcycle.bases.geom.Geom geomPlateWf
geomPlateWf: mcycle.bases.geom.Geom hSf
hSf: ‘double’ hWf
hWf: ‘double’ mSf
Alias for self.flowsIn[1].m mWf
Alias for self.flowsIn[0].m name
name: unicode notes
notes: unicode plate
alias of self.wall. runBounds
runBounds: ‘double [2]’ sizeAttr
sizeAttr: unicode sizeBounds
sizeBounds: list sizeUnitsBounds
sizeUnitsBounds: list tPlate
alias of self.tWall. tWall
tWall: ‘double’ twoPhaseWf
bool: Return True if working fluid is in 2-phase region. wall
wall: mcycle.bases.solidmaterial.SolidMaterial Methods
LMTD
(self)float: Log-mean temperature difference [K] Q
(self)float: Heat transfer from the secondary fluid to the working fluid [W]. U
(self)float: Overall heat transfer coefficient of the unit [W/m^2.K]. copy
(self, dict kwargs={})Return a new copy of a class object. dpSf
(self)dpWf
(self)isEvap
(self)bool: True if the Hx is an evaporator; heat transfer from secondary fluid to working fluid. phaseSf
(self)str: Identifier of secondary fluid phase: ‘liq’: subcooled liquid, ‘vap’: superheated vapour, ‘sp’: unknown single-phase. phaseWf
(self)str: Identifier of working fluid phase: ‘liq’: subcooled liquid, ‘vap’: superheated vapour, ‘tpEvap’ or ‘tpCond’: evaporating or condensing in two-phase liq/vapour region. run
(self)Run the HX from the incoming FlowState, using the epsilon-NTU method to produce an initial solution estimate. size
(self, unicode attr=u, list bounds=[], …)sizeUnits
(self, unicode attr, list bounds)Solves for the value of the nominated component attribute required to return the defined outgoing FlowState. summary
(self, bool printSummary=True[, …])Returns (and prints) a summary of the component attributes/properties/flows. update
(self, dict kwargs)Update (multiple) class variables from a dictionary of keyword arguments. weight
(self)float: Estimate of weight [Kg], based purely on wall properties. -
A
¶ float: A = L * W. Setter preserves the ratio of L/W.
-
ARatioPlate
¶ alias of self.ARatioWall.
-
ARatioSf
¶ ARatioSf: ‘double’
-
ARatioWall
¶ ARatioWall: ‘double’
-
ARatioWf
¶ ARatioWf: ‘double’
-
L
¶ L: ‘double’
-
LMTD
(self) → double¶ float: Log-mean temperature difference [K]
-
N
¶ int: Number of flow channels, returns average of NWf & NSf. Setter makes both equal to desired value.
-
NPlate
¶ alias of self.NWall.
-
NSf
¶ NSf: ‘int’
-
NWall
¶ NWall: ‘int’
-
NWf
¶ NWf: ‘int’
-
Q
(self) → double¶ float: Heat transfer from the secondary fluid to the working fluid [W].
-
RfSf
¶ RfSf: ‘double’
-
RfWf
¶ RfWf: ‘double’
-
U
(self) → double¶ float: Overall heat transfer coefficient of the unit [W/m^2.K].
-
W
¶ W: ‘double’
-
ambient
¶ ambient: mcycle.bases.flowstate.FlowState
-
config
¶ config: mcycle.bases.config.Config
-
copy
(self, dict kwargs={})¶ Return a new copy of a class object. Kwargs (as dict) are passed to update() as a shortcut of simultaneously copying and updating.
Parameters: kwargs : dict, optional
Dictionary of attributes and their updated value.
-
dpSf
(self) → double¶
-
dpWf
(self) → double¶
-
effThermal
¶ effThermal: ‘double’
-
flowInSf
¶ Alias for self.flowsIn[1]
-
flowInWf
¶ Alias for self.flowsIn[0]
-
flowOutSf
¶ Alias for self.flowsOut[1]
-
flowOutWf
¶ Alias for self.flowsOut[0]
-
flowSense
¶ flowSense: unicode
-
flowsIn
¶ flowsIn: list
-
flowsOut
¶ flowsOut: list
-
geomPlateSf
¶ geomPlateSf: mcycle.bases.geom.Geom
-
geomPlateWf
¶ geomPlateWf: mcycle.bases.geom.Geom
-
hSf
¶ hSf: ‘double’
-
hWf
¶ hWf: ‘double’
-
isEvap
(self) → bool¶ bool: True if the Hx is an evaporator; heat transfer from secondary fluid to working fluid.
-
mSf
¶ Alias for self.flowsIn[1].m
-
mWf
¶ Alias for self.flowsIn[0].m
-
name
¶ name: unicode
-
notes
¶ notes: unicode
-
phaseSf
(self) → unicode¶ str: Identifier of secondary fluid phase: ‘liq’: subcooled liquid, ‘vap’: superheated vapour, ‘sp’: unknown single-phase.
-
phaseWf
(self) → unicode¶ str: Identifier of working fluid phase: ‘liq’: subcooled liquid, ‘vap’: superheated vapour, ‘tpEvap’ or ‘tpCond’: evaporating or condensing in two-phase liq/vapour region.
-
plate
¶ alias of self.wall.
-
run
(self) → void¶ Run the HX from the incoming FlowState, using the epsilon-NTU method to produce an initial solution estimate.
-
runBounds
¶ runBounds: ‘double [2]’
-
size
(self, unicode attr=u'', list bounds=[], list unitsBounds=[])¶
-
sizeAttr
¶ sizeAttr: unicode
-
sizeBounds
¶ sizeBounds: list
-
sizeUnits
(self, unicode attr, list bounds) → void¶ Solves for the value of the nominated component attribute required to return the defined outgoing FlowState.
Parameters: attr : string, optional
Attribute to be solved. If None, self.sizeAttr is used. Defaults to None.
bounds : float or list of float, optional
Bracket containing solution of size(). If None, self.sizeBounds is used. Defaults to None.
- if bounds=[a,b]: scipy.optimize.brentq is used.
- if bounds=a or [a]: scipy.optimize.newton is used.
-
sizeUnitsBounds
¶ sizeUnitsBounds: list
-
summary
(self, bool printSummary=True, propertyKeys=u'all', flowKeys=u'none', unicode name=u'', int rstHeading=0)¶ Returns (and prints) a summary of the component attributes/properties/flows.
Parameters: printSummary : bool, optional
If true, the summary string is printed as well as returned. Defaults to True.
propertyKeys : list or str, optional
Keys of component properties to be included. The following strings are also accepted as inputs:
‘all’: all properties in _properties are included,
‘none’: no properties are included.
Defaults to ‘all’.
flowKeys : list or str, optional
Keys of component flows to be included. The following strings are also accepted as inputs:
‘all’: all flows are included,
‘none’: no flows are included.
Defaults to ‘none’.
name : str, optional
Name of instance used in summary heading. If None, the name property of the instance is used. Defaults to None.
rstHeading : int, optional
Level of reStructuredText heading to give the summary, 0 being the top heading. Heading style taken from mcycle.DEFAULTS.RSTHEADINGS. Defaults to 0.
-
tPlate
¶ alias of self.tWall.
-
tWall
¶ tWall: ‘double’
-
twoPhaseWf
¶ bool: Return True if working fluid is in 2-phase region.
-
update
(self, dict kwargs) → void¶ Update (multiple) class variables from a dictionary of keyword arguments.
Parameters: kwargs : dict
Dictionary of attributes and their updated value; kwargs={‘key’: value}.
-
wall
¶ wall: mcycle.bases.solidmaterial.SolidMaterial
-
weight
(self) → double¶ float: Estimate of weight [Kg], based purely on wall properties.