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_demand→OpPhEnergyDemandSolver(heating + cooling)ground→OpPhGroundSolver(ground heat transfer)solar_radiation→OpPhSolarRadiationSolver(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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd2dcb66eb79fd84efefc5cb8a71edb7d768b49eb4fc83f2c2c5fc819015c195
|
|
| MD5 |
ab70e7e34dec051d31aee76ba9bb3ea7
|
|
| BLAKE2b-256 |
6d659448370a8fd7c75250836874deac7d4f54cf2744a7a140ff17c2e1b34f84
|
Provenance
The following attestation bundles were made for openph_demand-0.2.0.tar.gz:
Publisher:
publish.yml on Open-PH/openph-demand
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openph_demand-0.2.0.tar.gz -
Subject digest:
cd2dcb66eb79fd84efefc5cb8a71edb7d768b49eb4fc83f2c2c5fc819015c195 - Sigstore transparency entry: 656616637
- Sigstore integration time:
-
Permalink:
Open-PH/openph-demand@d0d19a2b2bf159eed0bb09beee02a86060ddb375 -
Branch / Tag:
refs/tags/v0.2.00 - Owner: https://github.com/Open-PH
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d0d19a2b2bf159eed0bb09beee02a86060ddb375 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9353ed4fcaaf1e37d37f2b0164161076019bd9025729e013210927b046b1756e
|
|
| MD5 |
3fa0bb81a93564cf097f33ba946f5b85
|
|
| BLAKE2b-256 |
708502b8b3d52931cf6a4feadad845d67f0d7fe8240aea14c6d6ee62808c966b
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openph_demand-0.2.0-py3-none-any.whl -
Subject digest:
9353ed4fcaaf1e37d37f2b0164161076019bd9025729e013210927b046b1756e - Sigstore transparency entry: 656616649
- Sigstore integration time:
-
Permalink:
Open-PH/openph-demand@d0d19a2b2bf159eed0bb09beee02a86060ddb375 -
Branch / Tag:
refs/tags/v0.2.00 - Owner: https://github.com/Open-PH
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d0d19a2b2bf159eed0bb09beee02a86060ddb375 -
Trigger Event:
release
-
Statement type: