A unit-informed, assumption-driven material ontology.
Use the material. Sustain the assumptions.
Reduce uncertainty by making every assumption explicit.
Overview
PicoMats is an assumption-driven material ontology that sustains assumptions throughout your pipeline. It provides unit-informed material definitions with accompanying assumptions.
[!important]
Features:
- Follows a computational ontology called
Abstract-Fundamental Ontology.- Uses
UnitValuesandPicoUnitsfor encoding typed numerical definitions.- Tracks assumptions alongside material definitions to reduce model uncertainty.
What is the Abstract-Fundamental Ontology?
Abstract-Fundamental Ontology is a computational abstraction for both reductionist and pragmatist applications.
The model is based on two categories:
Abstract: Defined by what it does (measured properties).
Fundamental: Defined by what it is (atomic structure).
The ontology emerges from this simple thought experiment:
Let's model a ball rolling down a ramp.
↓
What forces act on the ball?
↓
Gravity, electromagnetic repulsion, and friction.
↓
How do we model friction?
↓
A coefficient? Isn't that arbitrary?
↓
Why not just model it?
↓
What exactly is friction?
↓
Oh, random microscopic interactions...
It's a mistake to assume it's impossible to model, but computational cost is prohibitive for most applications. Hence, you abstract it via empirical methods to measure friction, losing all but the necessary information.
But abstract isn't always the right model...
I want to research superconductors.
↓
Oh, my temperature range is 0 K to 200 K.
↓
Where do I get material definitions for that range?
↓
I'll just interpolate the standard Niobium definition.
↓
Actually, how were these measurements obtained?
When asking such a fundamental question, wouldn't it be best to derive the relations from what the material fundamentally is? Hence, you use fundamental, which describes what the material is, and build the necessary properties without measurement-implicit assumptions.
[!IMPORTANT]
PicoMats does not calculate material properties from the fundamental characteristics of the elements. It is up to the user to compute them via custom modelling or external frameworks.
[!NOTE]
Both
abstractandfundamentalalso make a good semantic boundary for model development. For example,material.abstract.copperandmaterial.fundamental.copperexplicitly denote the reality of their origin.
Proposed workflow
PicoMats is still under development for v0.1-alpha. Implementation details and some abstractions may change.
from picomats import mm
from picomats import Materials
# Pulls materials into the simulation
copper = Materials.abstract.pure.copper
density = copper.density
volume = 100 * mm ** 3
mass = volume * density
# > Output: 0.896 m(kg)
copper.assumptions.density
# > Output:
# >└── Method
# > ├── Hydrostatic Balance (Archimedes' Principle)
# > └── Media Type: Distilled Water
# >└── Assumptions
# > ├── Lack of air bubbles within media
# > └── Media temperature stability
Installation
Until release, this only installs the overview page and related files:
pip install PicoMats
Documentation
All internal documentation can be found within this repo's issues.
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 picomats-0.0.0.tar.gz.
File metadata
- Download URL: picomats-0.0.0.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b005654b387b8b7f2c3569d57af05de2a9a2fa7154bf4091a751e29b11aceaba
|
|
| MD5 |
dff05317c03d14f1f114d4e39cf04adc
|
|
| BLAKE2b-256 |
f93753c365cdef58b64c3f753146178d479ca1ec8d93840757bf9f72b06995ed
|
Provenance
The following attestation bundles were made for picomats-0.0.0.tar.gz:
Publisher:
publish.yaml on Bowley-Systems/PicoMats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
picomats-0.0.0.tar.gz -
Subject digest:
b005654b387b8b7f2c3569d57af05de2a9a2fa7154bf4091a751e29b11aceaba - Sigstore transparency entry: 2536920334
- Sigstore integration time:
-
Permalink:
Bowley-Systems/PicoMats@7fa2388c589b8868cd621fd006ec9c038b76956e -
Branch / Tag:
refs/tags/v0.0.0 - Owner: https://github.com/Bowley-Systems
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@7fa2388c589b8868cd621fd006ec9c038b76956e -
Trigger Event:
push
-
Statement type:
File details
Details for the file picomats-0.0.0-py3-none-any.whl.
File metadata
- Download URL: picomats-0.0.0-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
240cc795bfae6540b8f9660a43d61cc4fed76f0050c1e474cb9d55c72feeb71f
|
|
| MD5 |
9956112734ca5a82faa7c3b0d705d4b7
|
|
| BLAKE2b-256 |
c04e704195c4b50f77c4f9cc2a915963cb60954dabd66daeb2c123b3df2728f3
|
Provenance
The following attestation bundles were made for picomats-0.0.0-py3-none-any.whl:
Publisher:
publish.yaml on Bowley-Systems/PicoMats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
picomats-0.0.0-py3-none-any.whl -
Subject digest:
240cc795bfae6540b8f9660a43d61cc4fed76f0050c1e474cb9d55c72feeb71f - Sigstore transparency entry: 2536920415
- Sigstore integration time:
-
Permalink:
Bowley-Systems/PicoMats@7fa2388c589b8868cd621fd006ec9c038b76956e -
Branch / Tag:
refs/tags/v0.0.0 - Owner: https://github.com/Bowley-Systems
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@7fa2388c589b8868cd621fd006ec9c038b76956e -
Trigger Event:
push
-
Statement type: