103 lines
2.6 KiB
Swift
103 lines
2.6 KiB
Swift
// A container / namespace for different capacity containers.
|
|
public enum Capacity {
|
|
|
|
public struct Cooling: Codable, Equatable, Sendable {
|
|
|
|
public let total: Int
|
|
public let sensible: Int
|
|
public var latent: Int
|
|
|
|
public init(
|
|
total: Int,
|
|
sensible: Int,
|
|
latent: Int? = nil
|
|
) {
|
|
self.total = total
|
|
self.sensible = sensible
|
|
self.latent = latent ?? total - sensible
|
|
}
|
|
}
|
|
|
|
public struct Heating: Codable, Equatable, Sendable {
|
|
public let total: Int
|
|
|
|
public init(total: Int) {
|
|
self.total = total
|
|
}
|
|
}
|
|
|
|
public struct HeatPumpHeating: Codable, Equatable, Sendable {
|
|
|
|
public let at47: Int
|
|
public let at17: Int
|
|
|
|
public init(at47: Int, at17: Int) {
|
|
self.at47 = at47
|
|
self.at17 = at17
|
|
}
|
|
}
|
|
|
|
// TODO: Remove.
|
|
public struct ManufacturersCooling: Codable, Equatable, Sendable {
|
|
|
|
public let airflow: Int
|
|
public let capacity: Container
|
|
public let otherCapacity: Container?
|
|
|
|
public init(
|
|
airflow: Int,
|
|
capacity: Capacity.ManufacturersCooling.Container,
|
|
otherCapacity: Capacity.ManufacturersCooling.Container? = nil
|
|
) {
|
|
self.airflow = airflow
|
|
self.capacity = capacity
|
|
self.otherCapacity = otherCapacity
|
|
}
|
|
|
|
public struct Container: Codable, Equatable, Sendable {
|
|
|
|
public let dryBulbTemperature: Int
|
|
public let wetBulbTemperature: Int
|
|
public let outdoorTemperature: Int
|
|
public let totalCapacity: Int
|
|
public let sensibleCapacity: Int
|
|
public let adjustmentMultipliers: AdjustmentMultiplier?
|
|
|
|
public var latentCapacity: Int { totalCapacity - sensibleCapacity }
|
|
|
|
public init(
|
|
dryBulbTemperature: Int,
|
|
wetBulbTemperature: Int,
|
|
outdoorTemperature: Int,
|
|
totalCapacity: Int,
|
|
sensibleCapacity: Int,
|
|
adjustmentMultipliers: AdjustmentMultiplier? = nil
|
|
) {
|
|
self.dryBulbTemperature = dryBulbTemperature
|
|
self.wetBulbTemperature = wetBulbTemperature
|
|
self.outdoorTemperature = outdoorTemperature
|
|
self.totalCapacity = totalCapacity
|
|
self.sensibleCapacity = sensibleCapacity
|
|
self.adjustmentMultipliers = adjustmentMultipliers
|
|
}
|
|
}
|
|
}
|
|
|
|
public struct ManufacturersContainer: Codable, Equatable, Sendable {
|
|
|
|
public let wetBulb: Int
|
|
public let totalCapacity: Int
|
|
public let sensibleCapacity: Int
|
|
|
|
public init(
|
|
wetBulb: Int,
|
|
totalCapacity: Int,
|
|
sensibleCapacity: Int
|
|
) {
|
|
self.wetBulb = wetBulb
|
|
self.totalCapacity = totalCapacity
|
|
self.sensibleCapacity = sensibleCapacity
|
|
}
|
|
}
|
|
}
|