Skip to main content

A library for carrying out fluence and irradiance calculations for germicidal UV (GUV) applications.

Project description

GUV Calcs

A library for fluence and irradiance calculations for germicidal UV (GUV) applications. Simulate UV light propagation in rooms, calculate disinfection outcomes, and verify safety compliance.

Installation

Install with pip:

pip install guv-calcs

Or install from source:

git clone https://github.com/jvbelenky/guv-calcs.git
cd guv-calcs
pip install .

Quick Start

from guv_calcs import Room, Lamp

# Create a room (6m x 4m x 2.7m)
room = Room(x=6, y=4, z=2.7, units="meters")

# Add a lamp at the ceiling, aimed downward
lamp = Lamp.from_keyword("aerolamp").move(3, 2, 2.7).aim(3, 2, 0)
room.add_lamp(lamp)

# Add standard calculation zones (fluence volume + safety planes)
room.add_standard_zones()

# Run the calculation
room.calculate()

# Access results
fluence = room.calc_zones["WholeRoomFluence"]
print(f"Mean fluence rate: {fluence.values.mean():.2f} µW/cm²")

Examples

Method Chaining

room = (
    Room(x=6, y=4, z=2.7)
    .place_lamp("aerolamp")      # Auto-positions lamp
    .add_standard_zones()
    .calculate()
)

Multiple Lamps

room = Room(x=6, y=4, z=2.7)

lamp1 = Lamp.from_keyword("aerolamp").move(2, 2, 2.7).aim(2, 2, 0)
lamp2 = Lamp.from_keyword("ushio_b1").move(4, 2, 2.7).aim(4, 2, 0)

room.add_lamp(lamp1).add_lamp(lamp2)
room.add_standard_zones()
room.calculate()

Custom Calculation Planes

from guv_calcs import Room, Lamp, CalcPlane

room = Room(x=6, y=4, z=2.7)
lamp = Lamp.from_keyword("aerolamp").move(3, 2, 2.7).aim(3, 2, 0)
room.add_lamp(lamp)

# Add a plane at desk height (0.75m)
workplane = CalcPlane(
    zone_id="WorkPlane",
    x1=0, x2=6,
    y1=0, y2=4,
    height=0.75,
    x_spacing=0.25,
    y_spacing=0.25,
)
room.add_calc_zone(workplane)
room.calculate()

Non-Rectangular Rooms

from guv_calcs import Room, Polygon2D

# L-shaped room
floor = Polygon2D(vertices=[
    (0, 0), (4, 0), (4, 2), (2, 2), (2, 4), (0, 4)
])
room = Room(floor_polygon=floor, z=2.7)

Safety Compliance Check

room = (
    Room(x=6, y=4, z=2.7)
    .place_lamp("aerolamp")
    .add_standard_zones()
    .calculate()
)

result = room.check_lamps()
print(f"Compliant: {result.compliant}")

Save and Load

# Save
room.save("my_room.guv")

# Load
loaded = Room.load("my_room.guv")
loaded.calculate()

Available Lamp Keywords

  • aerolamp - Aerolamp DevKit (222nm KrCl)
  • beacon - Beacon (222nm KrCl)
  • lumenizer_zone - Lumenizer Zone
  • nukit_lantern - NuKit Lantern
  • nukit_torch - NuKit Torch
  • sterilray - SterilRay
  • ushio_b1 - Ushio B1

Key Concepts

  • Fluence rate: UV power per unit area at a point (µW/cm²)
  • Irradiance: UV power incident on a surface (µW/cm²)
  • CalcVol: 3D volume grid for fluence calculations
  • CalcPlane: 2D surface for irradiance calculations
  • GUV types: 222nm (Far-UVC/KrCl), 254nm (conventional), other wavelengths

License

Distributed under the MIT License. See LICENSE.txt for more information.

Contact

Vivian Belenky - jvb@osluv.org

Project Link: https://github.com/jvbelenky/guv-calcs/

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

guv_calcs-0.6.0.tar.gz (517.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

guv_calcs-0.6.0-py3-none-any.whl (499.1 kB view details)

Uploaded Python 3

File details

Details for the file guv_calcs-0.6.0.tar.gz.

File metadata

  • Download URL: guv_calcs-0.6.0.tar.gz
  • Upload date:
  • Size: 517.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for guv_calcs-0.6.0.tar.gz
Algorithm Hash digest
SHA256 4aff10d36a0e355ff44440fb1ddac22cf3e007b1bc6a8d166098e6f247c76be4
MD5 b26112daee973b8ed1dde68dc49f7036
BLAKE2b-256 002de97af4e63c850036d872172a9f33ad43730f1baadbb8c3f4b8b06e59ebf0

See more details on using hashes here.

File details

Details for the file guv_calcs-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: guv_calcs-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 499.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for guv_calcs-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6bbb678b6f419b4b1c833c048e8cc8089abdbb0f4662fb1448b1d3736726ad12
MD5 63cc1e4ef093faf3571a85a151363e6d
BLAKE2b-256 e6a976c7c649fe908bab00211126b796bcd38a05b1595edefd283b40d501391e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page