mabuseif commited on
Commit
6460f98
·
verified ·
1 Parent(s): 7b8f794

Update utils/cooling_load.py

Browse files
Files changed (1) hide show
  1. utils/cooling_load.py +18 -12
utils/cooling_load.py CHANGED
@@ -253,7 +253,8 @@ class CoolingLoadCalculator:
253
  indoor_temp=indoor_conditions['temperature'],
254
  month=month,
255
  hour=hour,
256
- latitude=latitude
 
257
  )
258
  hourly_loads['walls'][hour + 1] += load
259
 
@@ -266,7 +267,8 @@ class CoolingLoadCalculator:
266
  indoor_temp=indoor_conditions['temperature'],
267
  month=month,
268
  hour=hour,
269
- latitude=latitude
 
270
  )
271
  hourly_loads['roofs'][hour + 1] += load
272
 
@@ -470,7 +472,8 @@ class CoolingLoadCalculator:
470
  indoor_temp: float,
471
  month: str,
472
  hour: int,
473
- latitude: str
 
474
  ) -> float:
475
  """
476
  Calculate cooling load for a wall using CLTD method.
@@ -483,6 +486,7 @@ class CoolingLoadCalculator:
483
  month: Design month
484
  hour: Hour of the day
485
  latitude: Latitude (e.g., '24N')
 
486
 
487
  Returns:
488
  Cooling load in Watts
@@ -492,7 +496,7 @@ class CoolingLoadCalculator:
492
  month = self.validate_month(month)
493
  hour = self.validate_hour(hour)
494
  if self.debug_mode:
495
- logger.debug(f"calculate_wall_cooling_load: latitude={latitude}, month={month}, hour={hour}, wall_group={wall.wall_group}, orientation={wall.orientation.value}")
496
 
497
  wall_group = str(wall.wall_group).upper()
498
  if wall_group not in self.valid_wall_groups:
@@ -511,11 +515,11 @@ class CoolingLoadCalculator:
511
  wall_group=wall_group,
512
  orientation=wall.orientation.value,
513
  hour=hour,
514
- color='Dark',
515
  month=month,
516
  latitude=latitude,
517
  indoor_temp=indoor_temp,
518
- outdoor_temp=outdoor_temp
 
519
  )
520
  except Exception as e:
521
  if self.debug_mode:
@@ -540,7 +544,8 @@ class CoolingLoadCalculator:
540
  indoor_temp: float,
541
  month: str,
542
  hour: int,
543
- latitude: str
 
544
  ) -> float:
545
  """
546
  Calculate cooling load for a roof using CLTD method.
@@ -553,6 +558,7 @@ class CoolingLoadCalculator:
553
  month: Design month
554
  hour: Hour of the day
555
  latitude: Latitude (e.g., '24N')
 
556
 
557
  Returns:
558
  Cooling load in Watts
@@ -562,7 +568,7 @@ class CoolingLoadCalculator:
562
  month = self.validate_month(month)
563
  hour = self.validate_hour(hour)
564
  if self.debug_mode:
565
- logger.debug(f"calculate_roof_cooling_load: latitude={latitude}, month={month}, hour={hour}, roof_group={roof.roof_group}")
566
 
567
  roof_group = str(roof.roof_group).upper()
568
  if roof_group not in self.valid_roof_groups:
@@ -580,11 +586,11 @@ class CoolingLoadCalculator:
580
  cltd = self.ashrae_tables.calculate_corrected_cltd_roof(
581
  roof_group=roof_group,
582
  hour=hour,
583
- color='Dark',
584
  month=month,
585
  latitude=latitude,
586
  indoor_temp=indoor_temp,
587
- outdoor_temp=outdoor_temp
 
588
  )
589
  except Exception as e:
590
  if self.debug_mode:
@@ -995,8 +1001,8 @@ if __name__ == "__main__":
995
 
996
  # Example inputs
997
  components = {
998
- 'walls': [Wall(id="w1", name="North Wall", area=20.0, u_value=0.5, orientation=Orientation.NORTH, wall_group='A')],
999
- 'roofs': [Roof(id="r1", name="Main Roof", area=100.0, u_value=0.3, orientation=Orientation.HORIZONTAL, roof_group='A')],
1000
  'windows': [Window(id="win1", name="South Window", area=10.0, u_value=2.8, orientation=Orientation.SOUTH, shgc=0.7, shading_coefficient=0.8)],
1001
  'doors': [Door(id="d1", name="Main Door", area=2.0, u_value=2.0, orientation=Orientation.NORTH)]
1002
  }
 
