{"id":27066094,"url":"https://github.com/tomlxxvi/python-hvac","last_synced_at":"2025-10-24T09:02:06.253Z","repository":{"id":167876046,"uuid":"617437685","full_name":"TomLXXVI/python-hvac","owner":"TomLXXVI","description":"A multi-package for HVAC engineering written in Python.","archived":false,"fork":false,"pushed_at":"2025-03-26T18:53:35.000Z","size":34240,"stargazers_count":67,"open_issues_count":1,"forks_count":20,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-26T19:39:18.850Z","etag":null,"topics":["air-conditioning","cooling-load-calculation","energy-estimation","fluid-flow","heat-exchanger","heat-transfer","heating-load-calculation","hvac","python","refrigeration","vrf"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TomLXXVI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-22T11:51:29.000Z","updated_at":"2025-03-26T18:53:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"e7b6954d-ae57-4187-8371-44a2b28076d1","html_url":"https://github.com/TomLXXVI/python-hvac","commit_stats":{"total_commits":99,"total_committers":1,"mean_commits":99.0,"dds":0.0,"last_synced_commit":"863d2009d806ddd6be850c7bce685743bf050c27"},"previous_names":["tomlxxvi/python-hvac"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomLXXVI%2Fpython-hvac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomLXXVI%2Fpython-hvac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomLXXVI%2Fpython-hvac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomLXXVI%2Fpython-hvac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TomLXXVI","download_url":"https://codeload.github.com/TomLXXVI/python-hvac/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247384951,"owners_count":20930561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["air-conditioning","cooling-load-calculation","energy-estimation","fluid-flow","heat-exchanger","heat-transfer","heating-load-calculation","hvac","python","refrigeration","vrf"],"created_at":"2025-04-05T18:34:57.655Z","updated_at":"2025-10-24T09:02:01.211Z","avatar_url":"https://github.com/TomLXXVI.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# python-hvac\n\nA Python library for HVAC engineering:\n- cooling and heating load calculations of buildings\n- estimation of energy needs and energy consumption\n- design and analysis of air and hydronic distribution systems\n- air conditioning process calculations\n- simulation and analysis of heat exchangers (limited for now to plain fin-and-tube heat exchangers)\n- simulation and analysis of single-stage vapor compression machines and VRF systems\n- sizing of refrigerant piping\n- correlations for convection heat transfer coefficients and friction factors\n\nExample scripts and notebooks can be found under `docs/examples`. More examples\nwill be added over time.\n\n\u003e [!NOTE]\n\u003e This project replaces the older project `HVAC`, which is no longer under \n\u003e development and will be no longer maintained.\n\n## Overview\nAt this moment the following subpackages are part of `hvac`:\n\n**air_conditioning**\u003cbr\u003e\nA package about air-conditioning processes and systems that can be used to \ndesign and analyze single-zone or multi-zone CAV and VAV air conditioning\nsystems.\n\n**air_diffusion**\u003cbr\u003e\nA package about supplying air to a room. Implements free air jets and some\nprocedures for designing air supply to a room which come from *Awbi, H. B. (2003).\nVENTILATION OF BUILDINGS. Taylor \u0026 Francis. Chapter 6.*\n\n**cooling_load_calc**\u003cbr\u003e\nA package for doing cooling (and heating) load calculations of thermal zones in\na building, based upon ASHRAE's Radiant-Times-Series (RTS) method. \nIt uses a lumped capacitance model (thermal network model) to take the thermal \ninertia of flat, opaque building components and the interior thermal mass of a \nzone into account, as explained in Chapter 10 of *Mitchell, J. W., \u0026 Braun, \nJ. E. (2012). PRINCIPLES OF HEATING, VENTILATION, AND AIR CONDITIONING IN \nBUILDINGS. John Wiley \u0026 Sons*.\nUsing third-party package `python-control` ([Python Control Systems Library](https://github.com/python-control/python-control)),\na state-space model is then derived from this thermal network model, which can\nbe simulated in time. The state-space model of the thermal zone can then also be\neasily integrated in a temperature control feedback system.\nA series of notebooks in `docs/examples/cooling_load_calc` explains step by step\nhow to use the `cooling_load_calc` package and what it can do.\n\n**sun**\u003cbr\u003e\nThis package is about solar radiation on surfaces. It implements a number of\nsky-models (isotropic, anisotropic Perez, anisotropic HDKR, KT) to estimate the \nsolar radiation incident on exterior surfaces.\nIt can generate solar radiation data based on the clear-sky model, or it can use\nTMY-data of a certain geographic location .\nSubpackage *sun* implements the equations in chapters 1 and 2 of *Duffie, \nJ. A., Beckman, W. A., \u0026 Blair, N. (2020). SOLAR ENGINEERING OF THERMAL \nPROCESSES, PHOTOVOLTAICS AND WIND. John Wiley \u0026 Sons.*\n\n**heating_load_calc**\u003cbr\u003e\nA package for doing the heating load calculation of a building based on the \nmethod of *European standard EN 12831-1 (July 2017)*.\n\n**energy_estimation**\u003cbr\u003e\nEstimation of the energy consumption of a building using the bin table method.\n\n**fluid_flow**\u003cbr\u003e\nA package about fluid flow in pipes and ducts and for designing and analyzing \npipe and duct network systems. It includes a large number of fittings taken \nfrom *Crane's TECHNICAL PAPER NO. 410M* and *SMACNA's HVAC SYSTEMS DUCT DESIGN \nMANUAL*.\n\n**refrigerant_piping**\u003cbr\u003e\nPackage for sizing refrigerant lines (suction line, discharge line, and liquid\nline) between an outdoor unit and indoor unit of an air conditioning system.\n\n**heat_transfer**\u003cbr\u003e\nThis package implements a number of correlations for calculating convection\nheat transfer coefficients and friction factors for different geometries. Most \ncorrelations were taken from *Nellis G. F. , \u0026 Klein S. A.  (2021). \nINTRODUCTION TO ENGINEERING HEAT TRANSFER. Cambridge University Press*.\n\n**heat_exchanger**\u003cbr\u003e\nContains two subpackages: **recuperator** and **regenerator**.\n\nSubpackage *recuperator* is about heat exchangers in which the hot and cold \nfluid are separated by a heat transfer wall. \nIt implements the effectiveness-NTU method for both dry and wet air \ncooling/heating coils. \nIt contains (at this moment) some models of continuous fin-tube heat exchangers\n(air condenser, air evaporator, air-to-water cooling coil) for analysis and \nsimulation. Implementations are based on solving methods described in *Shah, \nR. K. , \u0026 Sekulic, D. P.  (2003). FUNDAMENTALS OF HEAT EXCHANGER \nDESIGN. John Wiley \u0026 Sons*.\n\nSubpackage *regenerator* implements the effectiveness-NTU method for a \ncounterflow rotary regenerator (e.g. a sensible heat recovery wheel) as outlined\nin *Shah, R. K. , \u0026 Sekulic, D. P.  (2003). FUNDAMENTALS OF HEAT \nEXCHANGER DESIGN. John Wiley \u0026 Sons*, Chapter 5: *Thermal Design Theory for\nRegenerators*.\n\n**vapor_compression**\u003cbr\u003e\nContains models to represent fixed- and variable speed compressors, and a model\nof a single-stage vapor compression machine, that integrates the models for the\nair evaporator and condenser in subpackage *heat_exchanger*.\nPurpose of this module is to simulate the steady-state performance of a \nsingle-stage vapor compression machine (air conditioning machine, heat pump). \nSeveral application examples have been included in the folder `vapor_compression` \nof `docs/examples`.\n\n**vrf_system**\u003cbr\u003e\nThis subpackage can be used to model a VRF-system in relation to the building\nin which it is installed, with the purpose to estimate its energy consumption\nduring a typical heating or cooling season. An example of such an energy \nconsumption estimation and a comparison between different candidate VRF-systems \nin relation to the same building have been included in the folder `vrf_system` \nof `docs/examples`.\n\n**radiant_emitter**\u003cbr\u003e\nThis subpackage implements two types of radiant heat emitters. Class \n`PanelRadiator` is for panel radiators and class `RadiantFloorPanel` is for \nfloor heating panels. Both classes can be used for design and analysis.\n\n**kitchen_ventilation**\u003cbr\u003e\nThis subpackage implements the detailed calculation method according to European\nstandard EN 16282-1:2017 *Equipment for commercial kitchens - Components for \nventilation in commercial kitchens - Part 1: General requirements including \ncalculation method* for the design calculation of the extraction air volume flow\nrates in commercial kitchens. It also includes two quick methods that can be \nused for a preliminary calculation.\n\nBesides the aforementioned application-oriented packages, `hvac` also includes a \nnumber of more basic subpackages which are used throughout the modules of \n`hvac`:\n\nFirst of all, `hvac` is heavily based on third-party library `pint` for\nworking with physical quantities in Python. Module `pint_setup.py` inside `hvac`\ndoes the necessary setup for using Pint's `Quantity` class throughout the \npackage. When you write a script using package `hvac`, simply write `from hvac\nimport Quantity` to work with physical quantities in your script.\n\nSubpackage `fluids` contains a number of modules with classes that act like\nobject-oriented wrappers around third-party libraries `CoolProp` and `aipws`. \nThe principal classes of `fluids`, that are used extensively throughout \nthe code, are `Fluid` and `HumidAir`, which encapsulate CoolProp's API and\nallow to accept `Quantity` objects.\nA new module `fluid_experimental` has been added to subpackage `fluids` which has a better structured and understandable user interface, especially for defining mixtures. This module has not been integrated yet in other modules or subpackages, while it's still in an experimental stage.\n\nFinally, subpackage `charts` contains a package `matplotlibwrapper`, being a \ntiny wrapper around third-party library `matplotlib`, meant to ease the drawing\nof some frequently used chart types. It also contains a module to plot \nrefrigeration cycles on the log-p-h diagram of a refrigerant and a module to \nplot air conditioning processes on a psychrometric chart.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomlxxvi%2Fpython-hvac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomlxxvi%2Fpython-hvac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomlxxvi%2Fpython-hvac/lists"}