feat: Begins hvac system performance
This commit is contained in:
87
Sources/Routes/HVACSystemPerformance.swift
Normal file
87
Sources/Routes/HVACSystemPerformance.swift
Normal file
@@ -0,0 +1,87 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user