253
  indoor_temp=indoor_conditions['temperature'],
254
  month=month,
255
  hour=hour,
256
+ latitude=latitude,
257
+ solar_absorptivity=wall.solar_absorptivity
258
  )
259
  hourly_loads['walls'][hour + 1] += load
260
 
 
267
  indoor_temp=indoor_conditions['temperature'],
268
  month=month,
269
  hour=hour,
270
+ latitude=latitude,
271
+ solar_absorptivity=roof.solar_absorptivity
272
  )
273
  hourly_loads['roofs'][hour + 1] += load
274
 
 
472
  indoor_temp: float,
473
  month: str,
474
  hour: int,
475
+ latitude: str,
476
+ solar_absorptivity: float
477
  ) -> float:
478
  """
479
  Calculate cooling load for a wall using CLTD method.
 
486
  month: Design month
487
  hour: Hour of the day
488
  latitude: Latitude (e.g., '24N')
489
+ solar_absorptivity: Solar absorptivity of the wall surface (0.0 to 1.0)
490
 
491
  Returns:
492
  Cooling load in Watts
 
496
  month = self.validate_month(month)
497
  hour = self.validate_hour(hour)
498
  if self.debug_mode:
499
+ logger.debug(f"calculate_wall_cooling_load: latitude={latitude}, month={month}, hour={hour}, wall_group={wall.wall_group}, orientation={wall.orientation.value}, solar_absorptivity={solar_absorptivity}")
500
 
501
  wall_group = str(wall.wall_group).upper()
502
  if wall_group not in self.valid_wall_groups:
 
515
  wall_group=wall_group,
516
  orientation=wall.orientation.value,
517
  hour=hour,
 
518
  month=month,
519
  latitude=latitude,
520
  indoor_temp=indoor_temp,
521
+ outdoor_temp=outdoor_temp,
522
+ solar_absorptivity=solar_absorptivity
523
  )
524
  except Exception as e:
525
  if self.debug_mode:
 
544
  indoor_temp: float,
545
  month: str,
546
  hour: int,
547
+ latitude: str,
548
+ solar_absorptivity: float
549
  ) -> float:
550
  """
551
  Calculate cooling load for a roof using CLTD method.
 
558
  month: Design month
559
  hour: Hour of the day
560
  latitude: Latitude (e.g., '24N')
561
+ solar_absorptivity: Solar absorptivity of the roof surface (0.0 to 1.0)
562
 
563
  Returns:
564
  Cooling load in Watts
 
568
  month = self.validate_month(month)
569
  hour = self.validate_hour(hour)
570
  if self.debug_mode:
571
+ logger.debug(f"calculate_roof_cooling_load: latitude={latitude}, month={month}, hour={hour}, roof_group={roof.roof_group}, solar_absorptivity={solar_absorptivity}")
572
 
573
  roof_group = str(roof.roof_group).upper()
574
  if roof_group not in self.valid_roof_groups:
 
586
  cltd = self.ashrae_tables.calculate_corrected_cltd_roof(
587
  roof_group=roof_group,
588
  hour=hour,
 
589
  month=month,
590
  latitude=latitude,
591
  indoor_temp=indoor_temp,
592
+ outdoor_temp=outdoor_temp,
593
+ solar_absorptivity=solar_absorptivity
594
  )
595
  except Exception as e:
596
  if self.debug_mode:
 
1001
 
1002
  # Example inputs
1003
  components = {
1004
+ 'walls': [Wall(id="w1", name="North Wall", area=20.0, u_value=0.5, orientation=Orientation.NORTH, wall_group='A', solar_absorptivity=0.6)],
1005
+ 'roofs': [Roof(id="r1", name="Main Roof", area=100.0, u_value=0.3, orientation=Orientation.HORIZONTAL, roof_group='A', solar_absorptivity=0.6)],
1006
  'windows': [Window(id="win1", name="South Window", area=10.0, u_value=2.8, orientation=Orientation.SOUTH, shgc=0.7, shading_coefficient=0.8)],
1007
  'doors': [Door(id="d1", name="Main Door", area=2.0, u_value=2.0, orientation=Orientation.NORTH)]
1008
  }