Skip to main content

PicoMats logo

A unit-informed, assumption-driven material ontology.

Use the material. Sustain the assumptions.
Reduce uncertainty by making every assumption explicit.

Overview

License Python Version

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 UnitValues and PicoUnits for 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 abstract and fundamental also make a good semantic boundary for model development. For example, material.abstract.copper and material.fundamental.copper explicitly 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

picomats-0.0.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

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

picomats-0.0.0-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

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

Hashes for picomats-0.0.0.tar.gz
Algorithm Hash digest
SHA256 b005654b387b8b7f2c3569d57af05de2a9a2fa7154bf4091a751e29b11aceaba
MD5 dff05317c03d14f1f114d4e39cf04adc
BLAKE2b-256 f93753c365cdef58b64c3f753146178d479ca1ec8d93840757bf9f72b06995ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for picomats-0.0.0.tar.gz:

Publisher: publish.yaml on Bowley-Systems/PicoMats

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

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

Hashes for picomats-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 240cc795bfae6540b8f9660a43d61cc4fed76f0050c1e474cb9d55c72feeb71f
MD5 9956112734ca5a82faa7c3b0d705d4b7
BLAKE2b-256 c04e704195c4b50f77c4f9cc2a915963cb60954dabd66daeb2c123b3df2728f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for picomats-0.0.0-py3-none-any.whl:

Publisher: publish.yaml on Bowley-Systems/PicoMats

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

Release history Release notifications | RSS feed

This release

0.0.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page