SIUnit createSITime() { return SIUnit(SIExpnt(0,0,1)); }
SIUnit createSIThermalConductance() { return SIUnit(SIExpnt(1,0,-3,-1),0,"W/m^2*K"); }
SIUnit createSIHeatCapacity() { return SIUnit(SIExpnt(1,0,-2,-1),0,"J/m^2*K"); }
SIUnit createSIEnergyUseIntensity() { return SIUnit(SIExpnt(1,0,-2),0,"J/m^2"); }
SIUnit createSIPowerPerPerson() { return SIUnit(SIExpnt(1,2,-3,0,0,0,0,0,0,-1),0,"W/person"); }
SIUnit createSIInductance() { return SIUnit(SIExpnt(1,2,-2,0,-2),0,"H"); }
SIUnit createSIIlluminance() { return SIUnit(SIExpnt(0,-2,0,0,0,1,0,0,1),0,"lux"); }
SIUnit createSIPeople() { return SIUnit(SIExpnt(0,0,0,0,0,0,0,0,0,1)); }
SIUnit createSICycle() { return SIUnit(SIExpnt(0,0,0,0,0,0,0,0,0,0,1)); }
SIUnit createSIAmountOfSubstance() { return SIUnit(SIExpnt(0,0,0,0,0,0,1)); }
SIUnit createSISolidAngle() { return SIUnit(SIExpnt(0,0,0,0,0,0,0,0,1)); }
SIUnit createSILuminousIntensity() { return SIUnit(SIExpnt(0,0,0,0,0,1)); }
SIUnit createSIElectricCurrent() { return SIUnit(SIExpnt(0,0,0,0,1)); }
SIUnit createSITemperature() { return SIUnit(SIExpnt(0,0,0,1)); }
SIUnit createSIMagneticFlux() { return SIUnit(SIExpnt(1,2,-2,0,-1),0,"Wb"); }
SIUnit createSIForce() { return SIUnit(SIExpnt(1,1,-2),0,"N"); }
SIUnit createSIMagneticFieldStrength() { return SIUnit(SIExpnt(1,0,-2,0,-1),0,"T"); }
SIUnit createSIEnergy() { return SIUnit(SIExpnt(1,2,-2),0,"J"); }
SIUnit createSILuminousFlux() { return SIUnit(SIExpnt(0,0,0,0,0,1,0,0,1),0,"lm"); }
SIUnit createSIPower() { return SIUnit(SIExpnt(1,2,-3),0,"W"); }
SIUnit createSIFrequency() { return SIUnit(SIExpnt(0,0,-1,0,0,0,0,0,0,0,1),0,"Hz"); }
SIUnit createSIElectricCharge() { return SIUnit(SIExpnt(0,0,1,0,1),0,"C"); }
SIUnit createSIPowerDensity() { return SIUnit(SIExpnt(1,0,-3),0,"W/m^2"); }
SIUnit createSIElectricalPotential() { return SIUnit(SIExpnt(1,2,-3,0,-1),0,"V"); }
SIUnit createSIPressure() { return SIUnit(SIExpnt(1,-1,-2),0,"Pa"); }
SIUnit createSIElectricCapacitance() { return SIUnit(SIExpnt(-1,-2,4,0,2),0,"F"); }
SIUnit createSIThermalResistance() { return SIUnit(SIExpnt(-1,0,3,1),0,"m^2*K/W"); }
SIUnit createSIElectricResistance() { return SIUnit(SIExpnt(1,2,-3,0,-2),0,"ohm"); }
boost::optional<Unit> ScheduleTypeLimits::units(std::string unitType, bool returnIP) { boost::to_lower(unitType); OptionalUnit result; if (unitType.empty() || (unitType == "dimensionless") || (unitType == "availability") || (unitType == "controlmode")) { if (returnIP) { result = IPUnit(); } else { result = SIUnit(); } return result; } char firstLetter = unitType[0]; switch (firstLetter) { case 'a' : { if (unitType == "activitylevel") { result = (createSIPower() / createSIPeople()); } else if (unitType == "angle") { result = createIPAngle(); } break; } case 'c' : { if (unitType == "capacity") { if (returnIP) { result = BTUUnit(BTUExpnt(1,0,-1)); } else { result = createSIPower(); } } else if (unitType == "clothinginsulation") { result = Unit(); result->setBaseUnitExponent("clo",1); } else if (unitType == "convectioncoefficient") { if (returnIP) { result = BTUUnit(BTUExpnt(1,-2,-1,-1)); } else { result = createSIThermalConductance(); } } break; } case 'd' : { if (unitType == "deltatemperature") { if (returnIP) { result = createFahrenheitTemperature(); result->cast<TemperatureUnit>().setAsRelative(); } else { result = createCelsiusTemperature(); result->cast<TemperatureUnit>().setAsRelative(); } } break; } case 'l' : { if (unitType == "linearpowerdensity") { if (returnIP) { result = (createIPPower() / createIPLength()); } else { result = (createSIPower() / createSILength()); } } break; } case 'm' : { if (unitType == "massflowrate") { if (returnIP) { result = IPUnit(IPExpnt(1,0,-1)); } else { result = SIUnit(SIExpnt(1,0,-1)); } } break; } case 'p' : { if (unitType == "percent") { result = Unit(); result->setBaseUnitExponent("%",1); } else if (unitType == "power") { result = createSIPower(); } else if (unitType == "precipitationrate") { if (returnIP) { result = BTUUnit(BTUExpnt(0,1,-1)); } else { result = WhUnit(WhExpnt(0,-1,1)); } } else if (unitType == "pressure") { if (returnIP) { result = createIPPressure(); } else { result = createSIPressure(); } } break; } case 'r' : { if (unitType == "rotationsperminute") { result = createCFMFrequency(); } break; } case 's' : { if (unitType == "solarenergy") { result = WhUnit(WhExpnt(1,1,-2)); } break; } case 't' : { if (unitType == "temperature") { if (returnIP) { result = createFahrenheitTemperature(); } else { result = createCelsiusTemperature(); } } break; } case 'v' : { if (unitType == "velocity") { if (returnIP) { result = CFMUnit(CFMExpnt(1,-1)); } else { result = SIUnit(SIExpnt(0,1,-1)); } } if (unitType == "volumetricflowrate") { if (returnIP) { result = IPUnit(IPExpnt(0,3,-1)); } else { result = SIUnit(SIExpnt(0,3,-1)); } } break; } } return result; }
SIUnit createSILength() { return SIUnit(SIExpnt(0,1)); }