CoolProp.Plots.SimpleCycles module

class CoolProp.Plots.SimpleCycles.BaseCycle(fluid_ref, graph_type, unit_system='EUR', **kwargs)

Bases: CoolProp.Plots.Common.BasePlot

A simple thermodynamic cycle, should not be used on its own.

Initialises a simple cycle calculator

Parameters:
  • fluid_ref (str, CoolProp.AbstractState) – The fluid property provider, either a subclass of CoolProp.AbstractState or a string that can be used to generate a CoolProp.AbstractState instance via Common.process_fluid_state().
  • graph_type (string) – The graph type to be plotted, like “PH” or “TS”
  • unit_system (string, ['EUR','KSI','SI']) – Select the units used for the plotting. ‘EUR’ is bar, kJ, C; ‘KSI’ is kPa, kJ, K; ‘SI’ is Pa, J, K

:param for more properties, see CoolProp.Plots.Common.BasePlot.:

PROPERTIES = {19: 'temperature', 36: 'specific entropy', 34: 'density', 35: 'specific enthalpy', 20: 'pressure'}
STATECHANGE = None

A list of lists of tuples that defines how the state transitions behave for the corresponding entry in BaseCycle.STATECOUNT

STATECOUNT = 0

A list of accepted numbers of states

cycle_states
fill_states(objs=None)

Try to populate all fields in the state objects

get_state_change(index)
get_state_changes()
state_change(in1, in2, start, ty1='lin', ty2='lin')

Calculates a state change defined by the properties in1 and in2

Uses self.states[start] and self.states[start+1] (or self.states[0]) to define the process and interpolates between the values.

Parameters:
  • in1 (int) – The index of the first defined property.
  • in2 (int) – The index of the second defined property.
  • start (int) – The index of the start state.
  • ty1 (str) – The key that defines the type of state change for in1, lin or log.
  • ty2 (str) – The key that defines the type of state change for in2, lin or log.
Returns:

a list of the length of self.steps+1 that describes the process. It includes start and end state.

Return type:

scalar or array_like

steps
system
valid_states()

Check the formats of BaseCycle.STATECOUNT and BaseCycle.STATECHANGE

CoolProp.Plots.SimpleCycles.EconomizedCycle(Ref, Qin, Te, Tc, DTsh, DTsc, eta_oi, f_p, Ti, Ts_Ph='Ts', skipPlot=False, axis=None, **kwargs)

This function plots an economized cycle, on the current axis, or that given by the optional parameter axis

Required parameters:

  • Ref : Refrigerant [string]
  • Qin : Cooling capacity [W]
  • Te : Evap Temperature [K]
  • Tc : Condensing Temperature [K]
  • DTsh : Evaporator outlet superheat [K]
  • DTsc : Condenser outlet subcooling [K]
  • eta_oi : Adiabatic efficiency of compressor (no units) in range [0,1]
  • f_p : fraction of compressor power lost as ambient heat transfer in range [0,1]
  • Ti : Saturation temperature corresponding to intermediate pressure [K]

Optional parameters:

  • Ts_Ph : ‘Ts’ for a Temperature-Entropy plot, ‘Ph’ for a Pressure-Enthalpy
  • axis : An axis to use instead of the active axis
  • skipPlot : If True, won’t actually plot anything, just print COP
CoolProp.Plots.SimpleCycles.SimpleCycle(Ref, Te, Tc, DTsh, DTsc, eta_a, Ts_Ph='Ph', **kwargs)

This function plots a simple four-component cycle, on the current axis, or that given by the optional parameter axis

Required parameters:

  • Ref : A string for the refrigerant
  • Te : Evap Temperature in K
  • Tc : Condensing Temperature in K
  • DTsh : Evaporator outlet superheat in K
  • DTsc : Condenser outlet subcooling in K
  • eta_a : Adiabatic efficiency of compressor (no units) in range [0,1]

Optional parameters:

  • Ts_Ph : ‘Ts’ for a Temperature-Entropy plot, ‘Ph’ for a Pressure-Enthalpy
  • axis : An axis to use instead of the active axis
  • skipPlot : If True, won’t actually plot anything, just print COP
class CoolProp.Plots.SimpleCycles.StateContainer(unit_system=<CoolProp.Plots.Common.SIunits object>)

Bases: object

A collection of values for the main properties, built to mixin with CoolProp.Plots.Common.PropertyDict

Examples

This container has overloaded accessor methods. Just pick your own flavour or mix the styles as you like:

>>> from __future__ import print_function
>>> import CoolProp
>>> from CoolProp.Plots.SimpleCycles import StateContainer
>>> T0 = 300.000; p0 = 200000.000; h0 = 112745.749; s0 = 393.035
>>> cycle_states = StateContainer()
>>> cycle_states[0,'H'] = h0
>>> cycle_states[0]['S'] = s0
>>> cycle_states[0][CoolProp.iP] = p0
>>> cycle_states[0,CoolProp.iT] = T0
>>> cycle_states[1,"T"] = 300.064
>>> print(cycle_states)
Stored State Points:
state        T (K)       p (Pa)    d (kg/m3)     h (J/kg)   s (J/kg/K)
    0      300.000   200000.000            -   112745.749      393.035
    1      300.064            -            -            -            -
D
H
P
Q
S
T
U
append(new)
extend(new)
get_point(index, SI=True)
points
set_point(index, value, SI=True)
units
class CoolProp.Plots.SimpleCycles.StatePoint

Bases: CoolProp.Plots.Common.PropertyDict

A simple fixed dimension dict represented by an object with attributes

ROUND_DECIMALS = {34: 5, 35: 5, 36: 5, 40: 5, 19: 5, 20: 2, 21: 5}
CoolProp.Plots.SimpleCycles.TwoStage(Ref, Q, Te, Tc, DTsh, DTsc, eta_oi, f_p, Tsat_ic, DTsh_ic, Ts_Ph='Ph', prints=False, skipPlot=False, axis=None, **kwargs)

This function plots a two-stage cycle, on the current axis, or that given by the optional parameter axis

Required parameters:

  • Ref : Refrigerant [string]
  • Q : Cooling capacity [W]
  • Te : Evap Temperature [K]
  • Tc : Condensing Temperature [K]
  • DTsh : Evaporator outlet superheat [K]
  • DTsc : Condenser outlet subcooling [K]
  • eta_oi : Adiabatic efficiency of compressor (no units) in range [0,1]
  • f_p : fraction of compressor power lost as ambient heat transfer in range [0,1]
  • Tsat_ic : Saturation temperature corresponding to intermediate pressure [K]
  • DTsh_ic : Superheating at outlet of intermediate stage [K]

Optional parameters:

  • Ts_Ph : ‘Ts’ for a Temperature-Entropy plot, ‘Ph’ for a Pressure-Enthalpy
  • prints : True to print out some values
  • axis : An axis to use instead of the active axis
  • skipPlot : If True, won’t actually plot anything, just print COP