{"id":30141927,"url":"https://github.com/amccaugh/cryoheatflow","last_synced_at":"2025-08-11T05:20:50.210Z","repository":{"id":308382474,"uuid":"1032629352","full_name":"amccaugh/cryoheatflow","owner":"amccaugh","description":"Cryogenic thermal calculations for cryostat design","archived":false,"fork":false,"pushed_at":"2025-08-05T16:25:56.000Z","size":101,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-05T17:38:41.815Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amccaugh.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,"zenodo":null}},"created_at":"2025-08-05T15:27:20.000Z","updated_at":"2025-08-05T16:47:47.000Z","dependencies_parsed_at":"2025-08-05T17:38:44.186Z","dependency_job_id":"467c3b1c-03d6-4b72-910f-8f34af118358","html_url":"https://github.com/amccaugh/cryoheatflow","commit_stats":null,"previous_names":["amccaugh/cryoheatflow"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/amccaugh/cryoheatflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccaugh%2Fcryoheatflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccaugh%2Fcryoheatflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccaugh%2Fcryoheatflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccaugh%2Fcryoheatflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amccaugh","download_url":"https://codeload.github.com/amccaugh/cryoheatflow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccaugh%2Fcryoheatflow/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269833310,"owners_count":24482423,"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","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-08-11T05:20:48.386Z","updated_at":"2025-08-11T05:20:50.197Z","avatar_url":"https://github.com/amccaugh.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CryoHeatFlow\n\nA Python package for cryogenic thermal analysis and heat transfer calculations. This package provides functions for calculating thermal conductivity, thermal power transfer, thermal boundary conductance, and multilayer insulation effectiveness.\n\n## Installation\n\n```bash\npip install cryoheatflow\n```\n\n## Table of Contents\n\n- [Quick Start](#quick-start)\n  - [Calculate Thermal Conductivity](#calculate-thermal-conductivity)\n  - [Calculate Thermal Power Transfer](#calculate-thermal-power-transfer)\n  - [Multilayer Insulation Analysis](#multilayer-insulation-analysis)\n  - [Plotting Thermal Conductivity Curves](#plotting-thermal-conductivity-curves)\n- [Available Materials](#available-materials)\n- [Data Sources](#data-sources)\n\n\n## Features\n\n- **Thermal conductivity calculations** for various materials at cryogenic temperatures\n- **Thermal power transfer** through conductors and insulators\n- **Thermal boundary conductance** across joints and interfaces\n- **Multilayer insulation** effectiveness calculations\n- **Area calculations** for various cross-sectional geometries (coax, AWG wire, etc)\n\n## Quick Start\n\n### Calculate Thermal Conductivity\n\n```python\nimport cryoheatflow\n\n# Get thermal conductivity for stainless steel at 10K\nk_conductivity_function = cryoheatflow.conductivity.k_ss\nT = 10  # Temperature in Kelvin\nresult = k_conductivity_function(T)\nprint(f'Thermal conductivity = {result} W/m*K')\n```\n\n### Calculate Thermal Power Transfer\n\nLet's say you wanted to connect a stainless-steel microwave coax line from a 40K stage to a 4K stage. The coax has a diameter of 0.085\" (so-called \"085\" coax), and is 30mm long.  How much heat would be transferred?  \n\n```python\nimport cryoheatflow\n\n# Select stainless steel as the material\nk = cryoheatflow.conductivity.k_ss\narea = cryoheatflow.area.coax_085  # 0.085\" outer-diameter coax\nlength = 30e-3  # 30 mm\nT1 = 40  # 40 K \nT2 = 4   # 4 K\n\nP, G, R = cryoheatflow.calculate_thermal_transfer(k, area, length, T1, T2)\nprint(f'Power transmission = {P*1e3:0.3f} mW')\nprint(f'Thermal conductance = {G:0.6f} W/K')\nprint(f'Thermal resistance = {R:0.3f} K/W')\n```\n\ngiving us\n\n```\nPower transmission = 4.844 mW\nThermal conductance = 0.000135 W/K\nThermal resistance = 7432.015 K/W\n```\n\n### Calculate thermal boundary conductance\n\nNow let's say you want to anchor a 1.5x1.5 cm^2 sample to your 4K stage, and you put grease between the sample and the 4K stage.  Your sample is going to generate 2 mW of heat load and going to warm up a little.  What temperature is your sample going to be at?\n\nFirst, we calculate the *thermal boundary conductance* (in watts per kelvin), and/or its inverse quantity, the *thermal boundary resistance*:\n\n```python\nimport cryoheatflow\n\n# Calculate thermal boundary conductance across a solder joint\nT = 4  # Temperature in Kelvin\narea_m2 = 15e-3 * 15e-3  # 15 mm x 15 mm contact area\n\nh = cryoheatflow.conductivity.h_grease(T=T, area=area_m2)\nprint(f'Thermal conductance = {h:0.3f} W/K')\nprint(f'Thermal resistance = {1/h:0.3f} K/W')\n```\n\nThis gives us `Thermal resistance R = 38.384 K/W`.  We can then estimate the temperature by the simple relation \n\n`(temperature increase) = (thermal resistance) x (heating power)`\n\nGiving us a temperature increase of ~76.8 mK. \n \n\n### Multilayer Insulation Analysis\n\n```python\nfrom cryoheatflow import solve_multilayer_insulation\nfrom cryoheatflow.emissivity import Al_polished, Al_oxidized, mylar\n\n# Calculate effectiveness of multilayer insulation\nT1 = 4   # Cold side temperature (K)\nT2 = 85  # Warm side temperature (K)\nN = 2    # Number of mylar layers\nemissivity1 = Al_oxidized    # Emissivity of the first layer (e.g. 300K walls)\nemissivity_mylar = mylar     # Emissivity of the multilayer mylar layers\nemissivity2 = Al_polished    # Emissivity of the last layer (e.g. 40K walls)\narea = (20e-2)**2           # Area in m^2\n\nlayer_temps, qdot = solve_multilayer_insulation(T1, T2, N, emissivity1, emissivity_mylar, emissivity2, area)\nprint(f'Layer temperatures: {layer_temps}')\nprint(f'Thermal power: {abs(qdot)} W')\n```\n\n\n### Plotting Thermal Conductivity Curves\n\n\u003cimg width=\"994\" height=\"590\" alt=\"image\" src=\"https://github.com/user-attachments/assets/fb1a1dbf-bd35-445f-8dad-dcd039d714da\" /\u003e\n\n```python\nfrom cryoheatflow.conductivity import ( k_ss, k_cuni, k_al6061, k_al6063, k_brass,\n     k_cu_rrr50, k_al1100, k_becu, k_cu_rrr100, k_g10, k_nylon)\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n# Plot thermal conductivity vs temperature for all materials\nk_funcs = [k_ss, k_cuni, k_al6061, k_al6063, k_al1100, k_becu, k_brass, \n           k_cu_rrr50, k_cu_rrr100, k_g10, k_nylon]\n\nlabels = ['SS', 'CuNi', 'Al 6061-T6', 'Al 6063-T5', 'Al 1100', \n          'BeCu', 'Brass', 'Cu (RRR=50)', 'Cu (RRR=100)', 'G10', 'Nylon']\nfor k_fun in k_funcs:\n    T = np.linspace(4, 300, 1000)\n    k = k_fun(T)\n    plt.loglog(T, k)\n\nplt.xlabel('Temperature (K)')\nplt.ylabel('Thermal conductivity (W/m*K)')\nplt.legend(labels, loc='lower right')\nplt.show()\n```\n\n## Available Materials\n\n### Thermal Conductivity Functions\n\nThe package provides thermal conductivity functions for various materials from the [NIST cryogenic thermal conductivity reference](https://trc.nist.gov/cryogenics/materials/materialproperties.htm):\n\n- `k_ss` - Stainless steel (316/314/304L)\n- `k_cuni` - 70-30 CuNi cupronickel\n- `k_al6061` - Aluminum 6061-T6\n- `k_al6063` - Aluminum 6063-T5\n- `k_al1100` - Aluminum 1100\n- `k_brass` - Brass (UNS C26000)\n- `k_becu` - Beryllium copper\n- `k_cu_rrr50` - Copper (RRR=50, typically ETP or OFHC)\n- `k_cu_rrr100` - Copper (RRR=100)\n- `k_g10` - Fiberglass-epoxy (G-10)\n- `k_nylon` - Nylon (polyamide)\n\n### Thermal Boundary Conductance Functions\n\n- `h_grease` - Thermal conductance of grease for given contact area\n- `h_solder_pb_sn` - Thermal conductance of standard lead-tin (PbSn) solder for given contact area\n\n### Emissivity Values\n\n- `Al_polished` - Polished aluminum (ε = 0.03)\n- `Al_oxidized` - Oxidized aluminum (ε = 0.3)\n- `Cu_polished` - Polished copper (ε = 0.02)\n- `Cu_oxidized` - Oxidized copper (ε = 0.6)\n- `brass_polished` - Polished brass (ε = 0.03)\n- `brass_oxidized` - Oxidized brass (ε = 0.6)\n- `stainless` - Stainless steel (ε = 0.07)\n- `mylar` - Mylar (ε = 0.05)\n\n\n## Area Calculations\n\nThe package includes functions for calculating cross-sectional areas:\n\n- `tube_area(diameter, wall_thickness)` - Annular cross-section area\n- `cylinder_area(diameter)` - Circular cross-section area\n- `wire_gauge_area(awg)` - Wire cross-section area based on AWG gauge\n- `coax_141`, `coax_085`, `coax_047`, `coax_034` - Predefined coaxial cable areas\n\n## Data Sources\n\nThermal conductivity data is sourced from the NIST Cryogenics Materials Database:\nhttps://trc.nist.gov/cryogenics/materials/materialproperties.htm\n\nEmissivity and thermal boundary conductance values are from Ekin, J. (2006), Experimental Techniques for Low-Temperature Measurements, Oxford University Press, Oxford, UK.\n\n## Requirements\n\n- Python \u003e= 3\n- NumPy\n- SciPy\n- Matplotlib (for plotting examples)\n\n## Acknowledgements\n\nThis package was developed by Adam McCaughan.  Special thanks to the wider cryogenic-science community for the invaluable data used in this package. If you use this package in your work, please consider citing the relevant sources and acknowledging the authors.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famccaugh%2Fcryoheatflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famccaugh%2Fcryoheatflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famccaugh%2Fcryoheatflow/lists"}