Class DaylightFactor

java.lang.Object
org.episteme.social.architecture.DaylightFactor

public final class DaylightFactor extends Object
Provides mathematical models for calculating the Daylight Factor (DF) and evaluating natural lighting adequacy in architectural spaces. It implements standard BRE (Building Research Establishment) estimation formulas.
Since:
1.0
Version:
2.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Method Summary

    Modifier and Type
    Method
    Description
    static Real
    averageDaylightFactor(List<Real> windowContributions)
    Sums contributions from multiple windows to find the total average DF.
    static double
    averageRoomReflectance(double ceilingArea, double ceilingReflectance, double wallArea, double wallReflectance, double floorArea, double floorReflectance)
    Calculates the area-weighted average reflectance of a room's interior.
    static Real
    calculateDaylightFactor(Quantity<Area> windowArea, Quantity<Area> roomSurfaceArea, double glassTransmittance, double skyAngleFactor, double maintenanceFactor, double averageReflectance)
    Calculates the Daylight Factor (DF) using the BRE formula.
    static String
    evaluateDaylightLevel(Real daylightFactor, String roomType)
    Evaluates if the calculated daylight factor is adequate for the intended room use.
    static double
    Returns typical reflectance values for architectural surfaces.
    static Real
    noSkyLineDepth(double windowHeadHeight, double windowSillHeight, double externalObstructionAngle)
    Estimates the No-Sky Line depth, which is the point in a room beyond which the sky is不再 visible due to external obstructions.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • calculateDaylightFactor

      public static Real calculateDaylightFactor(Quantity<Area> windowArea, Quantity<Area> roomSurfaceArea, double glassTransmittance, double skyAngleFactor, double maintenanceFactor, double averageReflectance)
      Calculates the Daylight Factor (DF) using the BRE formula. Simplified estimate: DF approx (T * W * theta * M) / (A * (1-R^2)) * 100%
      Parameters:
      windowArea - total window glazing area
      roomSurfaceArea - total internal surface area (ceiling + walls + floor)
      glassTransmittance - transmittance of the glass (0.0 to 1.0)
      skyAngleFactor - visible sky angle in radians/factor
      maintenanceFactor - factor for dirt/aging (typical 0.8-0.9)
      averageReflectance - area-weighted average reflectance of internal surfaces
      Returns:
      the Daylight Factor as a percentage
    • evaluateDaylightLevel

      public static String evaluateDaylightLevel(Real daylightFactor, String roomType)
      Evaluates if the calculated daylight factor is adequate for the intended room use.
      Parameters:
      daylightFactor - the calculated DF percentage
      roomType - type of room (e.g., "office", "bedroom")
      Returns:
      a qualitative description of daylight adequacy
    • averageDaylightFactor

      public static Real averageDaylightFactor(List<Real> windowContributions)
      Sums contributions from multiple windows to find the total average DF.
      Parameters:
      windowContributions - list of individual window DF values
      Returns:
      total combined Daylight Factor
    • noSkyLineDepth

      public static Real noSkyLineDepth(double windowHeadHeight, double windowSillHeight, double externalObstructionAngle)
      Estimates the No-Sky Line depth, which is the point in a room beyond which the sky is不再 visible due to external obstructions.
      Parameters:
      windowHeadHeight - height of window head from floor
      windowSillHeight - height of window sill from floor
      externalObstructionAngle - angle of external obstruction in degrees
      Returns:
      the depth distance into the room
    • getSurfaceReflectance

      public static double getSurfaceReflectance(String surface)
      Returns typical reflectance values for architectural surfaces.
      Parameters:
      surface - name of the surface type
      Returns:
      reflectance coefficient (0.0 to 1.0)
    • averageRoomReflectance

      public static double averageRoomReflectance(double ceilingArea, double ceilingReflectance, double wallArea, double wallReflectance, double floorArea, double floorReflectance)
      Calculates the area-weighted average reflectance of a room's interior.
      Parameters:
      ceilingArea - total ceiling area
      ceilingReflectance - ceiling reflectance
      wallArea - total wall area
      wallReflectance - wall reflectance
      floorArea - total floor area
      floorReflectance - floor reflectance
      Returns:
      the weighted average reflectance