Skip to main content

OpenPH Demand - Energy demand calculations for Passive House

Project description

OpenPH-Demand

Energy demand calculations for Passive House (PHPP)

Part of the openph UV workspace - implements PHPP energy demand calculations with exact numerical fidelity to Excel PHPP.

Purpose

OpenPH-Demand calculates:

  • Annual Heating Demand: Transmission and ventilation heat losses, internal/solar gains
  • Annual Cooling Demand: Solar gains, internal gains, cooling strategies
  • Solar Radiation: Window and opaque surface solar radiation for heating/cooling periods
  • Ground Heat Transfer: Temperature calculations for ground-coupled surfaces
  • Peak Heating/Cooling Loads: Design load calculations

Structure

openph-demand/
├── src/
│   └── openph_demand/
│       ├── heating_demand/      # Heating demand calculations
│       ├── cooling_demand/      # Cooling demand calculations
│       ├── ground/              # Ground heat transfer
│       ├── solar/               # Solar radiation calculations
│       ├── to_table/            # Table view renderers
│       ├── get_solvers.py       # Type-safe solver accessors
│       └── solvers.py           # Solver classes (Energy, Ground, Solar)
├── tests/
└── pyproject.toml

Usage

from openph.phpp import OpPhPHPP
from openph_demand.get_solvers import (
    get_openph_energy_demand_solver,
    get_openph_ground_solver,
    get_openph_solar_solver,
)

# Create PHPP model
phpp = OpPhPHPP()

# Get solvers (registered via entry points)
energy_solver = get_openph_energy_demand_solver(phpp)
ground_solver = get_openph_ground_solver(phpp)
solar_solver = get_openph_solar_solver(phpp)

# Access demand calculations
heating_demand = energy_solver.heating_demand
cooling_demand = energy_solver.cooling_demand

# Get results
annual_heating_kwh_m2 = heating_demand.total_annual_demand_kwh_m2
annual_cooling_kwh_m2 = cooling_demand.annual_demand_kwh_m2
ground_temps = ground_solver.periods
solar_radiation = solar_solver.annual_demand

Registered Solvers

This package registers three solver plugins with OpenPH:

  • energy_demandOpPhEnergyDemandSolver (heating + cooling)
  • groundOpPhGroundSolver (ground heat transfer)
  • solar_radiationOpPhSolarRadiationSolver (solar gains)

Development

Part of UV workspace - see root context/ENVIRONMENT.md:

uv sync                           # Install all workspace packages
uv run pytest openph-demand/tests/ # Run tests

Project details


Download files

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

Source Distribution

openph_demand-0.2.0.tar.gz (67.3 kB view details)

Uploaded Source

Built Distribution

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

openph_demand-0.2.0-py3-none-any.whl (72.5 kB view details)

Uploaded Python 3

File details

Details for the file openph_demand-0.2.0.tar.gz.

File metadata

  • Download URL: openph_demand-0.2.0.tar.gz
  • Upload date:
  • Size: 67.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for openph_demand-0.2.0.tar.gz
Algorithm Hash digest
SHA256 cd2dcb66eb79fd84efefc5cb8a71edb7d768b49eb4fc83f2c2c5fc819015c195
MD5 ab70e7e34dec051d31aee76ba9bb3ea7
BLAKE2b-256 6d659448370a8fd7c75250836874deac7d4f54cf2744a7a140ff17c2e1b34f84

See more details on using hashes here.

Provenance

The following attestation bundles were made for openph_demand-0.2.0.tar.gz:

Publisher: publish.yml on Open-PH/openph-demand

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openph_demand-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: openph_demand-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 72.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for openph_demand-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9353ed4fcaaf1e37d37f2b0164161076019bd9025729e013210927b046b1756e
MD5 3fa0bb81a93564cf097f33ba946f5b85
BLAKE2b-256 708502b8b3d52931cf6a4feadad845d67f0d7fe8240aea14c6d6ee62808c966b

See more details on using hashes here.

Provenance

The following attestation bundles were made for openph_demand-0.2.0-py3-none-any.whl:

Publisher: publish.yml on Open-PH/openph-demand

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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