Open solid material properties with provenance and provider backends
Project description
OpenSolids
OpenSolids is a Python library for temperature-dependent solid material properties with explicit provenance and provider-based data ingestion.
It is built for solver workflows that need curves like k(T), cp(T), E(T), and
sigma_y(T) instead of fixed constants.
Why OpenSolids Exists
Most engineering calculations need properties that change with temperature, not single constants. OpenSolids was created to make those curves easy to access from Python while keeping source/provenance information visible.
Who This Is For
- Propulsion engineers (regen cooling, chamber/nozzle thermal-structural studies)
- Mechanical/materials engineers (strength margins and thermal stress studies)
- Students and independent builders who want reusable material-property tooling
What You Can Use It For
- Evaluate temperature-dependent conductivity, heat capacity, modulus, and strength
- Compare materials across multiple data providers in one script
- Build design sweeps and trade studies with consistent APIs and units
- Keep source attribution attached to the data you use in analysis
Install
pip install opensolids
For plot-generating examples:
pip install "opensolids[viz]"
Quick Start
import opensolids as osl
mat = osl.material("nist-cryo:aluminum-6061-t6")
print(mat.k(300.0))
print(mat.E([77.0, 150.0, 293.15], units="GPa"))
print(mat.eps_th(120.0, T_ref=293.15))
API Overview
- Material lookup:
osl.material(material_id) - Search:
osl.search(query) - Provider list:
osl.list_providers() - Property calls:
mat.k(T),mat.cp(T),mat.E(T),mat.sigma_y(T), ... - Out-of-range policy per call:
policy="clamp" | "raise" | "extrapolate" - Units conversion per call:
units="MPa",units="GPa", etc.
Units
OpenSolids stores and serves curves in canonical SI units internally:
k:W/(m*K)cp:J/(kg*K)rho:kg/m^3E,sigma_y,sigma_uts:Paalpha:1/Knu,eps_th:1
Material Catalog
Bundled material inventory:
Visual Outputs
Thermal conductivity comparison (NTRS copper alloys)
Yield strength comparison (NTRS + MIL)
Out-of-range policy behavior
Multi-database 6061 workflow
Documentation
- Usage guide: https://github.com/mind874/OpenSolids/blob/main/docs/usage-guide.md
- Examples: https://github.com/mind874/OpenSolids/blob/main/examples/README.md
- Compliance notes: https://github.com/mind874/OpenSolids/tree/main/docs/compliance
- Source repository: https://github.com/mind874/OpenSolids
License
OpenSolids is licensed under GPL-3.0-only.
Project details
Release history Release notifications | RSS feed
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 opensolids-0.2.2.tar.gz.
File metadata
- Download URL: opensolids-0.2.2.tar.gz
- Upload date:
- Size: 36.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d5719771d4ecca7efec547b40f4d5675e2dd2fefb556fffc80208baabcfc540
|
|
| MD5 |
9db8e7bfa2503a35558d1257bba195e8
|
|
| BLAKE2b-256 |
a331324b6b346ed44d01e131d7c50e40f5410023096997226e223a16c9d49436
|
File details
Details for the file opensolids-0.2.2-py3-none-any.whl.
File metadata
- Download URL: opensolids-0.2.2-py3-none-any.whl
- Upload date:
- Size: 54.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fcf74ebf4e46a9bca1f364ab19b1ac10d38abfaac92ddbd4090ddfb6fc198b63
|
|
| MD5 |
f1789eba514747602dde3cb89da6c7e1
|
|
| BLAKE2b-256 |
1c57a2e38c2242ac694456627d38fd0cef92e77f10443aeb72064bdb1b57b9e5
|