88 lines
2.5 KiB
Swift
88 lines
2.5 KiB
Swift
import PsychrometricClient
|
|
|
|
public enum HVACSystemPerformance {
|
|
|
|
public struct Request: Codable, Equatable, Sendable {
|
|
|
|
public let altitude: Double?
|
|
public let airflow: Double
|
|
public let returnAirTemperature: Double
|
|
public let returnAirHumidity: Double
|
|
public let supplyAirTemperature: Double
|
|
public let supplyAirHumidity: Double
|
|
public let systemSize: Double
|
|
|
|
public init(
|
|
altitude: Double? = nil,
|
|
airflow: Double,
|
|
returnAirTemperature: Double,
|
|
returnAirHumidity: Double,
|
|
supplyAirTemperature: Double,
|
|
supplyAirHumidity: Double,
|
|
systemSize: Double
|
|
) {
|
|
self.altitude = altitude
|
|
self.airflow = airflow
|
|
self.returnAirTemperature = returnAirTemperature
|
|
self.returnAirHumidity = returnAirHumidity
|
|
self.supplyAirTemperature = supplyAirTemperature
|
|
self.supplyAirHumidity = supplyAirHumidity
|
|
self.systemSize = systemSize
|
|
}
|
|
}
|
|
|
|
public struct Response: Codable, Equatable, Sendable {
|
|
|
|
public let returnAirProperties: PsychrometricProperties
|
|
public let supplyAirProperties: PsychrometricProperties
|
|
public let capacity: Capacity
|
|
public let systemMetrics: SystemMetrics
|
|
|
|
public init(
|
|
returnAirProperties: PsychrometricProperties,
|
|
supplyAirProperties: PsychrometricProperties,
|
|
capacity: HVACSystemPerformance.Capacity,
|
|
systemMetrics: HVACSystemPerformance.SystemMetrics
|
|
) {
|
|
self.returnAirProperties = returnAirProperties
|
|
self.supplyAirProperties = supplyAirProperties
|
|
self.capacity = capacity
|
|
self.systemMetrics = systemMetrics
|
|
}
|
|
}
|
|
|
|
public struct Capacity: Codable, Equatable, Sendable {
|
|
|
|
public let total: Double
|
|
public let sensible: Double
|
|
public let latent: Double
|
|
public var shr: Double { sensible / total }
|
|
|
|
public init(total: Double, sensible: Double, latent: Double) {
|
|
self.total = total
|
|
self.sensible = sensible
|
|
self.latent = latent
|
|
}
|
|
}
|
|
|
|
public struct SystemMetrics: Codable, Equatable, Sendable {
|
|
|
|
public let cfmPerTon: Double
|
|
public let targetTemperatureSplit: Double
|
|
public let actualTemperatureSplit: Double
|
|
public let condensationRate: Double
|
|
|
|
public init(
|
|
cfmPerTon: Double,
|
|
targetTemperatureSplit: Double,
|
|
actualTemperatureSplit: Double,
|
|
condensationRate: Double
|
|
) {
|
|
self.cfmPerTon = cfmPerTon
|
|
self.targetTemperatureSplit = targetTemperatureSplit
|
|
self.actualTemperatureSplit = actualTemperatureSplit
|
|
self.condensationRate = condensationRate
|
|
}
|
|
}
|
|
}
|