Buildings.Fluid.Chillers.BaseClasses
Package with base classes for Buildings.Fluid.Chillers
Information
This package contains base classes that are used to construct the models in Buildings.Fluid.Chillers.
Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).
Package Content
Name | Description |
---|---|
Carnot | |
PartialCarnot_T | Partial model for chiller with performance curve adjusted based on Carnot efficiency |
PartialCarnot_y | Partial chiller model with performance curve adjusted based on Carnot efficiency |
PartialElectric | Partial model for electric chiller based on the model in DOE-2, CoolTools and EnergyPlus |
warnIfPerformanceOutOfBounds | Function that checks the performance and writes a warning if it is outside of 0.9 to 1.1 |
Buildings.Fluid.Chillers.BaseClasses.Carnot
Information
This is the base class for the Carnot chiller and the Carnot heat pump whose coefficient of performance COP changes with temperatures in the same way as the Carnot efficiency changes.
The model allows to either specify the Carnot effectivness ηCarnot,0, or a COP0 at the nominal conditions, together with the evaporator temperature Teva,0 and the condenser temperature Tcon,0, in which case the model computes the Carnot effectivness as
ηCarnot,0 = COP0 ⁄ (Tuse,0 ⁄ (Tcon,0-Teva,0)),
where Tuse is the temperature of the the useful heat, e.g., the evaporator temperature for a chiller or the condenser temperature for a heat pump.
The COP is computed as the product
COP = ηCarnot,0 COPCarnot ηPL,
where COPCarnot is the Carnot efficiency and ηPL is the part load efficiency, expressed using a polynomial. This polynomial has the form
ηPL = a1 + a2 y + a3 y2 + ...
where y ∈ [0, 1] is
either the part load for cooling in case of a chiller, or the part load of heating in
case of a heat pump, and the coefficients ai
are declared by the parameter a
.
Implementation
To make this base class applicable to chiller or heat pumps, it uses
the boolean constant COP_is_for_cooling
.
Depending on its value, the equations for the coefficient of performance
and the part load ratio are set up.
Extends from Buildings.Fluid.Interfaces.PartialFourPortInterface (Partial model transporting fluid between two ports without storing mass or energy).
Parameters
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | QCon_flow_nominal/cp1_defaul... | Nominal mass flow rate [kg/s] |
MassFlowRate | m2_flow_nominal | QEva_flow_nominal/cp2_defaul... | Nominal mass flow rate [kg/s] |
HeatFlowRate | QEva_flow_nominal | Nominal cooling heat flow rate (QEva_flow_nominal < 0) [W] | |
HeatFlowRate | QCon_flow_nominal | Nominal heating flow rate [W] | |
TemperatureDifference | dTEva_nominal | -10 | Temperature difference evaporator outlet-inlet [K] |
TemperatureDifference | dTCon_nominal | 10 | Temperature difference condenser outlet-inlet [K] |
Pressure | dp1_nominal | Pressure difference over condenser [Pa] | |
Pressure | dp2_nominal | Pressure difference over evaporator [Pa] | |
Efficiency | |||
Boolean | use_eta_Carnot_nominal | true | Set to true to use Carnot effectiveness etaCarnot_nominal rather than COP_nominal |
Real | etaCarnot_nominal | COP_nominal/(TUse_nominal/(T... | Carnot effectiveness (=COP/COP_Carnot) used if use_eta_Carnot_nominal = true [1] |
Real | COP_nominal | etaCarnot_nominal*TUse_nomin... | Coefficient of performance at TEva_nominal and TCon_nominal, used if use_eta_Carnot_nominal = false [1] |
Temperature | TCon_nominal | 303.15 | Condenser temperature used to compute COP_nominal if use_eta_Carnot_nominal=false [K] |
Temperature | TEva_nominal | 278.15 | Evaporator temperature used to compute COP_nominal if use_eta_Carnot_nominal=false [K] |
Real | a[:] | {1} | Coefficients for efficiency curve (need p(a=a, yPL=1)=1) |
Assumptions | |||
Boolean | allowFlowReversal1 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
Boolean | allowFlowReversal2 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
Advanced | |||
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Condenser | |||
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar [1] |
Evaporator | |||
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar [1] |
Dynamics | |||
Condenser | |||
Time | tau1 | 60 | Time constant at nominal flow rate (used if energyDynamics1 <> Modelica.Fluid.Types.Dynamics.SteadyState) [s] |
Temperature | T1_start | Medium1.T_default | Initial or guess value of set point [K] |
Evaporator | |||
Time | tau2 | 60 | Time constant at nominal flow rate (used if energyDynamics2 <> Modelica.Fluid.Types.Dynamics.SteadyState) [s] |
Temperature | T2_start | Medium2.T_default | Initial or guess value of set point [K] |
Evaporator and condenser | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Type of energy balance: dynamic (3 initialization options) or steady state |
Connectors
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
output RealOutput | QCon_flow | Actual heating heat flow rate added to fluid 1 [W] |
output RealOutput | P | Electric power consumed by compressor [W] |
output RealOutput | QEva_flow | Actual cooling heat flow rate removed from fluid 2 [W] |
Modelica definition
Buildings.Fluid.Chillers.BaseClasses.PartialCarnot_T
Partial model for chiller with performance curve adjusted based on Carnot efficiency
Information
This is a partial model of a chiller whose coefficient of performance (COP) changes with temperatures in the same way as the Carnot efficiency changes. This base class is used for the Carnot chiller and Carnot heat pump that uses the compressor part load ratio as the control signal.
Extends from Carnot.
Parameters
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | QCon_flow_nominal/cp1_defaul... | Nominal mass flow rate [kg/s] |
MassFlowRate | m2_flow_nominal | QEva_flow_nominal/cp2_defaul... | Nominal mass flow rate [kg/s] |
HeatFlowRate | QEva_flow_nominal | Nominal cooling heat flow rate (QEva_flow_nominal < 0) [W] | |
HeatFlowRate | QCon_flow_nominal | Nominal heating flow rate [W] | |
TemperatureDifference | dTEva_nominal | -10 | Temperature difference evaporator outlet-inlet [K] |
TemperatureDifference | dTCon_nominal | 10 | Temperature difference condenser outlet-inlet [K] |
Pressure | dp1_nominal | Pressure difference over condenser [Pa] | |
Pressure | dp2_nominal | Pressure difference over evaporator [Pa] | |
Efficiency | |||
Boolean | use_eta_Carnot_nominal | true | Set to true to use Carnot effectiveness etaCarnot_nominal rather than COP_nominal |
Real | etaCarnot_nominal | COP_nominal/(TUse_nominal/(T... | Carnot effectiveness (=COP/COP_Carnot) used if use_eta_Carnot_nominal = true [1] |
Real | COP_nominal | etaCarnot_nominal*TUse_nomin... | Coefficient of performance at TEva_nominal and TCon_nominal, used if use_eta_Carnot_nominal = false [1] |
Temperature | TCon_nominal | 303.15 | Condenser temperature used to compute COP_nominal if use_eta_Carnot_nominal=false [K] |
Temperature | TEva_nominal | 278.15 | Evaporator temperature used to compute COP_nominal if use_eta_Carnot_nominal=false [K] |
Real | a[:] | {1} | Coefficients for efficiency curve (need p(a=a, yPL=1)=1) |
Assumptions | |||
Boolean | allowFlowReversal1 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
Boolean | allowFlowReversal2 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
Advanced | |||
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Condenser | |||
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar [1] |
Evaporator | |||
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar [1] |
Dynamics | |||
Condenser | |||
Time | tau1 | 60 | Time constant at nominal flow rate (used if energyDynamics1 <> Modelica.Fluid.Types.Dynamics.SteadyState) [s] |
Temperature | T1_start | Medium1.T_default | Initial or guess value of set point [K] |
Evaporator | |||
Time | tau2 | 60 | Time constant at nominal flow rate (used if energyDynamics2 <> Modelica.Fluid.Types.Dynamics.SteadyState) [s] |
Temperature | T2_start | Medium2.T_default | Initial or guess value of set point [K] |
Evaporator and condenser | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Type of energy balance: dynamic (3 initialization options) or steady state |
Connectors
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
output RealOutput | QCon_flow | Actual heating heat flow rate added to fluid 1 [W] |
output RealOutput | P | Electric power consumed by compressor [W] |
output RealOutput | QEva_flow | Actual cooling heat flow rate removed from fluid 2 [W] |
Modelica definition
Buildings.Fluid.Chillers.BaseClasses.PartialCarnot_y
Partial chiller model with performance curve adjusted based on Carnot efficiency
Information
This is a partial model of a chiller whose coefficient of performance (COP) changes with temperatures in the same way as the Carnot efficiency changes. This base class is used for the Carnot chiller and Carnot heat pump that uses the leaving fluid temperature as the control signal.
Extends from Carnot.
Parameters
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | QCon_flow_nominal/cp1_defaul... | Nominal mass flow rate [kg/s] |
MassFlowRate | m2_flow_nominal | QEva_flow_nominal/cp2_defaul... | Nominal mass flow rate [kg/s] |
HeatFlowRate | QEva_flow_nominal | if COP_is_for_cooling then -... | Nominal cooling heat flow rate (QEva_flow_nominal < 0) [W] |
HeatFlowRate | QCon_flow_nominal | P_nominal - QEva_flow_nominal | Nominal heating flow rate [W] |
TemperatureDifference | dTEva_nominal | -10 | Temperature difference evaporator outlet-inlet [K] |
TemperatureDifference | dTCon_nominal | 10 | Temperature difference condenser outlet-inlet [K] |
Pressure | dp1_nominal | Pressure difference over condenser [Pa] | |
Pressure | dp2_nominal | Pressure difference over evaporator [Pa] | |
Power | P_nominal | Nominal compressor power (at y=1) [W] | |
Efficiency | |||
Boolean | use_eta_Carnot_nominal | true | Set to true to use Carnot effectiveness etaCarnot_nominal rather than COP_nominal |
Real | etaCarnot_nominal | COP_nominal/(TUse_nominal/(T... | Carnot effectiveness (=COP/COP_Carnot) used if use_eta_Carnot_nominal = true [1] |
Real | COP_nominal | etaCarnot_nominal*TUse_nomin... | Coefficient of performance at TEva_nominal and TCon_nominal, used if use_eta_Carnot_nominal = false [1] |
Temperature | TCon_nominal | 303.15 | Condenser temperature used to compute COP_nominal if use_eta_Carnot_nominal=false [K] |
Temperature | TEva_nominal | 278.15 | Evaporator temperature used to compute COP_nominal if use_eta_Carnot_nominal=false [K] |
Real | a[:] | {1} | Coefficients for efficiency curve (need p(a=a, yPL=1)=1) |
Assumptions | |||
Boolean | allowFlowReversal1 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
Boolean | allowFlowReversal2 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
Advanced | |||
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Condenser | |||
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar [1] |
Evaporator | |||
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar [1] |
Dynamics | |||
Condenser | |||
Time | tau1 | 60 | Time constant at nominal flow rate (used if energyDynamics1 <> Modelica.Fluid.Types.Dynamics.SteadyState) [s] |
Temperature | T1_start | Medium1.T_default | Initial or guess value of set point [K] |
Evaporator | |||
Time | tau2 | 60 | Time constant at nominal flow rate (used if energyDynamics2 <> Modelica.Fluid.Types.Dynamics.SteadyState) [s] |
Temperature | T2_start | Medium2.T_default | Initial or guess value of set point [K] |
Evaporator and condenser | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Type of energy balance: dynamic (3 initialization options) or steady state |
Connectors
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
output RealOutput | QCon_flow | Actual heating heat flow rate added to fluid 1 [W] |
output RealOutput | P | Electric power consumed by compressor [W] |
output RealOutput | QEva_flow | Actual cooling heat flow rate removed from fluid 2 [W] |
input RealInput | y | Part load ratio of compressor [1] |
Modelica definition
Buildings.Fluid.Chillers.BaseClasses.PartialElectric
Partial model for electric chiller based on the model in DOE-2, CoolTools and EnergyPlus
Information
Base class for model of an electric chiller, based on the DOE-2.1 chiller model and the
CoolTools chiller model that are implemented in EnergyPlus as the models
Chiller:Electric:EIR
and Chiller:Electric:ReformulatedEIR
.
The model takes as an input the set point for the leaving chilled water temperature, which is met if the chiller has sufficient capacity. Thus, the model has a built-in, ideal temperature control. The model has three tests on the part load ratio and the cycling ratio:
-
The test
PLR1 =min(QEva_flow_set/QEva_flow_ava, PLRMax);
ensures that the chiller capacity does not exceed the chiller capacity specified by the parameterPLRMax
. -
The test
CR = min(PLR1/per.PRLMin, 1.0);
computes a cycling ratio. This ratio expresses the fraction of time that a chiller would run if it were to cycle because its load is smaller than the minimal load at which it can operature. Notice that this model does continuously operature even if the part load ratio is below the minimum part load ratio. Its leaving evaporator and condenser temperature can therefore be considered as an average temperature between the modes where the compressor is off and on. -
The test
PLR2 = max(PLRMinUnl, PLR1);
computes the part load ratio of the compressor. The assumption is that for a part load ratio belowPLRMinUnl
, the chiller uses hot gas bypass to reduce the capacity, while the compressor power draw does not change.
The electric power only contains the power for the compressor, but not any power for pumps or fans.
Implementation
Models that extend from this base class need to provide three functions to predict capacity and power consumption:
-
A function to predict cooling capacity. The function value needs
to be assigned to
capFunT
. -
A function to predict the power input as a function of temperature.
The function value needs to be assigned to
EIRFunT
. -
A function to predict the power input as a function of the part load ratio.
The function value needs to be assigned to
EIRFunPLR
.
Extends from Buildings.Fluid.Interfaces.FourPortHeatMassExchanger (Model transporting two fluid streams between four ports with storing mass or energy).
Parameters
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | mCon_flow_nominal | Nominal mass flow rate [kg/s] |
MassFlowRate | m2_flow_nominal | mEva_flow_nominal | Nominal mass flow rate [kg/s] |
PressureDifference | dp1_nominal | Pressure difference [Pa] | |
PressureDifference | dp2_nominal | Pressure difference [Pa] | |
Assumptions | |||
Boolean | allowFlowReversal1 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
Boolean | allowFlowReversal2 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
Advanced | |||
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Medium 1 | |||
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Medium 2 | |||
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Dynamics | |||
Nominal condition | |||
Time | tau1 | 30 | Time constant at nominal flow [s] |
Time | tau2 | 30 | Time constant at nominal flow [s] |
Equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Type of energy balance: dynamic (3 initialization options) or steady state |
Dynamics | massDynamics | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state |
Initialization | |||
Medium 1 | |||
AbsolutePressure | p1_start | Medium1.p_default | Start value of pressure [Pa] |
Temperature | T1_start | 273.15 + 25 | Start value of temperature [K] |
MassFraction | X1_start[Medium1.nX] | Medium1.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C1_start[Medium1.nC] | fill(0, Medium1.nC) | Start value of trace substances |
ExtraProperty | C1_nominal[Medium1.nC] | fill(1E-2, Medium1.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
Medium 2 | |||
AbsolutePressure | p2_start | Medium2.p_default | Start value of pressure [Pa] |
Temperature | T2_start | 273.15 + 5 | Start value of temperature [K] |
MassFraction | X2_start[Medium2.nX] | Medium2.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C2_start[Medium2.nC] | fill(0, Medium2.nC) | Start value of trace substances |
ExtraProperty | C2_nominal[Medium2.nC] | fill(1E-2, Medium2.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
Connectors
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
input BooleanInput | on | Set to true to enable compressor, or false to disable compressor |
input RealInput | TSet | Set point for leaving chilled water temperature [K] |
output RealOutput | P | Electric power consumed by compressor [W] |
Modelica definition
Buildings.Fluid.Chillers.BaseClasses.warnIfPerformanceOutOfBounds
Function that checks the performance and writes a warning if it is outside of 0.9 to 1.1
Information
This function checks if the numeric argument is outside of the interval 0.9 to 1.1. If this is the case, the function writes a warning.
Inputs
Type | Name | Default | Description |
---|---|---|---|
Real | x | Argument to be checked | |
String | msg | String to be added to warning message | |
String | curveName | Name of the curve that was tested |
Outputs
Type | Name | Description |
---|---|---|
Integer | retVal | 0 if x is inside bounds, -1 if it is below bounds, or +1 if it is above bounds |