Skip to main content

Calculations relative to temperature and ampacity in overhead conductors.

Project description

ThermOHL

MPL-2.0 License Quality Gate Status Lines of Code Coverage

Thermohl is a python package allowing the computation of the temperature in overhead conductors for given transit intensity and environment parameters, or to compute the maximum possible transit intensity given a maximum temperature and environment parameters. A collection of models based on the Energy Balance Principle are available.

Main features

Three different solvers are available in the package:

  • computation of the steady-state temperature;
  • computation of the transient temperature;
  • computation of the maximum possible steady-state transit intensity.

All solvers are based on the Energy Balance Principle, where the various power terms are calculated from one of four available models: a CIGRE and an IEEE model as well as two RTE-specific models, OLLA (R&D) and RTE.

Both steady-state solvers can be used for probabilistic simulations with random input parameters using the Monte Carlo method. Uncertainty quantification can be performed through statistics on the random simulation outputs, as well as through a sensitivity analysis using Sobol indices which allows ranking random input parameters according to their contribution to the total variance of the output.

Installation

Using pip

To install the package using pip, execute the following command:

    python -m pip install thermohl@git+https://github.com/phlowers/thermohl

Development

Install the development dependencies and program scripts via

  pip install -e .[dev]

Build a new wheel via

  python -m build --wheel

This build a wheel in newly-created dist/ directory

Building the documentation with mkdocs

First, make sure you have mkdocs and the Readthedocs theme installed.

If you use pip, open a terminal and enter the following commands:

  pip install -e .[docs]

Then, in the same terminal, build the doc with:

  • mkdocs serve - Start the live-reloading docs server.
  • mkdocs build - Build the documentation site.
  • mkdocs -h - Print help message and exit.

The documentation can then be accessed locally from http://127.0.0.1:8000.

Simple usage

Solvers in thermOHL take a dictionary as an argument, where all keys are strings and all values are either integers, floats or 1D numpy.ndarray of integers or floats. It is important to note that all arrays should have the same size. Missing or None values in the input dictionary are replaced with a default value, available using solver.default_values(), which are read from thermohl/default_values.yaml.

Example 1

This example uses the IEEE model with default values to compute the surface temperature (°C) of a conductor in steady regime along with the corresponding power terms (W.m-1) in the Energy Balance Principle.

from thermohl import solver

slvr = solver.ieee({})
temp = slvr.steady_temperature() 

Results from the solver are returned in a pandas.DataFrame:

>>> print(temp)
     T_surf   P_joule  P_solar  P_convection  P_radiation  P_precipitation
0  27.22858  0.273048  9.64051        6.5819     3.331658              0.0

Example 2

This example uses the IEEE model to compute the maximum current intensity (A) that can be used in a conductor without exceeding a specified maximal temperature (°C), along with the corresponding power terms (W.m-1) in the Energy Balance Principle. Three ambient temperatures are specified as inputs, meaning that three corresponding maximal intensities will be returned by the solver.

import numpy as np
from thermohl import solver

slvr = solver.ieee(dict(Ta=np.array([0., 15., 30.])))
Tmax = 80.
imax = slvr.steady_intensity(Tmax)
>>> print(imax)
         I_max    P_joule  P_solar  P_convection  P_radiation  P_precipitation
0  1606.946066  83.794845  9.64051     66.750785    26.684570              0.0
1  1408.560563  64.382191  9.64051     50.884473    23.138228              0.0
2  1185.256686  45.586844  9.64051     36.234737    18.992617              0.0

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

thermohl-1.3.2rc0.tar.gz (47.9 kB view details)

Uploaded Source

Built Distribution

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

thermohl-1.3.2rc0-py3-none-any.whl (67.7 kB view details)

Uploaded Python 3

File details

Details for the file thermohl-1.3.2rc0.tar.gz.

File metadata

  • Download URL: thermohl-1.3.2rc0.tar.gz
  • Upload date:
  • Size: 47.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for thermohl-1.3.2rc0.tar.gz
Algorithm Hash digest
SHA256 bbb84a18b97628b02298a759c2efd8028f35a4eb143a07bcefb353d1958fdf70
MD5 45b549cc9b23ec0af1fce15fddde3f40
BLAKE2b-256 c9b8a73b40236def1d5d876b5c88b78969529d16dbdd25ad38b81df592bf7b64

See more details on using hashes here.

Provenance

The following attestation bundles were made for thermohl-1.3.2rc0.tar.gz:

Publisher: cd-pypi.yml on phlowers/thermohl

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

File details

Details for the file thermohl-1.3.2rc0-py3-none-any.whl.

File metadata

  • Download URL: thermohl-1.3.2rc0-py3-none-any.whl
  • Upload date:
  • Size: 67.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for thermohl-1.3.2rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 77968733e7374173efdeac02b6e230418ab3c5ac4145801bde6cbfc2db161475
MD5 419f6cb6b0b752576e6ba290d8fdd9de
BLAKE2b-256 4a5945ff4066ee3b3859e85542ccfb762dfc8d94b268f793c38245ad87020be4

See more details on using hashes here.

Provenance

The following attestation bundles were made for thermohl-1.3.2rc0-py3-none-any.whl:

Publisher: cd-pypi.yml on phlowers/thermohl

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