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.3.0.tar.gz (90.1 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.3.0-py3-none-any.whl (94.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for openph_demand-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c713931bde931f0919b8fa03351f797e05b1abb6a09915f93637a391b186d757
MD5 88c05a655bb342fe00e1da4e42247a84
BLAKE2b-256 711e227792d9d0edf92291cb1ec7d4c947a24a0b3061ec29d464afb1e3dff57f

See more details on using hashes here.

Provenance

The following attestation bundles were made for openph_demand-0.3.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.3.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for openph_demand-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bac2583b0125e2c8ca311970eb47b6c8ba8d41896545d1b1a64b8b6a0aff0117
MD5 95187749e143db06d8507050b246c812
BLAKE2b-256 a9824ea7cc27edca44fef3ef1281a361932a11338e8dc7a0b0ae567a8f22e9c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for openph_demand-0.3.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