67 lines
2.2 KiB
Swift
67 lines
2.2 KiB
Swift
public enum ProposedKWInterpolation {
|
|
public struct Request: Codable, Equatable, Sendable {
|
|
|
|
public let elevation: Int?
|
|
|
|
// These are required if also doing a heat pump heating interpolation.
|
|
public let winterDesignTemperature: Int?
|
|
public let climateType: SystemType.ClimateType?
|
|
public let capacity: Capacity.HeatPumpHeating?
|
|
|
|
public let heatLoss: Int
|
|
public let proposedKW: Int
|
|
|
|
public init(
|
|
elevation: Int? = nil,
|
|
winterDesignTemperature: Int? = nil,
|
|
climateType: SystemType.ClimateType? = nil,
|
|
capacity: Capacity.HeatPumpHeating? = nil,
|
|
heatLoss: Int,
|
|
proposedKW: Int
|
|
) {
|
|
self.elevation = elevation
|
|
self.winterDesignTemperature = winterDesignTemperature
|
|
self.climateType = climateType
|
|
self.capacity = capacity
|
|
self.heatLoss = heatLoss
|
|
self.proposedKW = proposedKW
|
|
}
|
|
}
|
|
|
|
public struct Response: Codable, Equatable, Sendable {
|
|
|
|
public let failed: Bool
|
|
public let failures: [String]?
|
|
public let supplementalHeatRequired: Int
|
|
public let capacityAsPercentOfLoad: Int
|
|
public let oversizingLimit: Int
|
|
|
|
// These are if a heat pump interpolation is also done.
|
|
public let altitudeAdjustmentMultiplier: Double?
|
|
public let balancePointTemperature: Int?
|
|
public let capacityAtDesign: Int?
|
|
public let finalCapacity: Capacity.HeatPumpHeating?
|
|
|
|
public init(
|
|
failures: [String]? = nil,
|
|
supplementalHeatRequired: Int,
|
|
capacityAsPercentOfLoad: Int,
|
|
oversizingLimit: Int,
|
|
altitudeAdjustmentMultiplier: Double? = nil,
|
|
balancePointTemperature: Int? = nil,
|
|
capacityAtDesign: Int? = nil,
|
|
finalCapacity: Capacity.HeatPumpHeating? = nil
|
|
) {
|
|
self.failed = failures == nil ? false : !failures!.isEmpty
|
|
self.failures = failures
|
|
self.supplementalHeatRequired = supplementalHeatRequired
|
|
self.capacityAsPercentOfLoad = capacityAsPercentOfLoad
|
|
self.oversizingLimit = oversizingLimit
|
|
self.altitudeAdjustmentMultiplier = altitudeAdjustmentMultiplier
|
|
self.balancePointTemperature = balancePointTemperature
|
|
self.capacityAtDesign = capacityAtDesign
|
|
self.finalCapacity = finalCapacity
|
|
}
|
|
}
|
|
}
|