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.